Inspiration

Planning a trip can feel like homework: comparing attractions, checking opening hours, and deciding what to skip. We wanted exploring Seoul to feel like opening a gift.

Unboxing Seoul turns a traveler's mood into a mystery journey, helping international visitors discover the city one stop at a time through multilingual clues.

What it does

Travelers choose their mood, starting point, available time, and preferences. The app builds an itinerary from curated Seoul destinations, considering opening hours, estimated travel times, and an optional return-time limit.

Each stop begins with a clue based on recorded place features. Travelers reveal destinations as they explore and collect their discoveries in a travel passport. Photo missions are optional.

When it rains, travelers get tired, or plans run late, they can tell the AI agent. It checks relevant information and proposes a revised route for them to accept or decline.

The app supports English, Korean, Japanese, Simplified Chinese, Spanish, and French.

How we built it

The web app uses Preact and JavaScript, with a Python FastAPI backend deployed on Vercel.

NVIDIA Nemotron on Nebius Token Factory interprets preferences, translates curated clues, evaluates opening-hour search results, and powers the tool-calling travel agent. Optional photo missions use MiniCPM-V, a separate vision model served through Token Factory.

Tavily runs during planning and replanning to retrieve opening-hour information. Nemotron interprets that evidence, and the planner can adjust the itinerary when a destination appears unavailable.

Route optimization combines destination scores with travel estimates, opening windows, visit durations, and return-time constraints. The hosted demo uses a CPU dynamic-programming solver; NVIDIA cuOpt is supported in compatible GPU environments. We tested NVIDIA cuOpt on an NVIDIA GPU and verified its routes against the CPU solver across six test cases. The hosted demo uses the CPU solver, while GPU environments can use cuOpt.

An earlier version was submitted to another hackathon but was not selected. Development for this improved entry began on October 1, 2026. Improvements include Nebius Token Factory integration, runtime Tavily searches, agent-driven replanning, a redesigned multilingual web app, return-time constraints, and stronger clue validation.

Challenges we ran into

Multilingual consistency: Model responses sometimes mixed languages or exposed internal tool terms. We added language checks, cache validation, bounded retries, and localized fallbacks.

Trustworthy explanations: Generated descriptions could disagree with the actual itinerary. We now use structured route data for displayed stop counts and finish and return times.

Responsiveness: Searches, translation, and agent calls take time. We added progress updates and bounded generation work to make waiting and recovery clearer.

Balancing surprise with navigation: Google Maps may reveal a destination's name or address when navigating to exact coordinates. We explain this limitation rather than promise complete secrecy.

Accomplishments that we're proud of

  • A working journey from mood selection to destination reveals and a travel passport.
  • An AI agent that proposes actionable route changes.
  • Runtime Tavily search connected to Nemotron interpretation and route planning.
  • Six-language support grounded in curated place information.
  • A hosted demo that requires no installation or personal API keys.

What we learned

Useful travel AI needs grounded information, explicit constraints, and recovery paths—not just convincing text.

We learned to use models for interpreting preferences and evidence while keeping scheduling and displayed route facts tied to structured data. Multilingual quality also requires validation beyond prompting, and live search results must be treated as evidence that can still be incomplete or outdated.

Nebius Token Factory's OpenAI-compatible API helped us integrate hosted inference without managing model-serving infrastructure ourselves.

What's next for Seoulmates

We want to test the experience with more international visitors, improve travel-time and accessibility information, and expand our curated destinations.

Our priority is to make recommendations more dependable while preserving the surprise of discovering somewhere unexpected.

Built With

Share this project:

Updates

Submission history