Inspiration
We were inspired by the camaraderie of programmatic artists collaborating together to represent their community through r/Place, a social experiment on Reddit launched in 2017. r/Place offered an "open canvas" to anyone and everyone to temporarily place a single colored pixel which forced the coordination between users to successfully draw images and symbols central to their community such as national flags, school mascots, etc.
What it does
Wonderland is a collaborative AI art canvas: think r/Place meets modern diffusion AI. We wanted to create a way for people to generate and modify images together, and observe how AI art evolves and changes based on their prompts. By using a combination of web-sockets, Svelte, and a self-hosted AI, we developed a collaborative, community-driven AI art experience.
How we built it
Our backend is a split model. We handle all AI between NodeJS Express + Python Flask. The flask server is responsible for hosting the AI. It is held behind a local proxy, and used to mutate images based on user input. The NodeJS server is our central logic server. It handles all web-socket connections, and is responsible for sending and receiving data from the AI server. It also handles all user authentication, and is responsible for storing user data. We used Socket.io for our web-socket implementation. We used Svelte for our frontend, Tailwind because CSS sucks. We decided not to use a database, and store all memory locally. However, we log every single user action, ip, and image generated to a file. Over the course of the past few hours since we've lost, more than 20 people have generated over 200 unique images together.
Challenges we ran into
Unfortunately, we did not have access to a cloud platform to host our AI engine. To address this, we self-host the AI at the cost of performance. We wanted to use a local hosted model, to maintain control and our open source values, which forced us to split our backend between Python and NodeJS. Connection our two backends was hard; we were forced to learn a lot about encoding and use DataURI's to send images across languages with performance.
Beyond that, with no could credits we weren't able to get a domain, or any ssl. To still share our collaborative spirit, we figured out how to host locally on the Polsky Lan Wifi, and one of our local computer was able to hold sockets open with 22 computers at once while running the AI.
Accomplishments that we're proud of
We have a working project beyond the expectations of our estimated minimum viable product that we initially sought out to complete. Even in the few hours we were open, we recorded over 300 connections from over 24 unique devices.
What we learned
Besides a stronger foundation of the tech stack as a whole, communicating and addressing blockers amongst each other as soon as possible (given one has already tried solving the issue themself) was critical to developing at the unprecedented pace we maintained throughout the hackathon.
What's next for Wonderland
We intend to maintain and scale the project for world-wide use of our collaborative AI art canvas. Potential features include a stronger content moderation and integration of a cloud platform for hosting.
![]()
Log in or sign up for Devpost to join the conversation.