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

Repository

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)

Repository 1, Repository 2

A black hole surrounded by a white accretion disk. The color gradients in the background showcase the warping of the rays.

A simulated black hole with a rainbow-colored background.
A simulated wormhole. A colorful, abstract gradient image with a circular pattern blending various bright colors including pink, green, blue, purple, and orange.

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.

A 3D diagram illustrating light ray propagation from a source through different angles, with labeled angles alpha and beta, diverging from an observer represented by an eye symbol.

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

Repository

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

Repository

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.