What it does

Using AR and the myriad of sensors in a cell phone, we use a central server to synchronize a 3D canvas placed in the real world across hundreds of devices, enabling communities to join together, turning their town into a vivid, to-scale representation of their culture.

How we built it

The client web application is built using Svelte, ThreeJS, WebSockets, and WebXR.

The server stack is built using MongoDB, Axum, GoDaddy, WebSockets, and Google Cloud Platform.

The desktop viewer is built using Rust, Bevy, and WebSockets.

Challenges we ran into

WebXR has significant barriers which were challenging to surpass in the fast paced environment of a Hackathon. The WebXR spec demands valid SSL certification on all APIs, while handled smoothly by GoDaddy, which meant we were locked to isolated development environments and were unable to test our entire stack simultaneously for much of the work period.

Svelte's ThreeJS community was fragmented when it came to deciding the "correct" way to incorporate ThreeJS's imperative, global state into Svelte's isolated component model. We eventually decided to take matters into our own hands, wrapping ThreeJS with our own ergonomic bindings.

Accomplishments that we're proud of

Between managing vertex buffers, juggling the render graph with the opaque event loop WebXR provides, we believe what we have accomplished between the two of us and a little under 24 hours is impossible to not be a little proud of. We hit roadblock after roadblock and whittled through each with a smile on our face.

What we learned

We learned to take advantage of our low team count in order to implement strategies impossible with larger groups. Since we only needed to communicate between each other, we were able to accelerate the process of consensus between the team.

What's next for One World, One Canvas

With more time, we hope to improve our locality tracking and MongoDB's large data sharding systems in order to enable entire towns to paint the town in the colors of their choosing. We also aim to improve our real-time collaborations features to enable shared planning and communication using the virtual world, even when borders divide us.

Built With

Share this project:

Updates