John Bonham John Bonham

Introducing domicile

I am very excited, and a little nervous, to share a project that I have been working on over the last two years. What started out as an exercise to learn wgpu, and to expand my knowledge of rust programming and real time rendering evolved into something larger, and more exciting than I had originally anticipated.

I began work on a 3d renderer at the start of 2023, with the goal to learn more about real time rendering, and to enhance my rust programming skills. I’d done a few smaller rust projects, and had fallen in love with the language. 3d graphics programming is my passion, so I figured that a renderer build in rust, using wgpu, would be a great learning experience, and hopefully fun. I was correct! It was a blast to work on, and while it has been the most challenging project that I have ever undertaken, it has also been the most rewarding.

Over the course of a year, during the little free time that I had, I developed a renderer that was capable of all of my initial goals:

  • Model loading from obj and gltf files

  • Skeletal animations

  • PBR shading

  • Dynamic shadows

  • Particle effects

  • UI system

After completing these features, I was not ready to stop development on my new renderer. I began building tools for my renderer in order to expand it’s capabilities, and became focused on widgets to create basic 3d geometry. The focus of these widgets organically honing in on generating representations of structures, and the seed of an idea began to take shape. I started to come up with workflows to design full buildings with my tools, and discovered that with a simple interface, and a collection of easy to use widgets, I was able to provide an editor fully capable of modeling large structures in an intuitive way. Once this core concept came together, the full vision for domicile began to take shape. The idea was distilled down to a simple concept- an easy to use 3d CAD tool designed for modeling buildings. By maintaining focus on simplicity I believe I have been able to develop a tool that can be used by anybody, but that is also powerful, and razor focused.

The main capabilities, and workflows in domicile have largely been built out over the last year, so my goal for the upcoming year is to polish, and finalize domicile. And I plan on documenting my progress here, so come back often if you would like to follow my progress. Or feel free to reach out!

- John

Read More