Inspiration
We've all tried to guess if a bed, desk, or sofa will actually fit in a tiny room by staring at photos and rough measurements. After a few frustrating furniture purchases and rearranging sessions, I wanted a way to stand inside a layout before committing. With Meta Quest and the Meta XR toolchain making immersive experiences more accessible, it felt like the perfect platform to turn that idea into Roomstyler.
What it does
Roomstyler is a VR room-planning tool for Meta Quest. Users recreate their real room by entering dimensions, then place 3D furniture such as beds, desks, sofas, wardrobes, partitions, and lamps. Using the controllers, they can grab, move, rotate, and resize items with snapping so layouts stay neat. Instead of looking at a flat floor plan, users stand in the center of their virtual room and see the furniture at real scale just by turning their head, which gives a much better sense of proportion and spacing.
How I built it
Roomstyler is built with the immersive Web SDK (@iwsdk.core) and Three.js targeting the Meta XR ecosystem. Each furniture piece is a reusable component made from simple, optimized meshes to stay performant on-device. I use raycasting from the controller for object selection, custom handles for rotation and scaling, and a lightweight layout system that saves room configurations as JSON for easy reloads and future syncing.
Challenges I ran into
The hardest part was making interactions feel natural in VR: getting pivot points right, tuning rotation sensitivity, and preventing objects from clipping through walls while still feeling flexible. I also had to learn the Meta XR/iwsdk build and deployment flow, debug controller input issues, and watch performance as I added more types of furniture.
Accomplishments that I am proud of
I am proud that first-time testers could pick up the controllers and start decorating almost immediately, without a long tutorial. The default sample room now looks like a believable small apartment, with furniture at a realistic scale and a layout that clearly communicates what the app can do. Getting from an empty scene to an intuitive, fully interactive room editor on Meta Quest within the hackathon period is a big milestone for me.
What we learned
I learned how much small details in snapping, controller mapping, and visual highlights affect comfort in XR. We also gained experience structuring an iwsdk + Three.js project so interactions and assets stay modular and extendable.
What's next for Roomstyler
Next, I want to add true locomotion/teleport options, integrate real furniture catalogs from brands like IKEA, support multiple saved rooms, better lighting controls, and eventually a companion mobile/web app so users can start a layout on 2D and then experience it in VR on Meta Quest.
Built With
- iwsdk
- javascript
- node.js
- three.js
- typescript
- webxr

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