| # Build Small β submission mapping |
|
|
| How OffGridSchedula lines up with every requirement, track, sponsor prize, and badge of the |
| [Build Small hackathon](https://huggingface.co/build-small-hackathon) |
| ([field guide](https://huggingface.co/spaces/build-small-hackathon/field-guide)). |
| Tags claimed in the README frontmatter use the field guide's namespaced taxonomy |
| (`track:*`, `sponsor:*`, `achievement:*`). |
|
|
| ## Hard rules |
|
|
| | # | Rule | Status | Evidence | |
| |---|------|--------|----------| |
| | 1 | Every model under 32B parameters | β
| Two local models, both far under the cap: extraction is [`gemma-cal` E4B](https://huggingface.co/build-small-hackathon/gemma-4-cal-gguf) (~4B effective params, ~5 GB GGUF at Q4) and planning is [`openbmb/MiniCPM5-1B`](https://huggingface.co/openbmb/MiniCPM5-1B-GGUF) (1B). | |
| | 2 | Gradio app, hosted as an HF Space (Docker OK) | β
| [`app.py`](../app.py) is a Gradio Blocks app served from a Docker SDK Space running llama.cpp, now hosted in the hackathon org: [`build-small-hackathon/OffGridSchedula`](https://huggingface.co/spaces/build-small-hackathon/OffGridSchedula). | |
| | 3 | Demo video | β
| Recorded and linked from the README: [youtu.be/m-o0u9X3tI4](https://youtu.be/m-o0u9X3tI4) (storyboard in [`docs/demo-script.md`](./demo-script.md)). | |
| | 4 | Social media post, linked from the README | β
| Published and linked from the README: [X (1)](https://x.com/nate_mauer/status/2064920352845709419), [X (2)](https://x.com/nate_mauer/status/2065661878441750916), and [LinkedIn](https://www.linkedin.com/feed/update/urn:li:ugcPost:7471440639969132545) (drafts in [`docs/social-post.md`](./social-post.md)). | |
| | 5 | β€ 10 ZeroGPU apps per user | β
n/a | Runs on cpu-basic (stub preview) or a dedicated T4 β no ZeroGPU dependency. | |
| | 6 | README frontmatter tags + short write-up of idea & tech | β
| Namespaced tags + the idea-and-tech write-up are in [`README.md`](../README.md). | |
|
|
| ## Track β `track:backyard` (Backyard AI) |
|
|
| A specific real person: a busy parent whose kid's school and activity events are buried in a |
| noisy class group chat. They paste the chat (or a flyer screenshot) from their phone's browser |
| and get back events, a conflict check against their own calendar, and a ready-to-send reply β |
| reviewed before anything is saved, exported as a local `.ics` (Apple/Google Calendar one tap |
| away). Short pasted chats and screenshots are exactly the workload a small local model handles |
| well β an honest fit, not a stretch. |
|
|
| ## Sponsor prize β `sponsor:modal` (Best Use of Modal) |
|
|
| Modal powered the **development** of the platform's model end-to-end: |
|
|
| - [`training/modal_train.py`](../training/modal_train.py) β full QLoRA fine-tune on serverless A100/H100s (dataset β train β GGUF export β HF publish), with persistent Volumes caching base weights and outputs across runs. |
| - [`training/modal_eval.py`](../training/modal_eval.py) / [`modal_quant_eval.py`](../training/modal_quant_eval.py) β the 60-example task eval served on llama.cpp inside Modal, including an on-volume quantization study (f16 / Q8_0 / Q4_K_M). |
| - [`training/gated_retrain.py`](../training/gated_retrain.py) β the eval-gated pipeline: train β staging upload β eval β promote **only if it beats the gate**. It rejected eight regressed models before the published one; every one of those runs was a Modal job. |
| |
| ## Sponsor prize β `sponsor:openbmb` (Best MiniCPM Build) |
| |
| Clicking **Run the agents** invokes **OpenBMB MiniCPM** as the planner (`openbmb/MiniCPM5-1B-GGUF`; |
| the larger `MiniCPM4.1-8B` variant is a config switch) on a second local llama.cpp instance. It |
| drives this Space's own MCP tools (`extract_events` β `check_conflicts` β `make_ics`) as a visible |
| multi-step agent ([`server/orchestrator.py`](../server/orchestrator.py)) β MiniCPM is core to the |
| agent experience, not a garnish (a deterministic scripted plan is the fallback when the planner |
| isn't configured). Also the natural evidence for the judged **Best Agent** award. |
|
|
| ## Achievement badges (self-declared, all claimed) |
|
|
| | Tag | Badge | Evidence | |
| |-----|-------|----------| |
| | `achievement:offgrid` | Off the Grid | All inference runs inside the Space via llama.cpp β no cloud AI APIs. The only optional outbound call is the user's own Google Calendar push. | |
| | `achievement:welltuned` | Well-Tuned | [`build-small-hackathon/gemma-4-cal-gguf`](https://huggingface.co/build-small-hackathon/gemma-4-cal-gguf) β our published QLoRA fine-tune of Gemma-4 E4B **is the model production serves**, shipped through the eval gate with the [honest scorecard public](./eval-roadmap.md). | |
| | `achievement:offbrand` | Off-Brand | Custom landing page, grouped nav, dark hero + carousel, elevated tool card, bespoke CSS/JS ([`ui/blocks.py`](../ui/blocks.py), [`static/app.css`](../static/app.css)) β far past the stock Gradio look. | |
| | `achievement:llama` | Llama Champion | The official `ghcr.io/ggml-org/llama.cpp` server image runs the GGUF + vision mmproj ([`Dockerfile`](../Dockerfile), [`scripts/start_space.sh`](../scripts/start_space.sh)). | |
| | `achievement:sharing` | Sharing is Caring | Redacted agent traces published to the public dataset [`ParetoOptimal/offgridschedula-traces`](https://huggingface.co/datasets/ParetoOptimal/offgridschedula-traces) β one-click from the Activity tab, or [`training/share_trace.py`](../training/share_trace.py). | |
| | `achievement:fieldnotes` | Field Notes | [`FIELD_NOTES.md`](../FIELD_NOTES.md) (build retrospective) + [`docs/blog-eval-gated-finetuning.md`](./blog-eval-gated-finetuning.md) (fine-tuning post-mortem) + the [published project blog](https://huggingface.co/blog/build-small-hackathon/offgridschedula) ([source](./blog-offgridschedula.md)). | |
|
|
| Sponsor prizes **not** claimed: OpenAI Codex (no Codex-attributed commits) and NVIDIA Nemotron |
| (different model family). The cash bonus badges (Off Brand, Tiny Titan, Best Demo, Best Agent, |
| Bonus Quest Champion, Judges' Wildcard) are judged across all submissions and take no tags. |
|
|
| ## Status |
|
|
| All six hard rules are met β nothing outstanding: |
|
|
| - The Space is live in the hackathon org: [`build-small-hackathon/OffGridSchedula`](https://huggingface.co/spaces/build-small-hackathon/OffGridSchedula). |
| - The model is published at [`build-small-hackathon/gemma-4-cal-gguf`](https://huggingface.co/build-small-hackathon/gemma-4-cal-gguf) (the planner is [`openbmb/MiniCPM5-1B-GGUF`](https://huggingface.co/openbmb/MiniCPM5-1B-GGUF)). |
| - The [demo video](https://youtu.be/m-o0u9X3tI4) and the social posts (X + LinkedIn) are published and linked from the README. |
| - The write-up is live as a Hugging Face blog post: [build-small-hackathon/offgridschedula](https://huggingface.co/blog/build-small-hackathon/offgridschedula). |
|
|