Inspiration
I built Lumen / Field because I wanted to make architectural models easier to bring to life. A building model can hold a lot of useful information, but turning it into a scene that people can actually picture takes time and a lot of manual work. I wanted to build a tool that could help with that while keeping the original building geometry intact.
What it does Lumen / Field lets me load an IFC model, view it in 3D, and build a scene around it. I can use a reference image and scene settings to guide colours and the surrounding environment, then capture the result.
I’ve also been working on local RVT support. That part is still experimental: some geometry may be simplified or missing during conversion, so IFC is currently the more reliable format.
How I built it
I built the app with React, Vite and Three.js, with Web-IFC for loading IFC models. I kept the environment separate from the source building geometry so I could add scene details without changing the model itself. I added seeded placement so that scene objects appear consistently, along with local storage for project data. I also built a FastAPI backend for features that need it, while keeping the core workflow usable locally.
Challenges I ran into
Getting the model to look right was much harder than simply getting it to appear on screen. IFC files can describe the same kinds of building elements in different ways, and it took a lot of work to make walls, roofs, windows and other parts behave as expected. Reference images brought their own challenges. The app needs to suggest useful building colours without confusing the building with the sky, ground or vegetation. RVT support has been another difficult area: I’ve spent time tracing why converted models can look different from their IFC versions, and I’m still improving how clearly the app reports missing or simplified geometry.
Accomplishments that I’m proud of
I’m proud that Lumen / Field brings model viewing, reference-guided styling and scene setup into one workflow. I’ve worked through a lot of small, frustrating problems to make the pieces fit together, and each fix has made the app more useful. I’m especially glad that I’ve been able to explore local RVT conversion without requiring Revit or a cloud conversion service. It still needs improvement, but getting that work into the app has been a meaningful step.
What I learned
I learned that a convincing 3D scene depends on much more than the model itself. Lighting, materials, scale and the way a file describes its geometry all affect the result. I also learned to be careful about what the software claims: a model loading successfully doesn’t always mean every part was converted faithfully.
What’s next for Lumen
I want to improve RVT conversion and its diagnostics, so it’s easier to understand when geometry has been simplified or left out. I also want to keep improving the lighting, materials and environment while making sure those changes don’t alter the original building model.
Built With
- browser-apis
- fastapi
- indexeddb
- javascript
- localstorage
- python
- react
- restapi
- rust/webassembly
- sqlite
- tailwind-css
- three.js
- uvicorn
- vite
- web-ifc

Log in or sign up for Devpost to join the conversation.