Curio: Neural Sandbox - Beyond the Search Bar

  1. Inspiration: The Search for Truth in an Echo Chamber

The idea for Curio came from two huge annoyances I deal with every day. First, Google search has basically become a giant pile of ads and SEO spam, so finding real, objective info is a nightmare. Second, most AI assistants are programmed to be "people pleasers." They just agree with whatever you say, which creates this feedback loop where you never actually get challenged.

I wanted to build a "Neural Sandbox" - a space where info isn't just found, it’s stress-tested. I pictured a tool that could take on the persona of history’s greatest minds to explain hard data, while also acting as a smart skeptic to poke holes in my own logic.

  1. How Curio Was Built

Curio is a Python project I built using the Streamlit framework. I wanted the architecture to be clean and modular, so I handled the heavy lifting through the Gemini 3 API.

The Architectural Core

The Brain (brain.py): This is the engine. It uses the google-genai SDK to hook into Gemini 3. The coolest part is the Native Google Search Grounding. It means I didn't have to build a messy RAG pipeline with external databases because Gemini handles the search and citations natively.

The Character Forge: I wanted the AI to have a "soul," so I integrated Imagen 4.0 for visual avatars. When you create a character, the app does two things:

Imagen 4.0 generates a high-res portrait based on your vibe.

Gemini 3 builds a behavioral profile using character lore and your specific instructions.

Persistent Memory (utils.py): I used SQLite to log everything. This gives Curio a "long-term memory" so it remembers the specific personas and debates you've had.

  1. The Mathematics of Reasoning

To get "Contrast Mode" and the "Reasoning Depth" right, I looked at how the model decides which word to say next based on a "Probability Score."

The AI looks at all possible words and gives each one a score. To turn these scores into actual percentages, it uses a setup where the "Temperature" (T) acts like a focus dial:

Probability Score = (Individual Word Score / Focus Level) / (Sum of all Word Scores)

Where:

T is the Temperature (our Focus Level).

In Contrast Mode, I discovered that if I drop the Focus Level (T) to about 0.2 during the reasoning phase, the AI stops "guessing" and its logic stays super tight. Then, the system prompt nudges those probabilities toward words that represent the complete opposite of whatever I asked:

Best Choice = The word most similar to "NOT [My Query]"

Basically, the "sparring" isn't just random arguing; it's mathematically aimed at finding the most solid counter-arguments by focusing only on things that contradict my initial query.

  1. Challenges Faced

The "Agreeability" Paradox

Overcoming the AI's "politeness" was the hardest part. Early on, even in Contrast Mode, it would say, "I see your point, but..." which felt weak. I had to rewrite the System Instructions to prioritize Truth over Agreement. I told the model its job was to dismantle my assumptions before even thinking about answering.

Module Orchestration

Moving from one big messy script to a clean setup with main.py, brain.py, and utils.py caused some pathing headaches. I had to make sure the database didn't lock up when I was rapidly "forging" new AI souls.

  1. What I Learned

The biggest takeaway for me was the shift from Machine Learning to Reasoning Orchestration. In earlier experiments, I wasted so much time training manual classifiers to label websites. With Gemini 3, that whole step is dead. I learned that if you set the Reasoning Depth correctly, a foundation model can handle "Zero-Shot" classification way better than anything I could train locally.

  1. What's Next?

Curio is just the first step. Next, I want to build Multi-Agent Sparring. Imagine having Nikola Tesla and Thomas Edison in the same chat, actually debating your query in real-time. That’s the goal: a 360-degree view of any topic you're curious about.

Curio: Don't just search the web. Spar with it.

Built With

  • antigravityide
  • css
  • gemini3
  • genai
  • google
  • google-search-gounding
  • gtts
  • imagen4.0
  • python
  • python-dotenv
  • sdk
  • speechrecognition
  • sqlite
  • streamlit
Share this project:

Updates