This was my first experience with Three.js. The idea was to explore core features like textures, building simple models with primitives, and lighting.
At first, the goal was just to build a scene with a table.

Overview #
As mentioned before, the original goal was a simple scene with a table. But we got carried away and ended up creating a modern gaming studio room that blends work and leisure spaces. The room uses mostly indirect lighting to create a warm atmosphere for gaming, music production, and relaxing.
The scene #
Big Picture #
The scene includes the following key features:
- Multiple zones including a gaming setup, music section, and lounge area
- Realistic night scene with moonlight simulation



Setup Section #
The workstation includes a complete computer setup with a monitor, peripherals, and a chair. A warm desk spotlight provides task lighting, and wall LED strips add to the gaming vibe.





Storage Section #
A modular shelving system showcases books and decorative items. Under-shelf point lights highlight the objects while keeping the room’s ambient lighting style.



Music Area #
A dedicated space for music creation features acoustic treatment and instruments. This section makes the studio concept feel more believable, with a guitar and stand, a piano, and acoustic foam panels.


Lounge Area #
A comfortable seating area with a sofa, coffee table, and gaming controllers. Floor lamps provide soft ambient lighting for chilling out.


Entertainment #
A large screen setup for gaming, with PlayStation-themed LED indicators.


Decoration #
Gaming/esports portraits mounted on the wall with dedicated spotlights (cosplay images generated by AI).


Landscapes #
The room includes windows with night scenes to make the boundaries feel real. Each window shows a different landscape, with simulated moonlight coming into the room.



Lighting Control System #
Finally, there is a GUI interface to control all lighting elements:
- Scene Light: Main directional lighting control
- Individual Lights: Coffee table, TV backlight, sofa backlight, shelf lights, LED strips, floor lamps, desk lamp
- Special Effects: Picture spotlights, screen illumination
- Helpers: Toggle visibility for directional, point, and spotlight helpers



Performance #
In computer graphics, performance is always a bottleneck. A beautiful scene means nothing if people cannot run it on their machines, so we paid a lot of attention to optimization. Because this project uses many textures, we implemented an async texture preloader. All textures are loaded before the 3D objects are initialized. We pushed these optimizations even further in the next Three.js project, which I mention below.
Overall, this was a really fun project and a great way to get hands-on with Three.js. It helped us move on to a more interactive and complex project, linked below. You will definitely notice a big jump in difficulty, and that learning step was super valuable for our understanding of computer graphics.
You can explore the code and more details of the gaming room scene in the repository below.