Terrain Diffusion
A diffusion model for generating realistic terrain using a U-Net architecture. Trained on heightmaps of real locations, it allows to directly generate a surface with river valleys and other erosion features without the need to run an expensive erosion algorithm. Full article describing the model and how it works is available on LinkedIn.
BraneSpace (2024)
An asteroids clone with particle-wave interactions instead of shooting. Crash asteroids into each other and loot their resources. Use tractor and repulsor wavelets to manipulate the world and stay alive in the asteroid swarm. Made in Python3 with pygame for visuals and numpy for physics simulation.
Technologies: Python3, pygame, numpy, Nuitka.
Source:
Executables:
Modeling Ligand Binding: EGFR
ML classifier models for binding of ligands to Epidermal Growth Factor Receptor (EGFR dataset). Code compares different types of classifier models available in scikit-learn for differentiating strongly binding ligands from weakly binding ones. Models are trained on features extracted with RDKit. Data is managed by an hdf5-backed PyTorch Dataset class for quick retrival and training.
Technologies: Python3, Jupyter notebook, scikit-learn, RDKit, matplotlib, hdf5, PyTorch.
Repository:
A subproject focuses on building Graph Convolutional Network (GCN) regression models
for prediction of EGFR pIC50 values.
These models take atomic numbers and atom connectivity as input features
and attempt to infer molecular properties from those.
Additional Technologies: PyTorch Lightning, PyTorch Geometric, TensorBoard.
Download:
LogistiX
An online map generator with hex tiles. Creates height, an climate maps in C with the help of Perlin noise, adds water bodies via numpy, and saves everything to a database for later visualization in a browser through a JavaScript Canvas.LogistiX is intended to eventually become a browser game about managing front-line logistics, but only map generation, rendering, and database components have been finished so far.
Technologies: Python3, C++, JavaScript, Django, SQLite, numpy, pybind11.
Source:
Commodity Price Modeling
Transformer and RNN models aiming to predict relative price fluctuations in commodity prices. WARNING: these models are in no way competitive with models used by professional traders and should not be considered investment advice. While they are able to reproduce some market trends, rapid changes in market sentiment are not captured due to their random nature.Training is done on historical price data fetched from the yahoo finance API. Price histories normalized to last close are used as input features, allowing prediction of real prices outside those seen in the training data. A few data unbiasing strategies are tested.
Tests are also done on synthetic random walk data, showing that price sequences with a lot of randomness and missing intermediate data points have little hope of being accurately predicted. With modern automated trading algorithms market sentiment responds in seconds while free-tier market histories have much coarser resolution (5 min - 1 day). So market behavior between recorded time steps has seemingly random jumps that my models do not have sufficient information to reproduce.
Technologies: Python3, numpy, pandas, PyTorch, yfinance, matplotlib, Neptune.
Source: coming soon.
3D Prints
I design and print small trinkets for local fundraisers by Ukrainian Association of Moncton. Mostly key chains and fridge magnets.
Example designs
Technologies: TinkerCAD, Blender, Cura, Ender3.