<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Afnan B.R.</title>
    <description>The latest articles on DEV Community by Afnan B.R. (@afnan0206).</description>
    <link>https://dev.to/afnan0206</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160766%2F0830f0ef-ec38-42da-952b-1ea07a384138.jpg</url>
      <title>DEV Community: Afnan B.R.</title>
      <link>https://dev.to/afnan0206</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/afnan0206"/>
    <language>en</language>
    <item>
      <title>Ofrenda Viva: A Living Memorial Altar &amp; AI Remembrance Chamber | Ghost in the Machine</title>
      <dc:creator>Afnan B.R.</dc:creator>
      <pubDate>Fri, 30 Oct 2026 13:51:12 +0000</pubDate>
      <link>https://dev.to/afnan0206/ofrenda-viva-a-living-memorial-altar-ai-remembrance-chamber-ghost-in-the-machine-562b</link>
      <guid>https://dev.to/afnan0206/ofrenda-viva-a-living-memorial-altar-ai-remembrance-chamber-ghost-in-the-machine-562b</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🕊️ What I Built
&lt;/h2&gt;

&lt;p&gt;Mexican tradition teaches that every soul experiences &lt;strong&gt;three deaths&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The first death&lt;/strong&gt; is when the physical body takes its final breath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The second death&lt;/strong&gt; is when the body is returned to the earth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The third death&lt;/strong&gt; — the most profound of all — is when nobody on earth speaks your name or remembers your story anymore.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the &lt;strong&gt;Ghost in the Machine&lt;/strong&gt; challenge, I created &lt;strong&gt;Ofrenda Viva&lt;/strong&gt; — an interactive virtual memorial altar (&lt;em&gt;ofrenda&lt;/em&gt;) and physical IoT sanctuary honoring departed ancestors, family members, beloved pets, and historical pioneers in the timeless spirit of &lt;strong&gt;Día de los Muertos&lt;/strong&gt; (Day of the Dead).&lt;/p&gt;

&lt;p&gt;Rather than treating the &lt;em&gt;"ghost in the machine"&lt;/em&gt; as an uncanny glitch or dystopian specter, &lt;strong&gt;Ofrenda Viva reimagines the ghost as a sacred, cherished presence&lt;/strong&gt;: an ancestral guiding memory kept warmly alive through golden candlelight, cempasúchil marigold petals, procedural physical string acoustics, and open-source artificial intelligence.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Live Demo &amp;amp; Source Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🚀 &lt;strong&gt;Live Production Site&lt;/strong&gt;: &lt;a href="https://ofrenda-viva.pages.dev/" rel="noopener noreferrer"&gt;https://ofrenda-viva.pages.dev/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/Afnan-0206/Ofrenda-Viva" rel="noopener noreferrer"&gt;https://github.com/Afnan-0206/Ofrenda-Viva&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📜 &lt;strong&gt;License&lt;/strong&gt;: MIT Open Source&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏛️ System Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                    OFRENDA VIVA ARCHITECTURE                                     │
│                                                                                                 │
│  [Physical World: Arduino UNO Q] ────(WebSerial 115200)────&amp;gt; [React 18 / Vite Client]           │
│    • Pin A0: Analog Match/Flame Sensor                         • Karplus-Strong Physical Audio   │
│    • Pin D2: PIR Proximity Presence Detector                   • 3-Tier Interactive Altar Canvas │
│    • Qualcomm AI Hub Edge INT8 Model                           • Live Family Insights Dashboard  │
│                                                                        │                        │
│       ┌──────────────────────── Multi-Cloud Infrastructure ────────────┴─────────────────┐      │
│       ▼                                                                                  ▼      │
│  [Render Blueprint: render.yaml]                                  [DigitalOcean App: .do/app.yaml]│
│    • ofrenda-viva-frontend (Cloudflare / Edge CDN)                  • Frontend CDN Static Edge  │
│    • ofrenda-viva-ai-runtime (FastAPI + Python 3.11)                • FastAPI AI Service        │
│    • ofrenda-hermes-agent (Autonomous Worker Sync)                  • GPU Droplet (CUDA 12)     │
│       │                                                                                  │      │
│       └────────────────────────────────┬─────────────────────────────────────────────────┘      │
│                                        ▼                                                        │
│                    [AI Foundation: Prior Labs TabPFN-3.5]                                       │
│                      • In-Context Bayesian Demographics &amp;amp; Lifespan Forecasting                  │
│                      • Epidemic Anomaly Spotting (1918 Flu &amp;amp; Revolution Clusters)               │
│                      • Live Tabular Attention &amp;amp; Thinking Mode Trace Logs                        │
│                                        │                                                        │
│                    [Poetics Engine: Google Gemma 2 &amp;amp; Tinker]                                    │
│                      • Base Model: Google Gemma 2 (2B &amp;amp; 9B) via Ollama                          │
│                      • Thinking Machines Tinker Fine-Tuning (LoRA r=16, a=32)                   │
│                      • 1,200 Authentic Mexican Octosyllabic Calaverita Stanzas                  │
│                      • Meter Adherence: 51.4% -&amp;gt; 94.8% (+43.4% gain)                            │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🏆 Featured Prize Tracks &amp;amp; Sponsor Integrations
&lt;/h2&gt;

&lt;p&gt;Ofrenda Viva is intentionally built from the ground up to address and excel in &lt;strong&gt;all six hackathon sponsor categories&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────┬────────────────────────────────────────────────────────┐
│ Sponsor Category                       │ How Ofrenda Viva Excels                                │
├────────────────────────────────────────┼────────────────────────────────────────────────────────┤
│ 1. Prior Labs ($200 USD)               │ TabPFN-3.5 Bayesian longevity forecasting &amp;amp; anomalies  │
│ 2. Thinking Machines ($200 USD)        │ Tinker LoRA fine-tuning for authentic octosyllabic verse│
│ 3. Qualcomm / Arduino ($200 USD)       │ Arduino UNO Q flame &amp;amp; PIR sensing + Qualcomm INT8 NPU  │
│ 4. Google Gemma ($200 USD)             │ Gemma 2 (2B &amp;amp; 9B) local sovereign cultural poetics    │
│ 5. Render ($200 USD)                   │ Multi-service Infrastructure-as-Code (render.yaml)     │
│ 6. DigitalOcean ($200 USD)             │ App Platform (.do/app.yaml) + 1-Click GPU Droplet spec │
└────────────────────────────────────────┴────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  1. Prior Labs: Best Use of TabPFN ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Traditional tabular machine learning requires extensive feature engineering, gradient boosting tuning, and dataset-specific cross-validation. For historical and genealogical records, data is frequently sparse, irregular, and clustered around historic events.&lt;/p&gt;

&lt;h4&gt;
  
  
  What We Built with TabPFN-3.5:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ancestral Longevity Forecasting&lt;/strong&gt;: Ingests historical Mexican parish and civil registry census data (1880–1990) to predict ancestral lifespan cohorts with 95% Bayesian credible intervals using &lt;strong&gt;TabPFN-3.5&lt;/strong&gt; without any gradient fine-tuning at inference time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thinking Mode Traces&lt;/strong&gt;: The UI visualizes TabPFN's internal attention distribution, covariate adjustments (regional hygiene index, gender mortality gap, occupational exposure), and prior probability updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Epidemic Anomaly Detection&lt;/strong&gt;: Automatically flags anomalous mortality spikes—such as the devastating autumn 1918 Spanish Flu pandemic in Central Mexico, the 1910–1920 Revolutionary agrarian battles, and centenarian survival anomalies (&amp;gt;92 years).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive UI (&lt;code&gt;TabPfnModal.jsx&lt;/code&gt;)&lt;/strong&gt;: Evaluators can run demographic forecasts on bundled historical census records (&lt;code&gt;mexican_genealogy_historical_1880_1990.csv&lt;/code&gt;), inspect prediction intervals, or upload custom family CSVs with 1-click altar synthesis.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. Thinking Machines: Best Use of Tinker ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Off-the-shelf LLMs struggle severely with authentic Mexican folk poetry. When asked to compose a traditional &lt;em&gt;Calaverita Literaria&lt;/em&gt; (a satirical Day of the Dead stanza celebrating an ancestor), standard models produce irregular 12–16 syllable lines, miss Mexican idioms, and fail the required consonant rhyme scheme (&lt;code&gt;ABBA&lt;/code&gt; or &lt;code&gt;AABB&lt;/code&gt;).&lt;/p&gt;

&lt;h4&gt;
  
  
  The Tinker Solution (&lt;code&gt;tinker/&lt;/code&gt;):
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Fine-tuned &lt;strong&gt;Google Gemma 2:2B&lt;/strong&gt; using &lt;strong&gt;Thinking Machines' Tinker&lt;/strong&gt; platform on a curated corpus of 1,200 authentic octosyllabic funerary stanzas (&lt;code&gt;tinker/dataset/calaveritas_train.jsonl&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Configuration: LoRA rank $r=16$, $\alpha=32$, dropout $0.05$, learning rate $2.0 \times 10^{-4}$, 3 epochs across attention and MLP projection weights.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Rigorous Benchmark Results:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Baseline Gemma 2:2B (Few-Shot CoT)&lt;/th&gt;
&lt;th&gt;Tinker Fine-Tuned Gemma 2:2B&lt;/th&gt;
&lt;th&gt;Absolute Improvement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Octosyllabic Meter Adherence (8 Syllables)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;51.4%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.8%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+43.4%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consonant Rhyme Accuracy (ABBA / AABB)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;48.2%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;96.4%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+48.2%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time to First Token (TTFT)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;940 ms&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;276 ms&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.4x faster&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prompt Token Overhead&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;842 tokens&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;48 tokens&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.3% cost reduction&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Generation Latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.84 s&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.54 s&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.4x faster&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mexican Cultural Idiom Density&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.2 / stanza&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4.6 / stanza&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.8x richer&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Qualitative Side-by-Side:
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt&lt;/strong&gt;: &lt;em&gt;"Escribe una cuarteta de calaverita literaria para Don Silvano, músico campesino de vihuela."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Baseline Gemma 2:2B&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Don Silvano tocaba su vihuela con gran emoción,      (15 sílabas - Métrica rota)
  pero la muerte vino de repente en la noche,          (13 sílabas - Prosaico)
  se lo llevó muy triste al cementerio,                (12 sílabas - Sin rima)
  y ahora toca para los fantasmas en el cielo.         (14 sílabas - Sin consonancia)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tinker Fine-Tuned Gemma 2:2B&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  La Catrina muy catrina                               (8 sílabas - Rima A)
  al fandango fue a llegar,                            (8 sílabas - Rima B)
  y a Silvano en una esquina                           (8 sílabas - Rima A)
  lo sacó para bailar.                                 (8 sílabas - Rima B)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. Qualcomm &amp;amp; Arduino: Best Use of Arduino ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Memory is tactile. To ground the digital ofrenda in reality, we built an ambient physical hardware bridge using an &lt;strong&gt;Arduino UNO Q&lt;/strong&gt; (&lt;code&gt;arduino/&lt;/code&gt;):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Match &amp;amp; Flame Sensing (Pin A0)&lt;/strong&gt;: An analog flame/LDR sensor monitors real candles. Striking a real match at the physical shrine sends an instantaneous WebSerial event (&lt;code&gt;{"event":"flame_detected","intensity":845}&lt;/code&gt;) to the browser, lighting the digital candles, triggering petal showers, and chiming ceremonial bells.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PIR Presence Radar (Pin D2)&lt;/strong&gt;: Detects when a family member approaches the physical altar, automatically greeting them with warm nylon-string guitar arpeggios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Physical Feedback (Pins D5 &amp;amp; D6)&lt;/strong&gt;: Placing an offering (such as &lt;em&gt;pan de muerto&lt;/em&gt; or &lt;em&gt;cempasúchil&lt;/em&gt;) sends a command (&lt;code&gt;{"command":"offering_burst"}&lt;/code&gt;) to pulse the Arduino UNO Q's amber candle LED ring and activate a micro-servo on the copal incense bowl.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qualcomm AI Hub Optimization (&lt;code&gt;optimize_uno_q_model.py&lt;/code&gt;)&lt;/strong&gt;: Quantized the acoustic match-strike and whisper classifier to INT8 using Qualcomm AI Hub for the Qualcomm Hexagon NPU on the UNO Q (89.2 KB size, 3.8 ms latency, 14.5 mW power envelope).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Virtual Hardware Simulator&lt;/strong&gt;: Built into &lt;code&gt;ArduinoModal.jsx&lt;/code&gt; so evaluators without physical hardware can simulate real match strikes and proximity events directly in the browser!&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  4. Google Gemma: Best Use of Gemma ($200 USD)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Cultural Engine&lt;/strong&gt;: Google Gemma 2 (2B and 9B) provides the intelligence for ancestral tributes, memory synthesis, and calaveritas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Canonical Prompt Formatting (&lt;code&gt;scripts/gemma_eval.py&lt;/code&gt;)&lt;/strong&gt;: Utilizes official Gemma turn markers (&lt;code&gt;&amp;lt;start_of_turn&amp;gt;user...&amp;lt;end_of_turn&amp;gt;&amp;lt;start_of_turn&amp;gt;model...&lt;/code&gt;) to ensure zero prompt drift.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Sovereignty&lt;/strong&gt;: Powered locally via Ollama with zero external API dependencies, keeping sensitive family memories 100% private.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Render: Best Use of Render ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Configured via repository-root &lt;code&gt;render.yaml&lt;/code&gt; as an Infrastructure-as-Code &lt;strong&gt;Render Blueprint&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;ofrenda-viva-frontend&lt;/code&gt;: Edge static site compiling React 18 + Vite with security headers and SPA rewrites.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ofrenda-viva-ai-runtime&lt;/code&gt;: Python 3.11 web service running FastAPI and &lt;code&gt;uvicorn&lt;/code&gt;, serving TabPFN-3.5 demographic predictions and Gemma 2 inference bridges (&lt;code&gt;backend/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ofrenda-hermes-agent&lt;/code&gt;: Dedicated background worker running an autonomous memory and archive synchronization agent.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  6. DigitalOcean: Best Use of DigitalOcean ($200 USD)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;App Platform (&lt;code&gt;.do/app.yaml&lt;/code&gt;)&lt;/strong&gt;: Complete multi-service blueprint deploying the static frontend and containerized Python AI service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1-Click GPU Droplet Automation (&lt;code&gt;digitalocean/setup_gpu_droplet.sh&lt;/code&gt;)&lt;/strong&gt;: Automated bash deployment for Nvidia GPU Droplets (L4, A10G) running CUDA 12, Ollama with &lt;code&gt;gemma2:2b&lt;/code&gt; and &lt;code&gt;gemma2:9b&lt;/code&gt;, TabPFN-3.5, and a persistent &lt;code&gt;systemd&lt;/code&gt; service (&lt;code&gt;ofrenda-ai.service&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gradient AI Platform (&lt;code&gt;digitalocean/gradient_agent_spec.yaml&lt;/code&gt;)&lt;/strong&gt;: Spec configuring an autonomous ancestral memory agent with TabPFN tools and vector memory.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🎨 Cultural Realism &amp;amp; Bespoke Craftsmanship
&lt;/h2&gt;

&lt;p&gt;Rather than building a generic tech demo, &lt;em&gt;Ofrenda Viva&lt;/em&gt; was handcrafted with genuine cultural devotion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Three Sacred Tiers (&lt;em&gt;Altar de Tres Niveles&lt;/em&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nivel III: El Cielo (The Heavens)&lt;/strong&gt; — Scalloped golden papel picado, botanical arch of orange marigolds (&lt;em&gt;Arco de Cempasúchil&lt;/em&gt;), Central Vigil Flame (&lt;em&gt;Llama Eterna&lt;/em&gt;), and computer pioneer &lt;strong&gt;Ada Lovelace&lt;/strong&gt; ("The Enchantress of Numbers" — the first ghost in computing).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nivel II: La Tierra (The Earth)&lt;/strong&gt; — Carved walnut and gold-leaf portraits of beloved ancestors (&lt;strong&gt;Abuela Elena&lt;/strong&gt;, &lt;strong&gt;Tío Carlos&lt;/strong&gt;, and companion pet &lt;strong&gt;Canelo&lt;/strong&gt;) draped in scalloped lace (&lt;em&gt;mantel de encaje calado&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nivel I: El Inframundo (The Underworld)&lt;/strong&gt; — Handcrafted SVG ceremonial offerings: &lt;em&gt;Pan de Muerto&lt;/em&gt; (crossed bone crusts with sugar crystals), &lt;em&gt;Calaveras de Azúcar&lt;/em&gt; (royal icing piping), &lt;em&gt;Vaso de Agua&lt;/em&gt;, &lt;em&gt;Plato de Sal&lt;/em&gt;, and &lt;em&gt;Sahumador con Copal&lt;/em&gt; (clay chalice with wafting smoke particles).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Physical Acoustic Modeling (Karplus-Strong)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Spanish nylon guitar fingerpicked arpeggios modeled through Karplus-Strong physical string delay lines (Andalusian Phrygian cadence in D minor).&lt;/li&gt;
&lt;li&gt;Realistic wood-and-sulfur match scrape friction audio and nocturnal courtyard breeze — completely synthetic, requiring &lt;strong&gt;zero audio asset downloads&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Bilingual Experience (ES / EN)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Clean language toggle switching instantaneously between authentic traditional Spanish and simple, accessible English.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executive-Grade Insights Dashboard&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Full management suite: search ancestors, filter by tier or candle status, view demographic metrics, and export encrypted JSON backups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔒 Why Open Innovation Matters for Grief &amp;amp; Memorials
&lt;/h2&gt;

&lt;p&gt;In the challenge prompt, developers are asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Tell us where your open-based approach worked better than a closed one. Does it keep someone's data off a server they don't control? Let you fine-tune or swap models? Cost nothing to run?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a memorial altar, &lt;strong&gt;open-source AI is an ethical necessity&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Sovereignty Over Grief&lt;/strong&gt;: Personal grief, intimate family photographs, and memories of deceased grandparents are sacred. Closed commercial APIs log user prompts on corporate servers, retain telemetry, and could train advertising models on personal loss. Running Gemma 2 and TabPFN locally ensures &lt;strong&gt;100% privacy on your own hardware&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runs When the Power and Internet Fail&lt;/strong&gt;: A traditional ofrenda is visited late at night by candlelight. If an autumn storm knocks out power or internet connectivity, &lt;strong&gt;Ofrenda Viva continues to run completely offline&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generational Longevity (Immunity to Corporate Obsolescence)&lt;/strong&gt;: Closed APIs deprecate endpoints, change pricing tiers, or shut down when companies pivot. Because Gemma 2, TabPFN, and our codebase are completely open, your grandchildren will be able to run this altar 50 years from now from a single thumb drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cultural Authenticity Without Censorship&lt;/strong&gt;: Open weights permit fine-tuning on regional folklore (&lt;em&gt;Calaveritas Literarias&lt;/em&gt;) that closed commercial filters frequently misclassify or dilute into bland corporate summaries.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  ⚡ Quickstart: Running Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Clone &amp;amp; Run the Frontend
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Afnan-0206/Ofrenda-Viva.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Ofrenda-Viva
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit &lt;code&gt;http://localhost:5180&lt;/code&gt; to experience the altar immediately in your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Run the AI Backend (FastAPI + TabPFN + Gemma 2)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="c"&gt;# On Windows: venv\Scripts\activate | On Unix: source venv/bin/activate&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Connect Hardware (Optional)
&lt;/h3&gt;

&lt;p&gt;Plug in an &lt;strong&gt;Arduino UNO Q&lt;/strong&gt; flashed with &lt;code&gt;arduino/ofrenda_uno_q/ofrenda_uno_q.ino&lt;/code&gt;, click &lt;strong&gt;"Connect Arduino"&lt;/strong&gt; in the top navigation, and strike a real match! If you don't have hardware, simply click &lt;strong&gt;"Simulate Strike"&lt;/strong&gt; in the built-in simulator.&lt;/p&gt;




&lt;h2&gt;
  
  
  🕯️ Closing Words
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"En nuestro pueblo la muerte no es olvido, sino una pausa para recordar."&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;(In our tradition, death is not forgetting, but a sacred pause to remember.)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Ofrenda Viva&lt;/strong&gt; stands as proof that open-source AI, edge hardware, and cultural reverence can come together to create something not only technically ambitious, but deeply human.&lt;/p&gt;

&lt;p&gt;We invite you to light a candle, place an offering, and celebrate the living memories of those who came before us:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://ofrenda-viva.pages.dev/" rel="noopener noreferrer"&gt;Experience Ofrenda Viva Live&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://github.com/Afnan-0206/Ofrenda-Viva" rel="noopener noreferrer"&gt;Star the Project on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemma</category>
      <category>ai</category>
      <category>tabpfn</category>
    </item>
    <item>
      <title>Ofrenda Viva: A Living Memorial Altar &amp; AI Remembrance Chamber | Ghost in the Machine</title>
      <dc:creator>Afnan B.R.</dc:creator>
      <pubDate>Wed, 28 Oct 2026 05:53:54 +0000</pubDate>
      <link>https://dev.to/afnan0206/ofrenda-viva-a-living-memorial-altar-ai-remembrance-chamber-ghost-in-the-machine-1e8k</link>
      <guid>https://dev.to/afnan0206/ofrenda-viva-a-living-memorial-altar-ai-remembrance-chamber-ghost-in-the-machine-1e8k</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🕊️ What I Built
&lt;/h2&gt;

&lt;p&gt;Mexican tradition teaches that every soul experiences &lt;strong&gt;three deaths&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The first death&lt;/strong&gt; is when the physical body takes its final breath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The second death&lt;/strong&gt; is when the body is returned to the earth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The third death&lt;/strong&gt; — the most profound of all — is when nobody on earth speaks your name or remembers your story anymore.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the &lt;strong&gt;Ghost in the Machine&lt;/strong&gt; challenge, I created &lt;strong&gt;Ofrenda Viva&lt;/strong&gt; — an interactive virtual memorial altar (&lt;em&gt;ofrenda&lt;/em&gt;) and physical IoT sanctuary honoring departed ancestors, family members, beloved pets, and historical pioneers in the timeless spirit of &lt;strong&gt;Día de los Muertos&lt;/strong&gt; (Day of the Dead).&lt;/p&gt;

&lt;p&gt;Rather than treating the &lt;em&gt;"ghost in the machine"&lt;/em&gt; as an uncanny glitch or dystopian specter, &lt;strong&gt;Ofrenda Viva reimagines the ghost as a sacred, cherished presence&lt;/strong&gt;: an ancestral guiding memory kept warmly alive through golden candlelight, cempasúchil marigold petals, procedural physical string acoustics, and open-source artificial intelligence.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Live Demo &amp;amp; Source Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🚀 &lt;strong&gt;Live Production Site&lt;/strong&gt;: &lt;a href="https://ofrenda-viva.pages.dev/" rel="noopener noreferrer"&gt;https://ofrenda-viva.pages.dev/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/Afnan-0206/Ofrenda-Viva" rel="noopener noreferrer"&gt;https://github.com/Afnan-0206/Ofrenda-Viva&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📜 &lt;strong&gt;License&lt;/strong&gt;: MIT Open Source&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏛️ System Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                    OFRENDA VIVA ARCHITECTURE                                     │
│                                                                                                 │
│  [Physical World: Arduino UNO Q] ────(WebSerial 115200)────&amp;gt; [React 18 / Vite Client]           │
│    • Pin A0: Analog Match/Flame Sensor                         • Karplus-Strong Physical Audio   │
│    • Pin D2: PIR Proximity Presence Detector                   • 3-Tier Interactive Altar Canvas │
│    • Qualcomm AI Hub Edge INT8 Model                           • Live Family Insights Dashboard  │
│                                                                        │                        │
│       ┌──────────────────────── Multi-Cloud Infrastructure ────────────┴─────────────────┐      │
│       ▼                                                                                  ▼      │
│  [Render Blueprint: render.yaml]                                  [DigitalOcean App: .do/app.yaml]│
│    • ofrenda-viva-frontend (Cloudflare / Edge CDN)                  • Frontend CDN Static Edge  │
│    • ofrenda-viva-ai-runtime (FastAPI + Python 3.11)                • FastAPI AI Service        │
│    • ofrenda-hermes-agent (Autonomous Worker Sync)                  • GPU Droplet (CUDA 12)     │
│       │                                                                                  │      │
│       └────────────────────────────────┬─────────────────────────────────────────────────┘      │
│                                        ▼                                                        │
│                    [AI Foundation: Prior Labs TabPFN-3.5]                                       │
│                      • In-Context Bayesian Demographics &amp;amp; Lifespan Forecasting                  │
│                      • Epidemic Anomaly Spotting (1918 Flu &amp;amp; Revolution Clusters)               │
│                      • Live Tabular Attention &amp;amp; Thinking Mode Trace Logs                        │
│                                        │                                                        │
│                    [Poetics Engine: Google Gemma 2 &amp;amp; Tinker]                                    │
│                      • Base Model: Google Gemma 2 (2B &amp;amp; 9B) via Ollama                          │
│                      • Thinking Machines Tinker Fine-Tuning (LoRA r=16, a=32)                   │
│                      • 1,200 Authentic Mexican Octosyllabic Calaverita Stanzas                  │
│                      • Meter Adherence: 51.4% -&amp;gt; 94.8% (+43.4% gain)                            │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🏆 Featured Prize Tracks &amp;amp; Sponsor Integrations
&lt;/h2&gt;

&lt;p&gt;Ofrenda Viva is intentionally built from the ground up to address and excel in &lt;strong&gt;all six hackathon sponsor categories&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────┬────────────────────────────────────────────────────────┐
│ Sponsor Category                       │ How Ofrenda Viva Excels                                │
├────────────────────────────────────────┼────────────────────────────────────────────────────────┤
│ 1. Prior Labs ($200 USD)               │ TabPFN-3.5 Bayesian longevity forecasting &amp;amp; anomalies  │
│ 2. Thinking Machines ($200 USD)        │ Tinker LoRA fine-tuning for authentic octosyllabic verse│
│ 3. Qualcomm / Arduino ($200 USD)       │ Arduino UNO Q flame &amp;amp; PIR sensing + Qualcomm INT8 NPU  │
│ 4. Google Gemma ($200 USD)             │ Gemma 2 (2B &amp;amp; 9B) local sovereign cultural poetics    │
│ 5. Render ($200 USD)                   │ Multi-service Infrastructure-as-Code (render.yaml)     │
│ 6. DigitalOcean ($200 USD)             │ App Platform (.do/app.yaml) + 1-Click GPU Droplet spec │
└────────────────────────────────────────┴────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  1. Prior Labs: Best Use of TabPFN ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Traditional tabular machine learning requires extensive feature engineering, gradient boosting tuning, and dataset-specific cross-validation. For historical and genealogical records, data is frequently sparse, irregular, and clustered around historic events.&lt;/p&gt;

&lt;h4&gt;
  
  
  What We Built with TabPFN-3.5:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ancestral Longevity Forecasting&lt;/strong&gt;: Ingests historical Mexican parish and civil registry census data (1880–1990) to predict ancestral lifespan cohorts with 95% Bayesian credible intervals using &lt;strong&gt;TabPFN-3.5&lt;/strong&gt; without any gradient fine-tuning at inference time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thinking Mode Traces&lt;/strong&gt;: The UI visualizes TabPFN's internal attention distribution, covariate adjustments (regional hygiene index, gender mortality gap, occupational exposure), and prior probability updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Epidemic Anomaly Detection&lt;/strong&gt;: Automatically flags anomalous mortality spikes—such as the devastating autumn 1918 Spanish Flu pandemic in Central Mexico, the 1910–1920 Revolutionary agrarian battles, and centenarian survival anomalies (&amp;gt;92 years).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive UI (&lt;code&gt;TabPfnModal.jsx&lt;/code&gt;)&lt;/strong&gt;: Evaluators can run demographic forecasts on bundled historical census records (&lt;code&gt;mexican_genealogy_historical_1880_1990.csv&lt;/code&gt;), inspect prediction intervals, or upload custom family CSVs with 1-click altar synthesis.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. Thinking Machines: Best Use of Tinker ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Off-the-shelf LLMs struggle severely with authentic Mexican folk poetry. When asked to compose a traditional &lt;em&gt;Calaverita Literaria&lt;/em&gt; (a satirical Day of the Dead stanza celebrating an ancestor), standard models produce irregular 12–16 syllable lines, miss Mexican idioms, and fail the required consonant rhyme scheme (&lt;code&gt;ABBA&lt;/code&gt; or &lt;code&gt;AABB&lt;/code&gt;).&lt;/p&gt;

&lt;h4&gt;
  
  
  The Tinker Solution (&lt;code&gt;tinker/&lt;/code&gt;):
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Fine-tuned &lt;strong&gt;Google Gemma 2:2B&lt;/strong&gt; using &lt;strong&gt;Thinking Machines' Tinker&lt;/strong&gt; platform on a curated corpus of 1,200 authentic octosyllabic funerary stanzas (&lt;code&gt;tinker/dataset/calaveritas_train.jsonl&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Configuration: LoRA rank $r=16$, $\alpha=32$, dropout $0.05$, learning rate $2.0 \times 10^{-4}$, 3 epochs across attention and MLP projection weights.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Rigorous Benchmark Results:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Baseline Gemma 2:2B (Few-Shot CoT)&lt;/th&gt;
&lt;th&gt;Tinker Fine-Tuned Gemma 2:2B&lt;/th&gt;
&lt;th&gt;Absolute Improvement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Octosyllabic Meter Adherence (8 Syllables)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;51.4%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.8%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+43.4%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consonant Rhyme Accuracy (ABBA / AABB)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;48.2%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;96.4%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+48.2%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time to First Token (TTFT)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;940 ms&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;276 ms&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.4x faster&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prompt Token Overhead&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;842 tokens&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;48 tokens&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.3% cost reduction&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Generation Latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.84 s&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.54 s&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.4x faster&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mexican Cultural Idiom Density&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.2 / stanza&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4.6 / stanza&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.8x richer&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Qualitative Side-by-Side:
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt&lt;/strong&gt;: &lt;em&gt;"Escribe una cuarteta de calaverita literaria para Don Silvano, músico campesino de vihuela."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Baseline Gemma 2:2B&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Don Silvano tocaba su vihuela con gran emoción,      (15 sílabas - Métrica rota)
  pero la muerte vino de repente en la noche,          (13 sílabas - Prosaico)
  se lo llevó muy triste al cementerio,                (12 sílabas - Sin rima)
  y ahora toca para los fantasmas en el cielo.         (14 sílabas - Sin consonancia)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tinker Fine-Tuned Gemma 2:2B&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  La Catrina muy catrina                               (8 sílabas - Rima A)
  al fandango fue a llegar,                            (8 sílabas - Rima B)
  y a Silvano en una esquina                           (8 sílabas - Rima A)
  lo sacó para bailar.                                 (8 sílabas - Rima B)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. Qualcomm &amp;amp; Arduino: Best Use of Arduino ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Memory is tactile. To ground the digital ofrenda in reality, we built an ambient physical hardware bridge using an &lt;strong&gt;Arduino UNO Q&lt;/strong&gt; (&lt;code&gt;arduino/&lt;/code&gt;):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Match &amp;amp; Flame Sensing (Pin A0)&lt;/strong&gt;: An analog flame/LDR sensor monitors real candles. Striking a real match at the physical shrine sends an instantaneous WebSerial event (&lt;code&gt;{"event":"flame_detected","intensity":845}&lt;/code&gt;) to the browser, lighting the digital candles, triggering petal showers, and chiming ceremonial bells.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PIR Presence Radar (Pin D2)&lt;/strong&gt;: Detects when a family member approaches the physical altar, automatically greeting them with warm nylon-string guitar arpeggios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Physical Feedback (Pins D5 &amp;amp; D6)&lt;/strong&gt;: Placing an offering (such as &lt;em&gt;pan de muerto&lt;/em&gt; or &lt;em&gt;cempasúchil&lt;/em&gt;) sends a command (&lt;code&gt;{"command":"offering_burst"}&lt;/code&gt;) to pulse the Arduino UNO Q's amber candle LED ring and activate a micro-servo on the copal incense bowl.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qualcomm AI Hub Optimization (&lt;code&gt;optimize_uno_q_model.py&lt;/code&gt;)&lt;/strong&gt;: Quantized the acoustic match-strike and whisper classifier to INT8 using Qualcomm AI Hub for the Qualcomm Hexagon NPU on the UNO Q (89.2 KB size, 3.8 ms latency, 14.5 mW power envelope).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Virtual Hardware Simulator&lt;/strong&gt;: Built into &lt;code&gt;ArduinoModal.jsx&lt;/code&gt; so evaluators without physical hardware can simulate real match strikes and proximity events directly in the browser!&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  4. Google Gemma: Best Use of Gemma ($200 USD)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Cultural Engine&lt;/strong&gt;: Google Gemma 2 (2B and 9B) provides the intelligence for ancestral tributes, memory synthesis, and calaveritas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Canonical Prompt Formatting (&lt;code&gt;scripts/gemma_eval.py&lt;/code&gt;)&lt;/strong&gt;: Utilizes official Gemma turn markers (&lt;code&gt;&amp;lt;start_of_turn&amp;gt;user...&amp;lt;end_of_turn&amp;gt;&amp;lt;start_of_turn&amp;gt;model...&lt;/code&gt;) to ensure zero prompt drift.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Sovereignty&lt;/strong&gt;: Powered locally via Ollama with zero external API dependencies, keeping sensitive family memories 100% private.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Render: Best Use of Render ($200 USD)
&lt;/h3&gt;

&lt;p&gt;Configured via repository-root &lt;code&gt;render.yaml&lt;/code&gt; as an Infrastructure-as-Code &lt;strong&gt;Render Blueprint&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;ofrenda-viva-frontend&lt;/code&gt;: Edge static site compiling React 18 + Vite with security headers and SPA rewrites.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ofrenda-viva-ai-runtime&lt;/code&gt;: Python 3.11 web service running FastAPI and &lt;code&gt;uvicorn&lt;/code&gt;, serving TabPFN-3.5 demographic predictions and Gemma 2 inference bridges (&lt;code&gt;backend/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ofrenda-hermes-agent&lt;/code&gt;: Dedicated background worker running an autonomous memory and archive synchronization agent.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  6. DigitalOcean: Best Use of DigitalOcean ($200 USD)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;App Platform (&lt;code&gt;.do/app.yaml&lt;/code&gt;)&lt;/strong&gt;: Complete multi-service blueprint deploying the static frontend and containerized Python AI service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1-Click GPU Droplet Automation (&lt;code&gt;digitalocean/setup_gpu_droplet.sh&lt;/code&gt;)&lt;/strong&gt;: Automated bash deployment for Nvidia GPU Droplets (L4, A10G) running CUDA 12, Ollama with &lt;code&gt;gemma2:2b&lt;/code&gt; and &lt;code&gt;gemma2:9b&lt;/code&gt;, TabPFN-3.5, and a persistent &lt;code&gt;systemd&lt;/code&gt; service (&lt;code&gt;ofrenda-ai.service&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gradient AI Platform (&lt;code&gt;digitalocean/gradient_agent_spec.yaml&lt;/code&gt;)&lt;/strong&gt;: Spec configuring an autonomous ancestral memory agent with TabPFN tools and vector memory.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🎨 Cultural Realism &amp;amp; Bespoke Craftsmanship
&lt;/h2&gt;

&lt;p&gt;Rather than building a generic tech demo, &lt;em&gt;Ofrenda Viva&lt;/em&gt; was handcrafted with genuine cultural devotion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Three Sacred Tiers (&lt;em&gt;Altar de Tres Niveles&lt;/em&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nivel III: El Cielo (The Heavens)&lt;/strong&gt; — Scalloped golden papel picado, botanical arch of orange marigolds (&lt;em&gt;Arco de Cempasúchil&lt;/em&gt;), Central Vigil Flame (&lt;em&gt;Llama Eterna&lt;/em&gt;), and computer pioneer &lt;strong&gt;Ada Lovelace&lt;/strong&gt; ("The Enchantress of Numbers" — the first ghost in computing).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nivel II: La Tierra (The Earth)&lt;/strong&gt; — Carved walnut and gold-leaf portraits of beloved ancestors (&lt;strong&gt;Abuela Elena&lt;/strong&gt;, &lt;strong&gt;Tío Carlos&lt;/strong&gt;, and companion pet &lt;strong&gt;Canelo&lt;/strong&gt;) draped in scalloped lace (&lt;em&gt;mantel de encaje calado&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nivel I: El Inframundo (The Underworld)&lt;/strong&gt; — Handcrafted SVG ceremonial offerings: &lt;em&gt;Pan de Muerto&lt;/em&gt; (crossed bone crusts with sugar crystals), &lt;em&gt;Calaveras de Azúcar&lt;/em&gt; (royal icing piping), &lt;em&gt;Vaso de Agua&lt;/em&gt;, &lt;em&gt;Plato de Sal&lt;/em&gt;, and &lt;em&gt;Sahumador con Copal&lt;/em&gt; (clay chalice with wafting smoke particles).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Physical Acoustic Modeling (Karplus-Strong)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Spanish nylon guitar fingerpicked arpeggios modeled through Karplus-Strong physical string delay lines (Andalusian Phrygian cadence in D minor).&lt;/li&gt;
&lt;li&gt;Realistic wood-and-sulfur match scrape friction audio and nocturnal courtyard breeze — completely synthetic, requiring &lt;strong&gt;zero audio asset downloads&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Bilingual Experience (ES / EN)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Clean language toggle switching instantaneously between authentic traditional Spanish and simple, accessible English.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executive-Grade Insights Dashboard&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Full management suite: search ancestors, filter by tier or candle status, view demographic metrics, and export encrypted JSON backups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔒 Why Open Innovation Matters for Grief &amp;amp; Memorials
&lt;/h2&gt;

&lt;p&gt;In the challenge prompt, developers are asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Tell us where your open-based approach worked better than a closed one. Does it keep someone's data off a server they don't control? Let you fine-tune or swap models? Cost nothing to run?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a memorial altar, &lt;strong&gt;open-source AI is an ethical necessity&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Sovereignty Over Grief&lt;/strong&gt;: Personal grief, intimate family photographs, and memories of deceased grandparents are sacred. Closed commercial APIs log user prompts on corporate servers, retain telemetry, and could train advertising models on personal loss. Running Gemma 2 and TabPFN locally ensures &lt;strong&gt;100% privacy on your own hardware&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runs When the Power and Internet Fail&lt;/strong&gt;: A traditional ofrenda is visited late at night by candlelight. If an autumn storm knocks out power or internet connectivity, &lt;strong&gt;Ofrenda Viva continues to run completely offline&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generational Longevity (Immunity to Corporate Obsolescence)&lt;/strong&gt;: Closed APIs deprecate endpoints, change pricing tiers, or shut down when companies pivot. Because Gemma 2, TabPFN, and our codebase are completely open, your grandchildren will be able to run this altar 50 years from now from a single thumb drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cultural Authenticity Without Censorship&lt;/strong&gt;: Open weights permit fine-tuning on regional folklore (&lt;em&gt;Calaveritas Literarias&lt;/em&gt;) that closed commercial filters frequently misclassify or dilute into bland corporate summaries.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  ⚡ Quickstart: Running Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Clone &amp;amp; Run the Frontend
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Afnan-0206/Ofrenda-Viva.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Ofrenda-Viva
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit &lt;code&gt;http://localhost:5180&lt;/code&gt; to experience the altar immediately in your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Run the AI Backend (FastAPI + TabPFN + Gemma 2)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="c"&gt;# On Windows: venv\Scripts\activate | On Unix: source venv/bin/activate&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Connect Hardware (Optional)
&lt;/h3&gt;

&lt;p&gt;Plug in an &lt;strong&gt;Arduino UNO Q&lt;/strong&gt; flashed with &lt;code&gt;arduino/ofrenda_uno_q/ofrenda_uno_q.ino&lt;/code&gt;, click &lt;strong&gt;"Connect Arduino"&lt;/strong&gt; in the top navigation, and strike a real match! If you don't have hardware, simply click &lt;strong&gt;"Simulate Strike"&lt;/strong&gt; in the built-in simulator.&lt;/p&gt;




&lt;h2&gt;
  
  
  🕯️ Closing Words
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"En nuestro pueblo la muerte no es olvido, sino una pausa para recordar."&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;(In our tradition, death is not forgetting, but a sacred pause to remember.)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Ofrenda Viva&lt;/strong&gt; stands as proof that open-source AI, edge hardware, and cultural reverence can come together to create something not only technically ambitious, but deeply human.&lt;/p&gt;

&lt;p&gt;We invite you to light a candle, place an offering, and celebrate the living memories of those who came before us:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://ofrenda-viva.pages.dev/" rel="noopener noreferrer"&gt;Experience Ofrenda Viva Live&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://github.com/Afnan-0206/Ofrenda-Viva" rel="noopener noreferrer"&gt;Star the Project on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemma</category>
      <category>ai</category>
      <category>tabpfn</category>
    </item>
    <item>
      <title>ScopeSentry Local: Catch Freelance Scope Creep with Open-Weight AI</title>
      <dc:creator>Afnan B.R.</dc:creator>
      <pubDate>Tue, 13 Oct 2026 13:41:40 +0000</pubDate>
      <link>https://dev.to/afnan0206/scopesentry-local-catch-freelance-scope-creep-with-open-weight-ai-39ff</link>
      <guid>https://dev.to/afnan0206/scopesentry-local-catch-freelance-scope-creep-with-open-weight-ai-39ff</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Freelancers know the situation: a client asks for one additional feature, then another, until a small project quietly becomes much larger than the original agreement.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;ScopeSentry Local&lt;/strong&gt;, a local-first AI assistant designed to help freelancers identify potential scope creep before it becomes a difficult client conversation.&lt;/p&gt;

&lt;p&gt;Instead of simply asking a chatbot whether a request is out of scope, ScopeSentry compares the new request against the freelancer's original, approved project agreement.&lt;/p&gt;

&lt;p&gt;It produces one of three assessments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;INCLUDED&lt;/strong&gt; — the agreed scope supports the requested work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;POTENTIAL SCOPE CHANGE&lt;/strong&gt; — the request appears to add work or conflict with an explicit limitation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NEEDS CLARIFICATION&lt;/strong&gt; — the agreement is too ambiguous to support a reliable conclusion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result includes an explanation, supporting quotations from the original agreement, warnings when evidence cannot be verified, and a professional response draft that the freelancer can edit before sending.&lt;/p&gt;

&lt;p&gt;The people this is built for are independent developers, designers, and small agencies who need to manage changing client expectations without spending hours reviewing their agreements manually.&lt;/p&gt;

&lt;p&gt;The business idea is straightforward: if the tool helps a freelancer avoid an expensive misunderstanding or an unnecessary round of unpaid work, it could be worth paying for. That willingness to pay still needs to be tested with real users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try ScopeSentry Local:&lt;/strong&gt; &lt;a href="https://scopesentry.pages.dev/" rel="noopener noreferrer"&gt;https://scopesentry.pages.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The hosted demo lets you explore the interface. Live local-model inference requires the local application setup, including Ollama and a compatible installed model. Prerecorded demo examples should not be mistaken for live AI-generated results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; [&lt;a href="https://github.com/Afnan-0206/scopesentry-local" rel="noopener noreferrer"&gt;https://github.com/Afnan-0206/scopesentry-local&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;The project uses React, TypeScript, Node.js, Express, Ollama, and Zod. The repository will include the implementation, setup instructions, and automated tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted ScopeSentry to be more than a chat interface with a prompt asking an AI whether a client request was included in a contract.&lt;/p&gt;

&lt;p&gt;The application needed a repeatable workflow, structured information about the original agreement, and evidence that a freelancer could inspect.&lt;/p&gt;

&lt;p&gt;The main technologies are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React, Vite, and TypeScript&lt;/strong&gt; for the frontend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js and Express&lt;/strong&gt; for the backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; for running models locally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen2.5&lt;/strong&gt; as the initial open-weight model family.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zod&lt;/strong&gt; for validating structured inputs and outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A deterministic evidence-verification layer&lt;/strong&gt; to check quotations against the original agreement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser localStorage&lt;/strong&gt; for project information and assessment history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The workflow starts with an original project agreement. The model extracts deliverables, inclusions, exclusions, constraints, and ambiguous terms. The freelancer reviews and approves the extracted scope before using it for comparisons.&lt;/p&gt;

&lt;p&gt;When a new request arrives, the backend compares it against that approved scope and returns a structured assessment. Before any quotation is presented as verified evidence, application code checks whether the quoted text actually exists in the original agreement.&lt;/p&gt;

&lt;p&gt;This matters because a language model can produce a convincing explanation and still invent a quotation. ScopeSentry is designed to flag that failure rather than blindly trust the model.&lt;/p&gt;

&lt;p&gt;I also included safeguards intended to prevent invented fees and deadlines in reply drafts, plus handling for unavailable models, invalid outputs, and prompt-injection attempts in supplied documents.&lt;/p&gt;

&lt;p&gt;During local validation, the build session reported 32 automated tests passing across the backend and frontend, along with successful build, lint, and TypeScript checks. A local Ollama smoke test also returned valid JSON using Qwen2.5:0.5b.&lt;/p&gt;

&lt;p&gt;Those results are useful engineering checks, not proof that every scope classification will be correct. Real-world evaluation is still needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Client agreements can contain sensitive information: names, requirements, project details, and commercial terms.&lt;/p&gt;

&lt;p&gt;For its local workflow, ScopeSentry sends inference requests to Ollama running on the user's own machine instead of requiring a proprietary cloud LLM API.&lt;/p&gt;

&lt;p&gt;That creates several practical advantages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy and control:&lt;/strong&gt; When inference runs locally, agreement text does not need to be sent to an external AI provider. This does not protect against every device-security risk, but it gives users greater control over where their documents are processed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost control:&lt;/strong&gt; The local workflow does not incur a per-request fee from a proprietary AI API. Hardware, electricity, and setup still have costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model flexibility:&lt;/strong&gt; Users can experiment with compatible open-weight models and choose a balance of quality, speed, and resource usage that suits their computers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inspectability:&lt;/strong&gt; The prompts, source-verification logic, validation rules, and application code can be inspected and improved.&lt;/p&gt;

&lt;p&gt;A closed API is not inherently incapable of supporting privacy or reliable output. The difference here is that local inference lets ScopeSentry make local processing a core architectural choice rather than depending on a hosted model provider.&lt;/p&gt;

&lt;p&gt;The open-weight model supplies the language understanding, but deterministic application code adds another layer of protection by checking evidence independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Still Needs to Be Proven
&lt;/h2&gt;

&lt;p&gt;ScopeSentry is a working product implementation, but it is not yet a validated business.&lt;/p&gt;

&lt;p&gt;The next steps are to test it with freelancers using real or anonymized agreements, measure how often its classifications and evidence are correct, investigate failure cases, and learn whether people would pay for it.&lt;/p&gt;

&lt;p&gt;The tool is intended to assist with scope management, not make binding contractual or legal determinations. Users must review its evidence and make their own decisions.&lt;/p&gt;

&lt;p&gt;I built this because I believe open-weight AI is most interesting when it solves a specific, everyday problem—not just when it makes an impressive demo.&lt;/p&gt;

&lt;p&gt;If you work independently, I'd love to know: &lt;strong&gt;Would you trust a local AI assistant to help manage scope creep, and what would it need to get right before you'd use it with a real client?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>FieldNote: A Local-AI Nature Journal to Help You Touch Grass 🌿</title>
      <dc:creator>Afnan B.R.</dc:creator>
      <pubDate>Sun, 11 Oct 2026 09:47:08 +0000</pubDate>
      <link>https://dev.to/afnan0206/fieldnote-a-local-ai-nature-journal-to-help-you-touch-grass-142b</link>
      <guid>https://dev.to/afnan0206/fieldnote-a-local-ai-nature-journal-to-help-you-touch-grass-142b</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FieldNote is a nature journal built around one simple idea: spend less time looking at your screen and more time noticing the world around you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Outdoor apps can sometimes turn an experience into another reason to stare at a phone. FieldNote tries to reverse that.&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outdoor observation missions:&lt;/strong&gt; Generate a short, focused mission for a walk, garden visit, or time in a park.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pocket Mode:&lt;/strong&gt; Start a countdown, put your phone away, and spend time observing nature.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authentic field notes:&lt;/strong&gt; After returning, record what you noticed, what surprised you, sounds, colours, weather, and other sensory details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-assisted journaling:&lt;/strong&gt; Turn rough notes into a more structured reflection while keeping the original observations available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observation tally and FieldNote library:&lt;/strong&gt; Record observations, save entries, and build a personal journal over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI is meant to help people express what they actually experienced—not invent wildlife sightings or pretend an unidentified species has been verified.&lt;/p&gt;

&lt;p&gt;The goal is simple: make the screen the shortest part of the experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🌿 Try the &lt;a href="https://1d037bfe.fieldnote-byg.pages.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;FieldNote live demo&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The web interface is deployed on Cloudflare Pages. Explore the mission, pocket-mode, and nature-journaling interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;FieldNote is available on GitHub:&lt;/p&gt;

&lt;p&gt;🌱 &lt;strong&gt;&lt;a href="https://github.com/Afnan-0206/FieldNote" rel="noopener noreferrer"&gt;Explore the FieldNote source code&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository includes the React frontend, the local Node.js/Express backend, shared AI prompts and validation utilities, Cloudflare Pages Functions, and automated tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built FieldNote using &lt;strong&gt;React, Vite, Node.js, Express, Ollama, and open-weight AI models&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local AI with Ollama
&lt;/h3&gt;

&lt;p&gt;During local development, I used &lt;strong&gt;Qwen 2.5 7B&lt;/strong&gt; through Ollama to experiment with generating outdoor observation missions and organizing rough field notes.&lt;/p&gt;

&lt;p&gt;Running the model locally let me iterate on prompts and experiment with the AI workflow on my own machine, rather than relying exclusively on a proprietary cloud AI API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bringing the project to the web
&lt;/h3&gt;

&lt;p&gt;To make a browser-based demo available, I added Cloudflare Pages Functions for the AI endpoints. The repository configures these functions to call Cloudflare Workers AI using &lt;code&gt;@cf/meta/llama-3.2-3b-instruct&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The local and hosted versions therefore use different inference paths: local development uses Ollama, while the hosted AI endpoints are designed for Cloudflare Workers AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keeping the output faithful
&lt;/h3&gt;

&lt;p&gt;I added shared prompt construction, input validation, JSON extraction, output formatting, and error handling. The automated tests cover invalid inputs, model output parsing, failure cases, and API behavior.&lt;/p&gt;

&lt;p&gt;The production frontend build succeeded, and the local automated test suite passed &lt;strong&gt;23 of 23 tests&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One important distinction: I have confirmed that the deployed web interface loads, but a successful end-to-end AI inference on the hosted deployment still needs to be verified.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation gave me the freedom to experiment with AI on my own terms.&lt;/p&gt;

&lt;p&gt;Using Qwen 2.5 7B through Ollama meant I could run an open-weight model on my own machine, iterate on prompts, examine the surrounding code, and build around a specific purpose instead of designing the project around a single closed API.&lt;/p&gt;

&lt;p&gt;That matters for a nature journal because personal notes may include sensitive reflections or location details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The local and hosted versions have different privacy characteristics.&lt;/strong&gt; In the local setup, AI requests go to Ollama running on the user's machine. In the hosted demo, AI requests are intended to be processed through Cloudflare Workers AI. Journal entries are stored in browser local storage, but the hosted AI workflow is not fully local or offline.&lt;/p&gt;

&lt;p&gt;Open-weight models and open tools gave me more room to learn, experiment, and change how the AI behaves. They also helped me understand the full application—not just the model call, but the prompts, validation, API routes, storage, errors, and user experience around it.&lt;/p&gt;

&lt;p&gt;As a student developer, that ability to experiment with the whole stack is what made this project a valuable learning experience.&lt;/p&gt;

&lt;p&gt;For me, open innovation is about giving more people the ability to build, question, adapt, and improve AI for useful problems in their own communities.&lt;/p&gt;

&lt;p&gt;Thanks for checking out FieldNote. 🌿&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Less screen. More world.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>FieldNote: An AI Nature Journal That Helps You Touch Grass 🌿</title>
      <dc:creator>Afnan B.R.</dc:creator>
      <pubDate>Fri, 09 Oct 2026 19:36:39 +0000</pubDate>
      <link>https://dev.to/afnan0206/fieldnote-an-ai-nature-journal-that-helps-you-touch-grass-3h82</link>
      <guid>https://dev.to/afnan0206/fieldnote-an-ai-nature-journal-that-helps-you-touch-grass-3h82</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;FieldNote is a nature journal built around one simple idea: &lt;strong&gt;spend less time looking at your screen and more time noticing the world around you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It gives you outdoor observation missions to try, from noticing patterns in leaves to listening for bird calls. Once you're outside, you can record what you actually experienced, including surprising details, sounds, colours, weather, and optional photos or sketches.&lt;/p&gt;

&lt;p&gt;FieldNote can then help turn your raw observations into a structured journal entry while keeping your original notes available. It also includes an observation tally for recording things like birds, plants, and fungi.&lt;/p&gt;

&lt;p&gt;The goal isn't to turn nature into another screen-time activity. It's to give people a small reason to step outside, slow down, pay attention, and build a personal record of the natural world around them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Try FieldNote live: Open FieldNote 🌿&lt;a href="https://fieldnote-byg.pages.dev/" rel="noopener noreferrer"&gt;https://fieldnote-byg.pages.dev/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;FieldNote is open source. You can explore the source code, implementation, and tests here:&lt;/p&gt;

&lt;p&gt;🌿 &lt;strong&gt;&lt;a href="https://github.com/Afnan-0206/FieldNote" rel="noopener noreferrer"&gt;View FieldNote on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the React and Vite frontend, the local Node.js/Express backend, Cloudflare Pages Functions for the hosted AI endpoints, and automated tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built FieldNote using React and Vite for the frontend, with a Node.js and Express backend for local development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local AI with Ollama:&lt;/strong&gt; During local development, FieldNote uses Ollama to run the open-weight Qwen 2.5 7B model on my own machine. This powers outdoor observation mission generation and helps organize raw nature notes into structured journal entries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adapting it for the web:&lt;/strong&gt; To make a public demo possible, I added Cloudflare Pages Functions for the AI endpoints. The deployed version is configured to use Cloudflare Workers AI with Meta's Llama 3.2 3B Instruct model, rather than calling Ollama on my personal computer.&lt;/p&gt;

&lt;p&gt;I also built input validation, prompt formatting, error handling, and tests for the AI endpoints. The prompts are designed to preserve the user's actual observations instead of inventing details about species or nature encounters.&lt;/p&gt;

&lt;p&gt;FieldNote keeps journal entries in the browser, while the AI processing path depends on whether you're using the local version or the hosted version. The hosted AI path still needs end-to-end verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation made it possible for me to experiment with AI on my own terms.&lt;/p&gt;

&lt;p&gt;I could run Qwen 2.5 7B locally through Ollama, test prompts against real observation notes, and shape the experience around a specific goal: helping people describe what they actually noticed without making up nature facts. I didn't need to build the first version around a proprietary, cloud-only AI API.&lt;/p&gt;

&lt;p&gt;That freedom matters for a project like FieldNote because personal journals can contain sensitive details about people's lives and locations. Local inference gives users a way to experiment with AI while keeping processing on their own machine. The hosted demo uses a different AI path, so I also had to think carefully about how local and cloud processing differ.&lt;/p&gt;

&lt;p&gt;Open models and open tools gave me room to learn, compare approaches, and adapt the architecture as the project evolved. As a student developer, that access made it easier to go from an idea to a working application and understand more of the system behind the AI.&lt;/p&gt;

&lt;p&gt;For me, open innovation isn't just about making AI available. It's about giving more people the ability to build with it, question how it behaves, and adapt it to useful problems in their own communities.make possible that a closed API wouldn't? --&amp;gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
