Spaces:
Runtime error
A newer version of the Gradio SDK is available: 6.19.0
Field Notes — Plane Mode Scholar
Build Small Hackathon · Backyard AI · Nemotron Quest · June 2026
The real problem
A graduate student I know studies on long flights and in libraries with unreliable Wi-Fi. Generic PDF chatbots forget everything between sessions. What they actually need is a study session with memory: what they struggled with last time, what exam is coming up, and which explanation style works for them.
Plane Mode Scholar is built for that person — and now runs as an autonomous agent so they don't have to click through five tabs before learning starts.
Why Nemotron 3 Nano 30B-A3B
We switched from Qwen3.5-9B to nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8 — NVIDIA's latest open model under the 32B hackathon cap (released December 2025).
| Property | Why it matters for study coaching |
|---|---|
| MoE (~3B active / 30B total) | Fits ZeroGPU while reasoning like a larger model |
| Agentic training blend | Native tool-planning fits our monitor→plan→act loop |
| Configurable reasoning | PMS_ENABLE_THINKING=false for fast explanations; enable for hard proofs |
| NVIDIA Nemotron Quest | Explicit hackathon sponsor alignment |
Fallback: nvidia/OpenReasoning-Nemotron-7B when VRAM is tight.
SwarmGrid UI + gr.Server
Judges asked for custom UI beyond default Gradio. We adopted the SwarmGrid dashboard pattern (GJB99/SwarmGrid):
- Left: flight deck — one FLY button, home stats, recall banner
- Center: streaming coach chat (optional input)
- Right: live agent reasoning chain (PLAN → RETRIEVE → EXPLAIN → QUIZ)
Backend is gradio.Server — FastAPI + Gradio queue + ZeroGPU, with our own HTML/JS frontend. This targets Off-Brand and the Off-Brand Award.
Agentic flow (Best Agent)
The old UI required: pick pack → set goals → start session → type question → open quiz tab.
Now: tap FLY once. StudyAgent executes:
ensure_pack— demo materials if emptystart_session— recall due reviews + weak topicsplan_next— SRS due > weak mastery > quizexplain_topic— grounded stream with [1] citationsrun_quiz— auto-generated checksurface_memory— show what persisted
Users can still chat to steer, but they don't have to.
What surprised me
Memory bloat is the real enemy, not forgetting. Typed schemas + promotion thresholds + decay beat bigger context windows.
MoE changes the UX calculus. Nemotron Nano's active params are small enough for interactive streaming, but planning quality jumped vs 9B dense.
Making the agent visible wins demos. SwarmGrid's reasoning chain translated directly — judges see PLAN and RETRIEVE, not a black box.
llama.cpp completes the story. Same Nemotron weights via GGUF (
scripts/start_llamacpp.sh) for true offline flight mode — Llama Champion + Off the Grid.
Architecture
[FLY button / WebSocket]
│
▼
[ StudyAgent — plan_next → tool dispatch ]
│
├─► MemoryRetriever (6 memories max)
├─► VectorStore chunks (5 max)
├─► Nemotron 3 Nano (transformers | llama.cpp)
└─► MemoryWriter (promote misconceptions, SRS)
│
▼
[ gr.Server SSE + /ws/agent_telemetry ]
│
▼
[ SwarmGrid-style dashboard (index.html) ]
Badges claimed
See badges.md for full evidence table.
- Off the Grid, Off-Brand, Llama Champion, Sharing is Caring, Field Notes
- Best Agent + NVIDIA Nemotron Quest (awards)
- Not claiming: Well-Tuned (no fine-tune in scope)
Models
| Role | Model | Params |
|---|---|---|
| Chat / agent | nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8 |
30B MoE (3B active) |
| Offline GGUF | unsloth/Nemotron-3-Nano-30B-A3B-GGUF |
via llama.cpp |
| Fallback | nvidia/OpenReasoning-Nemotron-7B |
7B |
| Embeddings | all-MiniLM-L6-v2 |
22M |
What I'd do next
- Publish
plane-mode-scholar-tracesdataset on Hugging Face Hub - Voice input for hands-free plane study
- FSRS fine-tune for review intervals (Well-Tuned badge)