A lifelong learner with an enduring passion
for Machine Learning and Physical Simulations.
The development of technology is intertwined with the understanding of physics.
Machine Learning provides new insights about data and therefore the universe.
In turn, Physical Simulations are a powerful tool for developing Machine Learning systems.
See below for a selection of my projects in machine learning and simulation.
A simulation of a quantum wave within a disk.
A ray-tracing simulation of a wormhole.
Deep Learning Architecture Optimization
A system for finding the optimal deep learning architecture for your machine learning project. Written in Julia using the machine learning framework Flux.jl. Features:
Built-in architectures include fixed-width networks, encoders & decoders, and autoencoders
GPU calculations using CUDA
Data & model management systems for saving, training, and reuse
Optimization via a simulated annealing algorithm
Robot Motion Reinforcement Learning (Unfinished)
A work-in-progress framework for optimizing robot movement. Written in Rust using the reinforcement learning framework rurel. Features:
Rigid body physics using rapier2D
Graphics using kiss3D
Customizable bipedal robot design
Repository (work in progress)
Shortest Connecting Geodesics
Quantum Particle Simulation
Simulates a single-particle wavefunction confined to an annulus (a disk shape that excludes a circle at its center). Written in Julia. Features:
Analytic calculation of a mixed-state, time-dependent wavefunction
Produces videos for custom states with custom colors
Gallery, Repository (includes code and mathematics)
Time Series Forecasting
Black Hole & Wormhole Raytracing
Two deep learning systems designed to predict time series values. Written in Julia using the machine learning framework Flux.jl. Features:
Convolutional network architecture (Temporal Convolutional Network)
Recurrent network architecture
GPU calculations using CUDA
Data generation for testing (chaotic time series)
A black hole surrounded by a white accretion disk. The color gradients in the background showcase the warping of the rays.
A type of wormhole known as an Ellis wormhole. The region that appears to be within a sphere is the space on the other side of the wormhole.
An illustration of the principle used by ray tracing. Each ray corresponds to a specific pixel in the image.
Uses general relativity to image black holes and Ellis wormholes. Written in Julia. Features:
Calculates the paths of light rays in curved 4D spacetime
Creates an image of the object by measuring the warping of the light rays
Uses differential geometry to find the shortest n geodesic segments connecting two points in any number of space and time dimensions. Written in Julia. Features:
Uses the shooting method to find the shortest paths, which is a boundary-value problem
Works for closed (eg, the surface of a sphere) and open (eg, curvature due to gravity) spacetime geometries
Has a mode that casts rays in all directions from a point and creates a heatmap of the proper time taken to reach any point that a ray hits
The three shortest geodesic segments (blue & orange lines) between two points on the surface of a torus.
The several shortest geodesic segments (blue & orange lines) between two points on the surface of a torus.