Inspiration
We wanted a tool that could track how productive a user was while still being visually appealing. We also wanted something that the user would have a reason to open every day for it to actually make a difference, and we thought the Frutiger Aero aesthetic could be eye-catching enough to do this. Making it unique for each user also makes it more engaging; it is only able to provide use if the user opens it every day.
What it does
Eden tracks whatever the user is doing and fits it into one of three categories, those being productivity, leisure, and idle. It uses event driven updates and as time passes in a certain category you accumulate points, once certain thresholds are met, it adds new pieces to the grid. This can either be new buildings, new people, or new fauna. The city is procedurally generated so no two should be the same and it resets at the start of each day to keep track of how productive you were.
How we built it
We built Eden.exe with Electron, React, and TypeScript, using Vite to develop and package the interface as a desktop app. Three.js and React Three Fiber render a procedural terrarium, while Zustand manages its world, activity-driven growth, and local saves. Electron monitors foreground apps and idle time, with an optional browser extension adding tab and video signals so the world can respond to computer activity.
Challenges we ran into
Ran into challenges in the initial setup portion of the project, making sure that everyone was starting with the same environment and making sure the initial electron shell ran took quite awhile. Further into the project we ran into issues getting it to work on both mac and windows due to the differences in how some of the electron packages we used detect user input as well as some json serialization conflicts.
Accomplishments that we're proud of
We built a cross-platform desktop terrarium that turns everyday computer activity into a persistent, growing 3D world. We’re proud of combining procedural visuals, local saves, and privacy-minded activity tracking into one experience.
What we learned
We learned how to connect a React and Three.js simulation to Electron’s desktop features, and how to keep activity tracking local while bridging browser data through an optional extension. We also learned that cross-platform behavior, performance, and clear documentation take careful coordination across many parts of an app.
What's next for Eden.exe
Next for Eden, we want to continue to expand on the variety of things we have growing in the city, as well as improving the overall quality of the models within. We also want to make it more customizable for each user, giving them options for what they want to include in their frutiger aero utopia.
Built With
- drei
- electron
- node.js
- react
- three.js
- typescript
- vite
- zustand
Log in or sign up for Devpost to join the conversation.