HomeMah โ AI-Assisted 3D Interior Design Application
A custom 3D interior design application built with C++, Qt and OpenGL, combining real-time furniture placement, scene editing, asset management and local AI/RAG capabilities into a desktop design workflow.

Building a Custom 3D Interior Design Tool from the Ground Up
HomeMah is a custom desktop interior design application developed to explore how real-time 3D tools and AI can be combined into a more flexible home-planning workflow.
The application was built primarily in C++ using Qt and OpenGL, with ImGui used for parts of the editor interface. Instead of relying on an existing game engine, the project involved implementing and integrating core systems such as 3D rendering, camera controls, furniture placement, materials, lighting, mesh loading and scene management.
Users can create and modify interior spaces, place furniture and other assets into the scene, adjust their properties and save the resulting environment for later editing. JSON-based serialization is used to preserve scene and furniture information between sessions.
A major focus of the project was creating an extensible asset workflow. Furniture models, floorplans, materials and other resources can be loaded into the application and managed through the editor rather than being hard-coded into individual scenes.
HomeMah also explores the integration of local artificial intelligence. The application was designed to work with a locally hosted AI environment using Ollama, with additional RAG infrastructure allowing the system to retrieve relevant information before generating responses.
Beyond the application itself, I also worked on the software distribution pipeline. The project includes release builds, a launcher, dependency handling and an installer workflow so the application can be packaged and installed as a standalone Windows program.
HomeMah demonstrates the combination of real-time graphics programming, software architecture, UI development, asset pipelines, data serialization, AI integration and desktop software deployment within a single project.