Inspiration
As kids, our rooms have never just felt perfect. We take every opportunity to remodel our room, striving to make it that much better. This extends to adulthood, where people spend so much time picking furniture and decorations. This process is often time-consuming and labor-intensive, as it requires actually moving around heavy furniture and even returning new items. We decided to build SuperSpace, a way of being able to visualize your room online and quickly edit it to finally get the perfect room you always wanted!
What it does
The process begins with taking a full scan of a room. iOS apps (as iPhones often have Lidar sensors) can instruct users on taking scans and guide them through scanning all parts of a room. The 3D files from an app can be uploaded to the Superspace platform, where users can explore a virtual version of the room, add new objects generated from text descriptions, and experiment with moving existing items around.
How we built it
We use a Three.js-based frontend to render PLY files, with keyboard controls designed to emulate games like Minecraft. The segmentation of those 3D objects is done by a custom, heuristic-based Python algorithm to separate objects from floors, walls, and ceilings. The generation of new 3D objects is done by ML models deployed to Modal, and the frontend directly loads PLY files generated by the backend.
Challenges we ran into
Many of the technical components of our project were difficult to iron out: we experimented with designing our own 3D mesh generation from video files, tried multiple formats for storing and modifying 3D objects (such as Gaussian splats and point clouds), and focused on the speed of various components to support a user-facing app.
Accomplishments that we're proud of
- Learning so much about 3D object representations and the computational and ML techniques to visualize and modify them.
- Creating a user friendly and fun app with a technical focus but also an intuitive interface
What's next for Superspace
Built With
- modal
- open3d
- python

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