// the find
brunosimon/my-room-in-3d
A Three.js portfolio piece — Bruno Simon's personal desk setup recreated in 3D, complete with day/night/neutral lighting modes, animated coffee steam, and interactive screens. It's a showpiece for baked-lighting techniques in WebGL, not a reusable library or starter template.
The baked lighting approach is the real point: pre-rendering light into textures means the scene runs fast in the browser without real-time lights burning GPU cycles. The GLSL shaders are clean and readable — the coffee steam effect in particular is a nice practical example of Perlin noise in a fragment shader. Code is split into focused single-responsibility classes (Camera, Navigation, Renderer) which makes it easier to trace how Bruno structures Three.js projects. The live demo actually loads fast given the complexity, which validates the asset pipeline choices.
This is a personal demo, not a learning resource — there are almost no comments explaining why decisions were made, so extracting techniques requires reverse-engineering. Last commit was September 2023 and Three.js has moved since; anyone forking this will hit deprecation warnings almost immediately. The webpack bundler setup is outdated (Vite has largely won for Three.js projects), and the baked textures are 2048x2048 JPEGs that add up to several MB of download before anything renders. Zero tests, zero documentation beyond a two-command README — expected for a portfolio piece, just worth knowing if you're treating it as a reference.