💡 Inspiration
U-City grew out of a simple idea: reflection should feel rewarding, not repetitive. Journaling apps often turn into streak counters, and habit trackers can feel like chores. But in games, the smallest actions can shape entire worlds. We wanted to combine those two feelings into one experience: the calm of journaling and the excitement of seeing something grow. U-City was created to make personal growth feel visible, creative, and meaningful.
🧠 What It Does
U-City transforms your daily journal into a living, evolving town based on four dimensions of your day:
- Social
- Health
- Discipline
- Intellect
Here’s how it works:
- Write your daily journal entry
- AI analyzes the text and assigns points in each category
- Levels increase when enough points accumulate
- A new building appears whenever you level up in a category
- You can view all past entries along with your full point breakdown
Your town becomes a visual timeline of your habits.
🛠️ How We Built It
We built U-City using a combination of web technologies, AI scoring, and procedural world logic:
- Frontend: Svelte + TailwindCSS for a clean, simple journaling interface
- Backend: Written in TypeScript with SvelteKit to handle most of the backend routing, journal submissions, AI scoring, and level logic
- AI Scoring Engine: Converts natural-language journal entries into structured point values using the Google Gemini API
- Town Simulation: ThreeJS creates a dynamic 3D environment with buildings and lighting based on levels in each category
- Database: MongoDB stores journals, point history, timestamps, and town layout
- Version Control: GitHub to coordinate rapid development during the hackathon
🚧 Challenges We Ran Into
Building U-City came with several technical and design challenges:
Interpreting journal text reliably: People write very differently, so getting the AI to assign consistent scores required multiple prompt iterations.
Level and building balance: We had to fine-tune how many points each level required so the town grew at a satisfying pace without feeling too fast or too slow.
Designing UI for the first time: None of us had built a full interface before, so creating a clean, welcoming journaling flow and a readable town view took a lot of trial and error. We experimented with layouts, spacing, color choices, and component structure to make everything feel intuitive.
3D Challenges: Most of the team had never worked with 3D models before, so getting the world to display reliably, update in a proper manner depending on the application state, and finding and configuring our assets properly was a major challenge. We had ideas to add more dimensionality and building options using other scores, however we were unable to finish these integrations with the 3D world before our time ran up.
Time pressure: Integrating AI analysis, level logic, and town generation within the hackathon timeframe meant constantly prioritizing which features mattered most.
🏆 Accomplishments We’re Proud Of
- A complete AI pipeline that transforms text into category scores
- A working evolving town that visually reflects user habits
- A smooth journaling experience with clean UI
- Strong team coordination and rapid iteration
- A final, working project, given that this was the first hackathon for all of our team members
📚 What We Learned
Throughout development, we learned how to:
- Guide AI models to extract meaning from natural text
- Design progression systems that feel fair and motivating
- Build procedural, category-specific world elements
- Manage evolving user data with timestamps and decay rules
- Iterate quickly to deliver a polished MVP under time constraints
❓ What’s Next
We plan to expand U-City with:
- Game themes: Dungeon crawler/explorer, fighting game, pet growing, gardening, etc
- Achievements and badges for consistency and milestones
- Mobile app version for easy daily journaling
- AI insights that highlight long-term trends
- Optional social features for comparing towns with friends
- Animated buildings that grow as levels increase
U-City is just the beginning, we want self-improvement to feel alive!
Log in or sign up for Devpost to join the conversation.