This project began as a sandbox to learn more about ImGui, ImGizmo, and voxel rendering. Upon completing the basic editor layout and voxel raymarching, I decided to implement a crude attempt at relativistic rendering by curving the ray around a singularity within the voxel grid.
- voxels are stored in a 3D texture on the GPU
- voxels' mass is stored in a separate 3D texture on the GPU
- raymarching occurs in the voxel texture's UV space
- ray direction is offset by sampling the "mass texture" based on the current ray-UVspace position
- Furthered my familiarity with OpenGL and ImGui
- First-time implementation of Voxel Raymarching
- Provided hands-on experience in creating a simple editor layout and camera controls.
ProtoCAD currently has the following dependencies:
- glad
- glfw
- glm
- imgui
These are stored in the dependencies folder. ImGui and glad have a custom CMake file.



