Hasty Briefsbeta

Bilingual

Making a 3D Modeler, in C, in a Week

a day ago
  • Participated in the Wheel Reinvention Jam and built a 3D modeler called ShapeUp.
  • Pivoted from a TypeScript subset to a 3D project using ray marched signed distance fields (SDFs) for a more compelling demo.
  • Chose C for its simplicity, fast compilation, and easy WebAssembly compilation; used a static array for shapes to avoid dynamic allocation issues.
  • Implemented an immediate mode UI (IMGUI) with an enum for controls, which simplified debugging and layout.
  • Criticized raylib for poor parameter validation, use of ints instead of enums, unhelpful bug reports, and lack of responsibility for dependencies like GLFW.
  • Followed a layered development approach ensuring the modeler was always functional, building progressively like a pyramid.
  • Final project totaled 2024 lines of C and 250 lines of GLSL, capable of exporting .obj files and running on multiple platforms.