<?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: Ashutosh Kumar</title>
    <description>The latest articles on DEV Community by Ashutosh Kumar (@ashu1osh).</description>
    <link>https://dev.to/ashu1osh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Ashutosh Kumar</title>
      <link>https://dev.to/ashu1osh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashu1osh"/>
    <language>en</language>
    <item>
      <title>I Taught Open-Source AI to Listen to the Ghosts of Broken Machines</title>
      <dc:creator>Ashutosh Kumar</dc:creator>
      <pubDate>Sat, 31 Oct 2026 09:01:35 +0000</pubDate>
      <link>https://dev.to/ashu1osh/i-taught-open-source-ai-to-listen-to-the-ghosts-of-broken-machines-3egg</link>
      <guid>https://dev.to/ashu1osh/i-taught-open-source-ai-to-listen-to-the-ghosts-of-broken-machines-3egg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is our team 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;&lt;strong&gt;A machine stops talking when its experiment ends. Its sensors do not.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Somewhere in the &lt;a href="https://doi.org/10.24432/C5CW21" rel="noopener noreferrer"&gt;UCI hydraulic systems archive&lt;/a&gt;, experiment &lt;strong&gt;735&lt;/strong&gt; left behind sixty seconds of pressure, flow, temperature, vibration, and power measurements. The pressure rises, levels off, falls, and rises again. The recording has a known experimental condition—but what happens if an AI model tells a different story?&lt;/p&gt;

&lt;p&gt;That question became &lt;strong&gt;ECHO-17: The Machine That Remembers&lt;/strong&gt;, an interactive, open-AI-powered forensic lab for real historical machine recordings.&lt;/p&gt;

&lt;p&gt;Instead of asking visitors to trust a classification badge, ECHO-17 lets them:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Recover a case&lt;/strong&gt; from a real archive and replay six measured sensor signals across sixty seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summon its Ghost Signature:&lt;/strong&gt; an overlaid, actual training recording selected as a reference—not a fabricated “healthy” curve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask the model&lt;/strong&gt; to classify the recorded cooler condition and inspect the evidence behind its answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reveal the original condition&lt;/strong&gt; only after the diagnosis, so the prediction can be checked against the experimental record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read a forensic narrative&lt;/strong&gt; grounded in measured evidence, with an open-weight Gemma model selecting which observations deserve attention.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The most memorable case is also a mistake. On &lt;strong&gt;Cycle 735&lt;/strong&gt;, our Random Forest predicts &lt;strong&gt;near failure (3% cooler condition)&lt;/strong&gt;. The archived experimental label, revealed afterward, is &lt;strong&gt;reduced efficiency (20% cooler condition)&lt;/strong&gt;. The prediction does not disappear or quietly change. ECHO-17 shows the disagreement.&lt;/p&gt;

&lt;p&gt;That is our interpretation of &lt;em&gt;Ghost in the Machine&lt;/em&gt;: the ghost is a real signal from the past, still capable of questioning what an AI believes today. This is &lt;strong&gt;historical condition classification&lt;/strong&gt;, not a prediction of when a machine will fail.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://echo17-forensic-demo.onrender.com/" rel="noopener noreferrer"&gt;▶ Explore the live ECHO-17 forensic lab&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The public demo is hosted on Render's Free plan. Its first request may be slower after inactivity.&lt;/p&gt;

&lt;p&gt;For the quickest tour, open &lt;strong&gt;Machine Archive → Cycle 0735 → Signal Laboratory&lt;/strong&gt;, then try &lt;strong&gt;Reveal Ghost Signature → Run AI diagnosis → Generate investigation → Reveal Actual Condition&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwwget3vjqljqqjwz82c8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwwget3vjqljqqjwz82c8.png" alt="ECHO-17 machine archive showing real held-out historical recordings" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The archive: 441 held-out cycles, six measured channels, and sixty seconds per recording.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpyr8k7mwb52hgfr4c9bd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpyr8k7mwb52hgfr4c9bd.png" alt="Pressure replay for Cycle 735 with an actual training reference overlaid" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Two real recordings, not a simulated waveform: the selected cycle and its training-only reference.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fns40ljecvl1dffs2bqty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fns40ljecvl1dffs2bqty.png" alt="Random Forest diagnosis of Cycle 735 before the recorded condition is revealed" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The prediction appears first. The experiment's recorded answer remains concealed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq2krcstloyf4ears01ur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq2krcstloyf4ears01ur.png" alt="Cycle 735 reveal showing disagreement between the prediction and recorded cooler condition" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The reveal: a wrong prediction becomes an opportunity to inspect the evidence.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The hosted app serves &lt;strong&gt;saved Random Forest inference&lt;/strong&gt; and &lt;strong&gt;genuinely generated, prevalidated Gemma reports&lt;/strong&gt;. It labels these results as precomputed; the Render server does &lt;strong&gt;not&lt;/strong&gt; claim to run live Gemma or GPU inference. We also verified real Gemma inference locally through Ollama.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ashu1osh9/echo-17" rel="noopener noreferrer"&gt;GitHub: ashu1osh9/echo-17&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ashu1osh9/echo-17/releases/tag/v1.0.0-demo" rel="noopener noreferrer"&gt;Public Demo Release&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository includes the React/FastAPI application, real-data preparation and validation scripts, documented modeling workflows, tests, deployment configuration, and a third-party attribution file.&lt;/p&gt;

&lt;p&gt;The repository was created during the October 26–31 challenge window.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  1. Start with evidence, not an invented haunting
&lt;/h3&gt;

&lt;p&gt;We used &lt;strong&gt;UCI 447, Condition Monitoring of Hydraulic Systems&lt;/strong&gt;, by Helwig, Pignanelli, and Schuetze (2015), licensed under CC BY 4.0.&lt;/p&gt;

&lt;p&gt;The source provides &lt;strong&gt;2,205 aligned experimental cycles&lt;/strong&gt; and original sensor recordings. Our interface does not synthesize their waveforms.&lt;/p&gt;

&lt;p&gt;Six physical channels—pressure (PS1), flow (FS1), inlet and outlet temperature (TS1/TS2), vibration (VS1), and motor power (EPS1)—each contribute six statistics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mean&lt;/li&gt;
&lt;li&gt;Standard deviation&lt;/li&gt;
&lt;li&gt;Minimum&lt;/li&gt;
&lt;li&gt;Maximum&lt;/li&gt;
&lt;li&gt;5th percentile&lt;/li&gt;
&lt;li&gt;95th percentile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives &lt;strong&gt;36 sensor-only features&lt;/strong&gt;. Cycle IDs, component-condition labels, and stability targets are not model inputs.&lt;/p&gt;

&lt;p&gt;Our stratified split (seed 42) keeps &lt;strong&gt;1,764 training cycles&lt;/strong&gt; separate from &lt;strong&gt;441 held-out cycles&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The baseline is a &lt;strong&gt;250-tree Random Forest&lt;/strong&gt; with balanced subsample class weights.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Held-out baseline result&lt;/th&gt;
&lt;th&gt;Measured value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;99.32%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Macro-F1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.9932&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Correct / incorrect cycles&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;438 / 3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All three baseline errors—&lt;strong&gt;cycles 2, 735, and 1467&lt;/strong&gt;—are retained for inspection.&lt;/p&gt;

&lt;p&gt;For Cycle 735, the Random Forest assigns &lt;strong&gt;50.4%&lt;/strong&gt; of its uncalibrated class probability to &lt;em&gt;near failure&lt;/em&gt; and &lt;strong&gt;49.6%&lt;/strong&gt; to &lt;em&gt;reduced efficiency&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The margin is tiny.&lt;/p&gt;

&lt;p&gt;Neither number is a calibrated failure risk, and the cooler-condition percentages are experimental class labels, &lt;strong&gt;not forecasts of imminent breakdown&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Give the recording a Ghost Signature
&lt;/h3&gt;

&lt;p&gt;A waveform can look unusual without proving a cause.&lt;/p&gt;

&lt;p&gt;Our Ghost Signature therefore compares the case against an &lt;strong&gt;actual full-cooler-efficiency recording from the training split&lt;/strong&gt;, selected with training-only standardization.&lt;/p&gt;

&lt;p&gt;The held-out label is not used to pick the reference.&lt;/p&gt;

&lt;p&gt;For Cycle 735, the selected reference is &lt;strong&gt;training Cycle 1850&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;On the inlet-temperature channel TS1, the aligned-preview mean difference is &lt;strong&gt;+17.6889 °C&lt;/strong&gt;, with RMSE &lt;strong&gt;17.6902 °C&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These values describe a measured difference; they do &lt;strong&gt;not&lt;/strong&gt; establish a physical root cause.&lt;/p&gt;

&lt;p&gt;Nor does a full-efficiency cooler imply that every other component in the reference was healthy.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Let Gemma interpret—but never invent—the evidence
&lt;/h3&gt;

&lt;p&gt;We ran &lt;strong&gt;Gemma 3 1B (Q4_K_M)&lt;/strong&gt; locally with &lt;strong&gt;Ollama&lt;/strong&gt; on CPU and verified genuine reports for Cycle 735 and Cycle 5.&lt;/p&gt;

&lt;p&gt;Gemma receives a bounded evidence packet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Measured sensor statistics&lt;/li&gt;
&lt;li&gt;Saved model predictions&lt;/li&gt;
&lt;li&gt;Training-reference comparisons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The recorded target class stays &lt;strong&gt;out of its prompt&lt;/strong&gt; until the visitor chooses to reveal it separately.&lt;/p&gt;

&lt;p&gt;Crucially, Gemma does not author arbitrary numerical conclusions.&lt;/p&gt;

&lt;p&gt;It selects &lt;strong&gt;evidence references and an uncertainty framing&lt;/strong&gt; in a validated structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pydantic&lt;/strong&gt; checks the response, and the backend renders factual numbers directly from the recorded evidence.&lt;/p&gt;

&lt;p&gt;A report separates observations, comparisons, model prediction, hypotheses, and limitations.&lt;/p&gt;

&lt;p&gt;Invalid or unavailable LLM results are clearly labeled &lt;strong&gt;rule-based / non-LLM fallback&lt;/strong&gt;, not passed off as Gemma.&lt;/p&gt;

&lt;p&gt;For a lightweight public deployment, four actual local Gemma reports (cycles &lt;strong&gt;5, 735, 2, and 1467&lt;/strong&gt;) were saved and are revalidated before serving.&lt;/p&gt;

&lt;p&gt;This preserves genuine model work without pretending that our small Render instance is running the LLM.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. An optional, license-respecting foundation-model study
&lt;/h3&gt;

&lt;p&gt;We also performed a genuine &lt;strong&gt;TabPFN-3.5&lt;/strong&gt; experiment on the same saved split in a separate Colab GPU workflow.&lt;/p&gt;

&lt;p&gt;That study is &lt;strong&gt;not&lt;/strong&gt; the public app's classifier.&lt;/p&gt;

&lt;p&gt;We have kept its restricted model weights and outputs out of the hosted release while public-use and output permissions remain unconfirmed under the separate Prior Labs terms.&lt;/p&gt;

&lt;p&gt;The code documents the research workflow without relabeling Random Forest outputs as TabPFN predictions.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Turn the investigation into a usable product
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React, TypeScript, Vite, and Recharts power the sensor replay, channel selection, Ghost Signature overlay, diagnosis, reveal, and model evaluation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FastAPI provides real archive IDs, measured-signal endpoints, saved predictions, validation, and ground-truth reveal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local open-weight AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemma 3 through Ollama, with deterministic validation and honest fallback behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One Render Docker web service serves the static frontend and API, loading a checked RF-only public data bundle without restricted model weights.&lt;/p&gt;

&lt;p&gt;The release checks reported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;85 passing backend tests&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14 passing frontend tests&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Successful production build&lt;/li&gt;
&lt;li&gt;Passing RF-only API verification checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also manually exercised the hosted Cycle 735 replay, Ghost overlay, diagnosis, Gemma report, and recorded-condition reveal.&lt;/p&gt;

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

&lt;p&gt;An opaque prediction API could return a label.&lt;/p&gt;

&lt;p&gt;It could not, by itself, make this case reproducible or explain what it actually saw.&lt;/p&gt;

&lt;p&gt;Here the &lt;strong&gt;recordings are real and openly credited&lt;/strong&gt;, the feature definitions are inspectable, the saved split and baseline failures are documented, and the investigation can be rebuilt with different classifiers.&lt;/p&gt;

&lt;p&gt;Running &lt;strong&gt;Gemma locally&lt;/strong&gt; makes the evidence flow explicit and avoids silently shipping the entire investigation to a closed remote model.&lt;/p&gt;

&lt;p&gt;Strict backend validation gives us an even more important freedom:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We can disagree with the AI and still know where every reported number came from.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open innovation also means respecting boundaries.&lt;/p&gt;

&lt;p&gt;ECHO-17's application code uses the MIT license, UCI data retains its CC BY 4.0 attribution, and Gemma/TabPFN are governed by their own respective model terms.&lt;/p&gt;

&lt;p&gt;“Open-weight” does not automatically mean unrestricted redistribution or unrestricted production use.&lt;/p&gt;

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

&lt;p&gt;We used &lt;strong&gt;OpenAI Codex as a development assistant&lt;/strong&gt; to iterate through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-data validation&lt;/li&gt;
&lt;li&gt;The Random Forest baseline&lt;/li&gt;
&lt;li&gt;Frontend integration&lt;/li&gt;
&lt;li&gt;GPU research preparation&lt;/li&gt;
&lt;li&gt;Genuine local Gemma execution&lt;/li&gt;
&lt;li&gt;Automated tests&lt;/li&gt;
&lt;li&gt;Release safety checks&lt;/li&gt;
&lt;li&gt;Render deployment preparation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We kept reproducibility and evidence logs in &lt;strong&gt;&lt;a href="https://github.com/ashu1osh9/echo-17/blob/main/docs/RUN_LOG.md" rel="noopener noreferrer"&gt;docs/RUN_LOG.md&lt;/a&gt;&lt;/strong&gt; rather than presenting generated claims as tests.&lt;/p&gt;

&lt;p&gt;We have not included a DevRelay session recording because none was published.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Cycle 735 did not tell us a ghost story in words.&lt;/p&gt;

&lt;p&gt;It left a pressure trace, some temperatures, and a recorded experimental label.&lt;/p&gt;

&lt;p&gt;Years later, our classifier gave a different answer.&lt;/p&gt;

&lt;p&gt;For a moment, the interesting question stopped being:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“How accurate is this model?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And became:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“What would it take to verify what it says?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ghost is not the failure. The ghost is the evidence we almost forgot to inspect.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is what ECHO-17 is built to remember.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Genuine local Gemma 3 evidence selection through Ollama, structured validation, grounded reports, and honest precomputed/fallback labeling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of Render
&lt;/h3&gt;

&lt;p&gt;A working public frontend and FastAPI forensic demo deployed as a single Render Docker service.&lt;/p&gt;

&lt;p&gt;We are not claiming the TabPFN partner category in this public submission while the applicable output/public-use licensing questions remain unresolved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Team and Credits
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;This is one submission from our two-person team participating in Hacktoberfest 2026 Week 4.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Team Members
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. &lt;a href="https://dev.to/ashu1osh"&gt;@ashu1osh&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Submitting team member.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. &lt;a href="https://dev.to/ishani_karpoor_21c50c88bc"&gt;@ishani_karpoor_21c50c88bc&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Teammate.&lt;/p&gt;

&lt;p&gt;We credit &lt;strong&gt;Helwig, Pignanelli, and Schuetze&lt;/strong&gt; for the UCI dataset, &lt;strong&gt;Google&lt;/strong&gt; for Gemma, &lt;strong&gt;Ollama&lt;/strong&gt; for local inference, &lt;strong&gt;Prior Labs&lt;/strong&gt; for the separate TabPFN research model, and the open-source Python/React ecosystem.&lt;/p&gt;

&lt;p&gt;The implementation builds on its documented starter and used Codex assistance. We do not claim to have invented the underlying models.&lt;/p&gt;

&lt;p&gt;Further attribution and license details are available in &lt;strong&gt;&lt;a href="https://github.com/ashu1osh9/echo-17/blob/main/THIRD_PARTY_NOTICES.md" rel="noopener noreferrer"&gt;THIRD_PARTY_NOTICES.md&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Explore ECHO-17
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://echo17-forensic-demo.onrender.com/" rel="noopener noreferrer"&gt;Live Interactive Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ashu1osh9/echo-17" rel="noopener noreferrer"&gt;GitHub Source Code&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every machine leaves a trace. ECHO-17 gives that trace a voice.&lt;/strong&gt;&lt;/p&gt;

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