SIDEPROJECTS


Real-time ray marching through curved spacetime using Schwarzschild geodesics. Light paths computed per-pixel to simulate gravitational lensing, the photon sphere, and relativistic Doppler effects.
Three.js · WebGL2 · GLSL
Real-time ray marching through curved spacetime using Schwarzschild geodesics. Light paths computed per-pixel to simulate gravitational lensing, the photon sphere, and relativistic Doppler effects.
Three.js · WebGL2 · GLSL


Black spheres orbit each other while a particle system emits to the beat of music frequencies. Particles fall into the black holes according to orbital dynamics.
Three.js · WebGL2 · GLSL · AI-generated music and visual presets
Black spheres orbit each other while a particle system emits to the beat of music frequencies. Particles fall into the black holes according to orbital dynamics.
Three.js · WebGL2 · GLSL · AI-generated music and visual presets


Deep-sky imaging of galaxies, nebulae, and star clusters.
Sky-Watcher Evostar 120ED DS-PRO APO · ZWO ASI 1600MM
Deep-sky imaging of galaxies, nebulae, and star clusters.
Sky-Watcher Evostar 120ED DS-PRO APO · ZWO ASI 1600MM


Portrait and fashion work from my photography years, 2008–2012.
Canon 1Ds Mark III
Portrait and fashion work from my photography years, 2008–2012.
Canon 1Ds Mark III