This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Ofrenda Local is a virtual ofrenda builder. You enter who you are remembering, who they were to you, a favorite food, a song or sound they loved, and one memory. A small altar with candles, marigolds and offerings lights up, and an open-weight language model writes a short remembrance addressed to them.
I read "Ghost in the Machine" as the people who are gone but still present in small things: a smell, a song, a phrase someone always said. DÃa de los Muertos is about keeping them in the room. So I wanted the machine to help you say what you already carry, not invent a story. The model is told to use only the details you give it and never to make up names, places or events.
Demo
https://jhashashwat25-creator.github.io/Virtual-Ofrenda/
Use desktop Chrome or Edge, since the AI runs on WebGPU. The first run downloads the model once, and your browser caches it. Without WebGPU, the page falls back to a simple template and tells you why.
Code
How I Built It
The project is a single index.html with no backend, no build step and no API key.
- Inference: WebLLM runs open-weight models in the browser through WebGPU.
- Models, chosen from a dropdown: SmolLM2 360M (fastest), Llama 3.2 1B (balanced) and Gemma 2 2B (best writing, largest download).
- Prompting: the system prompt asks for 110 to 150 words in first person, addressed to the loved one as "you", using only the supplied details, with no emojis or headings. Output streams token by token into the page.
- Fallback: if WebGPU is missing or the model fails to load, a plain template remembrance appears with a clear message, never a blank screen.
- UI: hand-written HTML and CSS: a three-tier altar, CSS-animated candle flames that respect reduced-motion settings, and a papel picado banner made from clipped divs.
I used AI assistance while building it, as the challenge allows.
Why Does Open Innovation Matter?
A remembrance is about as personal as text gets. People will type things about a parent or grandparent that they would not paste into a form on someone else's server. Open weights made this design possible:
- Privacy by construction. The model runs in your browser tab, so the memory you type never leaves your device. There is no server to send it to.
- It doesn't depend on a service surviving. After the first download it works with the internet off. A project about memory shouldn't vanish when an API changes or shuts down.
- I can swap models. One dropdown switches between 360M, 1B and 2B models, so people on weaker laptops can still use it. A closed API would lock me into one vendor's model, price and rate limits.
- It costs nothing to run. There is no inference bill, so it can sit on GitHub Pages for anyone to use for as long as they like.
My Agent Session
[Paste your DevRelay link or embed here, or delete this section.]
The Spirit of It
[Write this yourself. Try the page with a real memory of someone you miss, then describe the moment the remembrance appeared: which line landed, what it got right, what it got wrong. If you can't do this before the deadline, delete the section.]
Prize Categories
- Best Use of Gemma: Gemma 2 2B is the page's best-writing option, running locally. [Keep only if you tested it.]
- Best Use of a .tech Domain: [Keep only if you claimed a .tech domain and moved the demo there; otherwise delete.]
Top comments (0)