meridian
Inspiration
People don't travel across time zones just to arrive somewhere. They travel for a wedding, a performance, a meeting, a reunion — moments when they want to feel present.
Yet jet lag is usually treated as an unavoidable inconvenience. Most advice focuses on managing symptoms after arrival rather than preparing the body's internal clock before departure.
The timing of light, sleep, exercise and meals can influence circadian adjustment. We wanted to explore whether AI could turn that science into a practical, personalized plan — one that helps people arrive ready for what matters.
We also saw an opportunity to rethink travel personalization. Generic itineraries rarely reflect what someone actually enjoys. A good plan should account for both the body's needs and the person's interests.
Meridian brings these together: evidence-informed circadian planning and culturally grounded destination recommendations, coordinated in one experience.
What it does
Meridian is a multi-agent travel companion that creates personalized, day-by-day plans to help travelers adjust to a new time zone.
Five specialized agents collaborate:
- Mara (Analyst): Examines the traveler's baseline and adherence profile.
- Jun (Research): Finds supporting scientific literature, including paper references and DOIs.
- Otto (Planner): Builds the daily adjustment schedule.
- Iris (Evaluator): Independently evaluates the proposed plan.
- Rex (Negotiator): Reschedules movable calendar events and manages calendar integration.
Its core principle is agents propose, code disposes. AI agents interpret preferences, research and propose actions, but a deterministic placement solver and circadian phase-response model check whether the proposed timing can plausibly deliver the intended adjustment.
Personalization extends beyond physiology. Travelers can search for favorites — artists, films, books and brands — which Meridian resolves into Qloo entities. Qloo's taste graph ranks destination places by affinity to those interests.
Meridian then fits recommendations into genuine free-time windows in the traveler's schedule, respecting daylight and never overriding sleep or prescribed light interventions. Every suggestion remains optional: travelers can keep, swap or reject it. The interface also exposes the taste signal behind the recommendation, making personalization visible rather than opaque.
Meridian supports the journey beyond planning:
- Web Push reminders arrive even when the app is closed.
- Calendar subscriptions stay synchronized as plans change.
- An assistant endpoint exposes the next recommended action to Siri Shortcuts and other assistants.
- An arrival scorecard compares the projected adjustment with the traveler's reported experience.
How we built it
Meridian uses Next.js 16 and React 19, deployed on Render as a progressive web app.
The five-agent architecture uses specialized responsibilities, isolated contexts and structured handoffs. A deterministic placement solver generates the schedule, while a circadian phase-response model evaluates its physiological plausibility.
The same solar model also drives the interface's modeled sky. The horizon reflects the sun's altitude at the destination, while the visual transition represents the progress of the planned circadian shift. The visualization is connected to the underlying model, not simply decorative.
Qloo is integrated through its Insights API and exposed as an agent tool. Travelers' favorite entities inform destination recommendations, which are then fitted against the solved itinerary rather than added as a disconnected list of places.
We also built a replay provider that allows the complete experience to run without API keys. Live inference supports a provider fallback chain, while Supabase stores run history and cross-run memory. Cached Qloo response samples allow the demo to remain usable when the live API is unavailable.
The application also includes an offline shell, Web Push, calendar feeds and an assistant endpoint.
Challenges we ran into
Keeping agents scientifically honest. Early versions generated convincing schedules that did not always respect circadian physiology. We moved final decision-making from the language models to deterministic scheduling and scoring logic.
Making evaluation independent. We wanted the evaluator to identify problems rather than simply agree with the planner. Giving Iris a fresh context helped separate generation from evaluation.
Integrating Qloo correctly. The Insights API required careful handling of authentication, entity resolution and parameter constraints. Some invalid parameters could be silently ignored, making debugging difficult. We added graceful failure handling so that problems with Qloo would not compromise the rest of the application.
Personalizing without compromising the plan. Destination recommendations are only useful if they fit the traveler's physiological schedule. We had to ensure that suggestions occupy genuine free-time windows, remain within daylight constraints and never override essential sleep or light interventions.
Representing uncertainty honestly. Circadian models estimate likely adjustments, not guaranteed individual outcomes. We needed to communicate projections without presenting scientific estimates as promises.
Accomplishments that we're proud of
- A working end-to-end experience, from traveler setup and multi-agent planning to scored schedules, calendar integration, push notifications and arrival evaluation.
- A deterministic evaluation gate that checks whether an agent's proposed schedule can plausibly deliver its declared circadian shift.
- Scientific recommendations supported by research references and DOIs.
- A working Qloo integration where adding a favorite visibly changes destination recommendations.
- Recommendations fitted into real free-time windows rather than presented as a disconnected travel list.
- A modeled sky driven by the same solar calculations used to evaluate the plan.
- A replay and evaluation harness that makes the application demonstrable without API keys and allows plan quality to be tested against fixed scenarios.
Meridian is not simply a chatbot generating an itinerary. It combines agentic reasoning, deterministic constraints, scientific evaluation, cultural data and real-world integrations in one system.
What we learned
We learned that building useful AI agents is as much about deciding what they should not control as it is about what they can generate.
Language models are effective at interpreting preferences, researching information and proposing plans. But when recommendations must satisfy measurable physiological constraints, deterministic systems should have the final say.
We also learned that meaningful personalization requires more than a detailed prompt. External cultural data, individual baselines and scientific evidence make recommendations more relevant and accountable. Showing the taste signals behind recommendations helped make that personalization transparent.
Finally, real-world usability changes architecture. Notifications, offline support, calendar synchronization and assistant integration turned Meridian from a planning demonstration into something designed to accompany a traveler throughout an actual trip.
What's next for meridian
- Close the feedback loop: Use adherence and arrival outcomes to improve subsequent plans and personalize recommendations over time.
- Make taste part of the planning process: Move beyond fitting recommendations into existing free-time windows. Let taste affinity help determine which days and open blocks offer the most rewarding experiences.
- Expand to teams: Develop the travel-manager experience so groups can coordinate travel while retaining individually personalized plans.
- Explore shift workers: Extend the underlying circadian scheduling approach to rotating night shifts and other demanding schedule transitions.
Our longer-term goal is to make Meridian a practical, evidence-informed system for managing circadian transitions — whether caused by international travel or changing work schedules.
Built With
- bun
- falkordb
- framer
- nextjs
- qloo
- react
- render
- supabase
- tailwind
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.