projects

Main page
Updated: 4/2025

My personal projects:

/projects/_astro/marching-cubes-small.DPHKhRs2.jpg

Marching Cubes game engine

C++ GLSL

3D game engine - uses marching cubes algorithm for the terrain, with an efficient memory representation and heavily optimized rendering pipeline, including vertex pulling and vertex compression. Can transform regular meshes into marching cubes geometry using ray casting. Has an efficient system to manage and render entities using an Entity Component System, even including physics and 3D audio. Allows ray casting through the scene to select or place entities.

IVSOP/MarchingCubes
/projects/_astro/particles2.CQLAghvd.png

Particle Simulation

C++ GLSL

Deterministic particle simulator using custom physics implementing Verlet integration. It relies on heavy optimizations, making use of SIMD, multithreading, and spatial partitioning. Its deterministic properties allow it to render images.

IVSOP/Particles
/projects/_astro/raynaldo-small.OmmWM0C1.jpg

Ray tracer

Rust

A CPU ray tracer using embree for the BVH. Contains many configurable aspects, making it easy to explore the effect different algorithms, aproximations and parameters have on the final image.

IVSOP/raynaldo
/projects/_astro/rofi-themer.C-6SC1SW.png

Recursive theming GUI using rofi

C++

Showing recursive menus using rofi to apply themes to various configuration files. Uses JSON config files, IPC using Unix sockets, and a daemon.

IVSOP/Rofi-Themer
/projects/_astro/voxel-engine-small.ClvR0nRS.jpg

Voxel Engine

C++ GLSL

Efficient 3D voxel rendering engine with aggressive optimizations, using occlusion culling, CPU-side backface culling, vertex pulling, HDR and color correction and compact quad representation. It also uses a custom binary greedy meshing algorithm.

IVSOP/VoxelEngine
/projects/_astro/tanks-small.D-5m87YV.jpg

Tank game prototype

Rust

3D battle tanks shooter prototype, using the bevy engine and rapier for physics. Includes a turret that uses a physics motor to aim where the player is looking, several types of explosions and particle animations, and a projectile system.

ivsop.github.io/TanksDev
/projects/_astro/bevy-demo-small.JejX28qC.jpg

Bevy tech demo

Rust

A demo of game features I have been working on, using the bevy engine and rapier for physics. Includes things like breaking glass using voronoi maps and 3D extrusion, dragging objects around using custom springs, 3D text, meshes and colliders out of heightmaps, controllable physics timestep (slow-motion, for example) and some features already present in the tank game.

ivsop.github.io/bevy_demo_dev