Inspiration

Genuis grew out of an internship project exploring generative interfaces: turning natural-language prompts into actionable data queries and interactive visualizations. That work left us with a bigger question: what if an application could build the tools a user needs while they are using it?

Banking felt like a natural place to explore this. People have different financial questions, but they often receive the same dashboard. We wanted to let users shape their banking workspace around what they actually want to understand.

What it does

Genuis is a banking workspace that turns natural-language requests into charts, tables, and interactive tools using Capital One’s Nessie API and NVIDIA Nemotron.

A user can compare monthly spending, request a different visualization, create a budget tracker, or generate a custom interactive component. For supported monthly comparisons, Genuis also presents a spending-change insight with expandable evidence showing the underlying totals.

The system goes beyond generating an answer. It queries data, builds an interface, reviews the proposed result, and attempts repairs when validation fails. Budget targets are local planning tools; the prototype does not move real money or enforce bank-side spending limits.

How we built it

We built Genuis with Next.js, React, and TypeScript. Server-side adapters retrieve accounts, purchases, bills, and merchant information from Nessie, while Nemotron powers the model roles through OpenRouter.

LangGraph coordinates the agent workflow. A dashboard agent chooses queries, observes their results, and decides when it has enough information to propose a change. A UI builder then composes an existing visualization or generates a new React component. A validation agent reviews the candidate and returns feedback for bounded repair attempts.

Financial totals and comparison metrics are calculated in application code using integer cents. Generated components undergo code checks and an isolated browser preview before they are added to the workspace. Dashboard history supports undo.

Challenges we ran into

The hardest challenge was connecting generated interfaces to trustworthy behavior. A chart can look convincing while using the wrong date range, grouping, or interpretation of the data.

We separated financial calculations from model-generated presentation, preserved the selected data binding through the build process, and added evidence to supported insights.

Another challenge was balancing flexibility with reliability. Newly generated components needed compilation checks, restricted execution, and a repair path. Multiple sequential model calls also made latency an important design constraint.

Accomplishments that we're proud of

We built a complete path from a banking question to a working, data-connected interface.

Genuis supports both reusable visualizations and newly generated React components. Its agent workflow can inspect query results, review proposed widgets, and use validation feedback to repair them. We also added grounded monthly comparisons, inspectable evidence, and undo so users can explore without losing their previous workspace.

What we learned

Generative UI requires more than generating code. The difficult work is preserving application state, connecting controls to meaningful data, and checking that the result fulfills the request.

We also learned that agentic behavior comes from decisions informed by observations. A useful agent needs tools, feedback, clear completion criteria, and limits on how long it can investigate or repair a result.

Most importantly, a visualization becomes more useful when it includes an understandable takeaway and evidence the user can inspect.

What's next for genuis

Our next step is deeper insight generation: identifying which categories and merchants contributed to a spending change, then letting users launch follow-up investigations directly from a widget.

We also want to explore behavioral personalization. With user control, Genuis could recognize recurring workflows and suggest useful tools before the user explicitly requests them.

Longer term, we want a workspace that adapts thoughtfully while remaining predictable, explainable, and easy to undo.

Built With

  • nemotron
  • nessie
  • nextjs
  • openrouter
  • zod
Share this project:

Updates

Submission history