<?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: Aayush Sharma</title>
    <description>The latest articles on DEV Community by Aayush Sharma (@aayush_sharma_2604).</description>
    <link>https://dev.to/aayush_sharma_2604</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%2F4159677%2F4dc65ac6-80b4-42a2-a8a0-d03b969a69a5.png</url>
      <title>DEV Community: Aayush Sharma</title>
      <link>https://dev.to/aayush_sharma_2604</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aayush_sharma_2604"/>
    <language>en</language>
    <item>
      <title>🔥 Campfire After Dark — A Local AI That Tells Stories in the Dark</title>
      <dc:creator>Aayush Sharma</dc:creator>
      <pubDate>Sat, 31 Oct 2026 19:40:34 +0000</pubDate>
      <link>https://dev.to/aayush_sharma_2604/campfire-after-dark-a-local-ai-that-tells-stories-in-the-dark-2a94</link>
      <guid>https://dev.to/aayush_sharma_2604/campfire-after-dark-a-local-ai-that-tells-stories-in-the-dark-2a94</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;&lt;strong&gt;Campfire After Dark&lt;/strong&gt; is a local-first AI horror storytelling app that transforms simple prompts into immersive, narrated horror experiences.&lt;/p&gt;

&lt;p&gt;I wanted to recreate the feeling of sitting around a campfire at night, listening to a story that gets more unsettling with every passing minute.&lt;/p&gt;

&lt;p&gt;With Campfire After Dark, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate short or long AI-powered horror stories.&lt;/li&gt;
&lt;li&gt;Choose different fear levels and story endings.&lt;/li&gt;
&lt;li&gt;Experience stories organized into chapters.&lt;/li&gt;
&lt;li&gt;View visuals that accompany the story scenes.&lt;/li&gt;
&lt;li&gt;Listen to AI-generated voice narration.&lt;/li&gt;
&lt;li&gt;Experience ambient soundscapes that build the atmosphere.&lt;/li&gt;
&lt;li&gt;Encounter timed audio and visual jump scares.&lt;/li&gt;
&lt;li&gt;Replay individual chapters or the complete story.&lt;/li&gt;
&lt;li&gt;Save and revisit your favorite stories.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to build more than a basic story generator. I wanted to create an interactive horror experience powered by local AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  🖥️ A Look Inside the Campfire
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;🏠 Home Page&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%2Fv2sdw7bme3ip96qgty41.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%2Fv2sdw7bme3ip96qgty41.png" alt="Campfire After Dark Home Page" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📖 Story Player&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%2Fl7k6msd90kn1fers9xqr.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%2Fl7k6msd90kn1fers9xqr.png" alt="Campfire After Dark Story Player" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💾 Saved Stories&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%2F57fxmgz3jl7boayn9gnx.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%2F57fxmgz3jl7boayn9gnx.png" alt="Campfire After Dark Saved Stories" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Watch Campfire After Dark in action:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://vimeo.com/1241814042?share=copy&amp;amp;fl=sv&amp;amp;fe=ci" rel="noopener noreferrer"&gt;https://vimeo.com/1241814042?share=copy&amp;amp;fl=sv&amp;amp;fe=ci&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application currently runs locally on the user's machine. The demo video will walk through story generation, narration, the story player, and saved stories.(The demo video also contains a demo story).&lt;/p&gt;




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

&lt;p&gt;🔥 &lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Aayush264/campfire-after-dark" rel="noopener noreferrer"&gt;Campfire After Dark — GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the frontend, local AI integration, narration server, and setup instructions.&lt;/p&gt;




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

&lt;p&gt;The most important part of this project is that its AI capabilities run locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Story Generation — Ollama + Qwen3
&lt;/h3&gt;

&lt;p&gt;I used &lt;strong&gt;Ollama&lt;/strong&gt; to run the &lt;strong&gt;Qwen3 4B Instruct&lt;/strong&gt; model locally.&lt;/p&gt;

&lt;p&gt;The model generates horror stories based on the user's choices. The app creates the full story first and then organizes it into chapters, helping avoid generation pauses between chapters during playback.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Voice Narration — Kokoro ONNX
&lt;/h3&gt;

&lt;p&gt;For narration, I integrated &lt;strong&gt;Kokoro ONNX&lt;/strong&gt; through a local &lt;strong&gt;FastAPI&lt;/strong&gt; server.&lt;/p&gt;

&lt;p&gt;It converts story text into speech, giving the stories a narrated experience without relying on an external cloud text-to-speech API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend — React + Vite
&lt;/h3&gt;

&lt;p&gt;The user interface is built with &lt;strong&gt;React and Vite&lt;/strong&gt;. It handles story creation, chapter navigation, visuals, audio playback, ambient sound, and jump-scare timing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local Story Storage — IndexedDB
&lt;/h3&gt;

&lt;p&gt;Generated stories are saved in the browser using &lt;strong&gt;IndexedDB&lt;/strong&gt;, allowing users to revisit their stories without needing a hosted database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI model:&lt;/strong&gt; Qwen3 4B Instruct&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local model runtime:&lt;/strong&gt; Ollama&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice generation:&lt;/strong&gt; Kokoro ONNX&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python + FastAPI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React + Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; IndexedDB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio experience:&lt;/strong&gt; Browser audio playback and ambient sound&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;For Campfire After Dark, open innovation is not just a technology choice. It is part of the project's identity.&lt;/p&gt;

&lt;p&gt;I wanted to build an AI experience where users do not have to send their story prompts to an external AI service.&lt;/p&gt;

&lt;p&gt;By running the models locally:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy:&lt;/strong&gt; Story prompts and generation requests stay on the user's machine rather than being sent to a hosted AI inference API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No per-request API fees:&lt;/strong&gt; Once the models are installed, local inference does not require paying an external provider for each generated story or narration request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freedom to experiment:&lt;/strong&gt; I can experiment with local models and change the way the storytelling experience works without being tied to a single closed AI API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local control:&lt;/strong&gt; The core AI generation and narration services run on the user's own machine.&lt;/p&gt;

&lt;p&gt;There are trade-offs. Users need to download the models, install the required dependencies, and have hardware capable of running them.&lt;/p&gt;

&lt;p&gt;But for this project, that trade-off is worthwhile. It gives me greater control over the experience and keeps the core AI workflow local.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I believe open innovation makes AI more accessible to experiment with, customize, and build upon.&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;Every good horror story begins with a little imagination.&lt;/p&gt;

&lt;p&gt;A strange noise outside the window. Footsteps in an empty hallway. A voice coming from somewhere it should not be.&lt;/p&gt;

&lt;p&gt;I wanted Campfire After Dark to capture that feeling.&lt;/p&gt;

&lt;p&gt;The idea was to combine local AI storytelling with narration, visuals, atmospheric audio, and unexpected scares to create something that feels closer to an interactive campfire story than a traditional chatbot.&lt;/p&gt;

&lt;p&gt;And perhaps the best part is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The next scary story does not have to come from the internet. It can come from the machine sitting right in front of you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌙 Keep the lights on. You might need them.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with curiosity, open AI, and a little bit of fear. 🔥&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ollama</category>
    </item>
    <item>
      <title>Receipt Raccoon: A Local-First AI for the Receipts We Never Want to Find</title>
      <dc:creator>Aayush Sharma</dc:creator>
      <pubDate>Sun, 25 Oct 2026 08:55:39 +0000</pubDate>
      <link>https://dev.to/aayush_sharma_2604/receipt-raccoon-a-local-first-ai-for-the-receipts-we-never-want-to-find-5amj</link>
      <guid>https://dev.to/aayush_sharma_2604/receipt-raccoon-a-local-first-ai-for-the-receipts-we-never-want-to-find-5amj</guid>
      <description>&lt;p&gt;&lt;strong&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Meet Receipt Raccoon 🦝 — a local-first receipt and warranty organizer built to solve a surprisingly annoying problem: finding the bill you need when you actually need it.&lt;/p&gt;

&lt;p&gt;You buy a phone, an appliance, or a computer. You keep the receipt somewhere safe. Months later, you need it for a warranty claim, and suddenly that “safe place” is nowhere to be found.&lt;/p&gt;

&lt;p&gt;I built Receipt Raccoon to make that process less painful.&lt;/p&gt;

&lt;p&gt;Here's what it can do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read receipts with AI:&lt;/strong&gt; Upload a supported receipt image and use Gemma to extract information such as the product name, seller, purchase date, amount, and warranty expiry date. You can review and correct the results before saving.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find receipts with natural language:&lt;/strong&gt; Ask questions such as “Find the refrigerator bill from last year” instead of trying to remember an exact filename.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track warranties:&lt;/strong&gt; See which warranties are active, expiring soon, or expired.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detect potential duplicates:&lt;/strong&gt; Get a warning when a receipt looks similar to one already saved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manage documents:&lt;/strong&gt; Search, open, and delete receipts, clear the collection, and download or restore backups.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Receipt records and original files are stored in the browser's IndexedDB. The goal is to make keeping track of important purchases easier without requiring a complicated account or a cloud database.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live website:&lt;/strong&gt; &lt;a href="https://receipt-raccoon-beige.vercel.app/" rel="noopener noreferrer"&gt;Try Receipt Raccoon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/Aayush264/receipt-raccoon" rel="noopener noreferrer"&gt;GitHub — Receipt Raccoon&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Video walkthrough
&lt;/h3&gt;

&lt;p&gt;&lt;iframe src="https://player.vimeo.com/video/1239199015" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The hosted demo lets you explore the document-management interface, warranty tracker, and backup features.&lt;/p&gt;

&lt;p&gt;One important detail: AI reading and natural-language search require Ollama running locally with the Gemma model. Those AI features are not enabled on the hosted Vercel demo, so they need to be demonstrated using the local application.&lt;/p&gt;

&lt;p&gt;That separation is intentional. I wanted to make the interface accessible online without pretending that my computer's local AI service was available to everyone on the internet.&lt;/p&gt;

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

&lt;p&gt;The project is built with Next.js and TypeScript.&lt;/p&gt;

&lt;p&gt;The main parts of the implementation include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;app/api/analyze-receipt/route.ts&lt;/code&gt; — handles receipt-image analysis.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;app/api/search-receipts/route.ts&lt;/code&gt; — handles natural-language receipt search.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;lib/receipts.ts&lt;/code&gt; — manages receipt records in IndexedDB.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;lib/backup.ts&lt;/code&gt; — handles backup creation and restoration.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;app/page.tsx&lt;/code&gt; — brings the receipt-management interface and features together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Explore the complete implementation in the &lt;a href="https://github.com/Aayush264/receipt-raccoon" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;I built Receipt Raccoon with Next.js, React, TypeScript, and CSS. IndexedDB stores receipt information and the original documents locally in the browser.&lt;/p&gt;

&lt;p&gt;For the AI features, I used &lt;strong&gt;Gemma 3 through Ollama&lt;/strong&gt;, running on my own computer.&lt;/p&gt;

&lt;p&gt;The receipt-reading flow sends a supported receipt image to the local application endpoint, which passes it to Ollama for analysis. The extracted fields are then placed into a form so the user can verify them against the original receipt before saving.&lt;/p&gt;

&lt;p&gt;The search feature takes a different approach: it sends receipt metadata to the local Ollama service rather than sending the original bill images. The model helps interpret the user's question and identify matching receipts.&lt;/p&gt;

&lt;p&gt;I also added deterministic duplicate-detection rules, warranty-expiry calculations, individual and bulk deletion, and JSON backup and restore.&lt;/p&gt;

&lt;p&gt;One lesson from building this was that the AI model is only one part of the experience. The surrounding application needs to handle uncertain extraction results, storage failures, duplicate warnings, and recovery just as carefully.&lt;/p&gt;

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

&lt;p&gt;Receipts can reveal more than a purchase. They can contain names, addresses, transaction details, and information about the products someone owns.&lt;/p&gt;

&lt;p&gt;That made local inference an important design choice for this project.&lt;/p&gt;

&lt;p&gt;Because Gemma runs locally through Ollama, the local AI workflow can process receipt images on the user's own computer rather than requiring a hosted AI inference API. The natural-language search also uses local inference, with receipt metadata sent to the local service instead of the original images.&lt;/p&gt;

&lt;p&gt;Once the model has been downloaded and installed, local inference can work without an internet connection, provided Ollama and the application are running correctly.&lt;/p&gt;

&lt;p&gt;This approach also avoids per-request charges from a hosted AI API, although it still uses the computer's hardware and electricity.&lt;/p&gt;

&lt;p&gt;Open-weight models give developers the flexibility to run models in their own environment and build around them. That makes experimentation possible without committing every inference request to one external service.&lt;/p&gt;

&lt;p&gt;There are trade-offs. Local inference depends on the user's available hardware, and initial installation requires downloading the model. A hosted model may be more convenient on devices that cannot run AI locally.&lt;/p&gt;

&lt;p&gt;For Receipt Raccoon, I chose the local approach because &lt;strong&gt;control over personal documents is part of the product, not just an implementation detail.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;I haven't measured a specific number of minutes saved, so I won't invent one.&lt;/p&gt;

&lt;p&gt;The intended payoff is simple: less time searching drawers, opening random files, typing purchase details manually, and trying to remember warranty dates.&lt;/p&gt;

&lt;p&gt;A family could use Receipt Raccoon to keep appliance bills together. Someone replacing a phone could find the purchase details they need. And when a warranty is about to expire, the information is already organized.&lt;/p&gt;

&lt;p&gt;The aim is to do a little organizing once and make future searches easier.&lt;/p&gt;

&lt;p&gt;That's the kind of laziness I wanted to build for: not avoiding something important, but removing the unnecessary effort around it.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Receipt Raccoon uses Gemma 3 for local receipt extraction and natural-language receipt search through Ollama.&lt;/p&gt;




&lt;p&gt;Building this project reinforced something I appreciate about open innovation: useful AI doesn't always need to live behind a remote API. Sometimes the best solution is a model running on your own machine, doing a small but genuinely useful job.&lt;/p&gt;

&lt;p&gt;Thanks for checking out Receipt Raccoon! 🦝&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Highlight Generator: Turn Long Event Videos into Short Highlight Reels with Local AI</title>
      <dc:creator>Aayush Sharma</dc:creator>
      <pubDate>Sun, 18 Oct 2026 18:24:48 +0000</pubDate>
      <link>https://dev.to/aayush_sharma_2604/highlight-generator-turn-long-event-videos-into-short-highlight-reels-with-local-ai-2opf</link>
      <guid>https://dev.to/aayush_sharma_2604/highlight-generator-turn-long-event-videos-into-short-highlight-reels-with-local-ai-2opf</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;Highlight Generator turns a long event video into a short highlight reel, right on your own computer.&lt;/p&gt;

&lt;p&gt;Think about the videos you record at a college fest, a trip, a birthday, or a wedding. The footage can be hours long, nobody wants to sit through all of it, and editing it manually takes time. Highlight Generator helps you turn that footage into a short reel with transitions, effects, and music.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upload:&lt;/strong&gt; Add a long video.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find:&lt;/strong&gt; The app analyzes audio levels and visual motion to identify candidate moments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart pick:&lt;/strong&gt; A local AI model reviews a frame from each candidate, writes a caption, rates how exciting the moment looks, and helps select the best clips.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct:&lt;/strong&gt; The AI acts as a director, choosing from predefined effects, transitions, music moods, and sound modes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Music:&lt;/strong&gt; Use a built-in track or upload your own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export:&lt;/strong&gt; Download the finished reel as an MP4.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built it for people who film events but don’t necessarily have the time or skills to edit them, including college fest media teams, small event videographers, and families. I haven’t yet validated whether people would pay for it, so finding out whether this solves a problem people are willing to pay to fix is still part of the journey.&lt;/p&gt;

&lt;p&gt;The AI only sees one frame from each candidate moment and doesn’t hear the video, so its captions and excitement scores are suggestions rather than definitive judgments. You can adjust the music, sound mode, and reel length before exporting.&lt;/p&gt;

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

&lt;p&gt;Watch the demo to see how Highlight Generator works, from uploading an event video to selecting highlights, choosing music and sound settings, and exporting the final MP4 reel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Aayush264/highlight-generator/releases/tag/demo-v1" rel="noopener noreferrer"&gt;Download the Highlight Generator Demo Video (MP4)&lt;/a&gt;&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%2F8lx5d7j8l3ynchs7scu0.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%2F8lx5d7j8l3ynchs7scu0.png" alt="Highlight Generator dashboard" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is no live web link, and that is intentional. Highlight Generator runs on your own computer, so your footage doesn't need to be uploaded to a remote server for AI processing. The repository includes instructions to run it yourself.&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Aayush264" rel="noopener noreferrer"&gt;
        Aayush264
      &lt;/a&gt; / &lt;a href="https://github.com/Aayush264/highlight-generator" rel="noopener noreferrer"&gt;
        highlight-generator
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🎬 Highlight Generator&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Turn a long video into a short highlight reel, privately, on your own computer.&lt;/p&gt;
&lt;p&gt;Upload footage from a party, trip, college fest or wedding. The app finds the best moments, a local AI model reviews them, and your reel is cut and mixed with music. Nothing is uploaded to any server, and nothing costs money per video.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Aayush264/highlight-generator/docs/screenshot.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FAayush264%2Fhighlight-generator%2FHEAD%2Fdocs%2Fscreenshot.png" alt="Highlight Generator dashboard"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Built for the Hacktoberfest Open-Source AI Challenge, Week 2: Side Hustle.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo / How to Use&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Watch the demo to see Highlight Generator in action.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/Aayush264/highlight-generator/releases/download/demo-v1/demo.video.mp4" rel="noopener noreferrer"&gt;Download the Highlight Generator Demo&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How it works&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Find.&lt;/strong&gt; FFmpeg and some simple maths score every second of the video by loudness and motion, then pick the strongest 6-second moments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review.&lt;/strong&gt; A local vision model (Gemma 3 4B, through Ollama) looks at one frame from each moment, writes a short caption and rates how exciting it is. &lt;em&gt;Smart pick&lt;/em&gt; uses these ratings to choose better…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Aayush264/highlight-generator" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;I built Highlight Generator with Node.js, Express, plain HTML, CSS and JavaScript, FFmpeg, and Gemma 3 4B running locally through Ollama.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FFmpeg does the heavy work.&lt;/strong&gt; It measures audio levels per second, compares frames to estimate visual motion, cuts clips, applies effects and transitions, and mixes the audio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma does the judging.&lt;/strong&gt; For each candidate moment, the model receives a frame and returns JSON containing a short caption, an excitement score from 1 to 10, and a reason for its score.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI is the director; FFmpeg is the crew.&lt;/strong&gt; Instead of letting a small model generate arbitrary video-editing commands, I restrict its creative choices to predefined menus: 6 effects, 8 transitions, 5 music moods, and 3 sound modes. The server validates the model’s responses and replaces invalid choices with safe defaults.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart pick narrows things down.&lt;/strong&gt; It finds twice as many candidates as the reel needs, asks Gemma to rate them, removes lower-scoring moments, and keeps the best-scoring clips.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The built-in music is original.&lt;/strong&gt; I wrote a script to generate 10 simple original tracks, with 2 for each mood. Users can also upload their own music.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One issue I encountered was uneven volume between clips taken from different parts of a source video. It made the reel sound inconsistent, so I added loudness leveling for individual clips and an option to mix music with the original sound.&lt;/p&gt;

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

&lt;p&gt;Event footage can be deeply personal. Weddings, family gatherings, trips, and college events aren’t necessarily the kind of videos people want to upload to a service they don’t control.&lt;/p&gt;

&lt;p&gt;Using an open-weight model locally gives Highlight Generator a few important advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Video processing and AI inference can happen on the user’s own computer, without sending footage to a remote AI API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No per-video AI API fee:&lt;/strong&gt; There’s no cloud inference charge for every video processed, although the app still uses the computer’s resources and electricity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; The model can be changed to another compatible vision model that supports the expected input and output format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline use:&lt;/strong&gt; After the required dependencies and model have been installed, the processing workflow can run without an internet connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I haven’t benchmarked Highlight Generator against a paid cloud API, so I can’t honestly claim that local inference is faster, cheaper overall, or more accurate in a measured comparison.&lt;/p&gt;

&lt;p&gt;What I can say is that local inference gives users more control over where their footage is processed and avoids a per-video model API bill. The trade-off is that processing speed depends on the user’s hardware, and a small model’s excitement scores can be rough. Testing it on more footage and measuring performance on different machines are still on my to-do list.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Highlight Generator uses Gemma 3 4B locally through Ollama to caption and score candidate moments and help guide the creative direction of the final reel.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;I’d like to add subtitles using a local speech model, a vertical video format for Reels and Shorts, and test Highlight Generator with more real event footage.&lt;/p&gt;

&lt;p&gt;I also want to learn whether the people this tool is built for would use it regularly and whether the time it saves is valuable enough that they would pay for it.&lt;/p&gt;

&lt;p&gt;Step back from editing. Let the best moments find you. 🎬&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Lifeform 🌿 — Turning Outdoor Exploration Into a Nature Discovery Game</title>
      <dc:creator>Aayush Sharma</dc:creator>
      <pubDate>Sun, 11 Oct 2026 09:08:44 +0000</pubDate>
      <link>https://dev.to/aayush_sharma_2604/lifeform-turning-outdoor-exploration-into-a-nature-discovery-game-5a0c</link>
      <guid>https://dev.to/aayush_sharma_2604/lifeform-turning-outdoor-exploration-into-a-nature-discovery-game-5a0c</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;
  
  
  🌿 Lifeform — Explore. Discover. Build.
&lt;/h2&gt;

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

&lt;p&gt;Lifeform is a nature-exploration game that encourages people to step outside, discover living things, and build a digital collection of their discoveries.&lt;/p&gt;

&lt;p&gt;The idea is simple: instead of spending more time scrolling, go outside and notice the living world around you.&lt;/p&gt;

&lt;p&gt;With Lifeform, you can photograph a plant, bird, insect, fungus, or other animal and ask an AI naturalist to identify it.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore:&lt;/strong&gt; Head outdoors and find something interesting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discover:&lt;/strong&gt; Upload a photo and receive an AI-generated identification, confidence level, and description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collect:&lt;/strong&gt; Add new discoveries to your collection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build:&lt;/strong&gt; Earn XP, level up, complete daily missions, and track your progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reflect:&lt;/strong&gt; Record observations in your Field Journal and build exploration streaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lifeform combines nature discovery with game mechanics to make outdoor exploration feel rewarding.&lt;/p&gt;

&lt;p&gt;I'm building this as a learning project to explore how open-weight AI can support a real-world activity rather than simply keep people on a screen.&lt;/p&gt;

&lt;p&gt;AI identifications can be wrong, so results should be treated as suggestions rather than scientific confirmation.&lt;/p&gt;

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

&lt;p&gt;🌐 &lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://lifeform.onrender.com" rel="noopener noreferrer"&gt;https://lifeform.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The deployed app lets you try the image-scanning experience and explore the main features.&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/Aayush264/lifeform/tree/deploy" rel="noopener noreferrer"&gt;https://github.com/Aayush264/lifeform/tree/deploy&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built Lifeform using HTML, CSS, JavaScript, Node.js, Express, MongoDB, and open-weight Gemma models.&lt;/p&gt;

&lt;p&gt;The frontend provides the discovery interface, collection, missions, and Field Journal. The Express backend handles API requests and image uploads, while MongoDB Atlas stores player data.&lt;/p&gt;

&lt;p&gt;AI identification was the most interesting part of the project.&lt;/p&gt;

&lt;p&gt;During local development, I used &lt;strong&gt;Gemma 3 4B through Ollama&lt;/strong&gt;. This allowed me to experiment with image analysis on my own computer.&lt;/p&gt;

&lt;p&gt;For the hosted version, I integrated &lt;strong&gt;Gemma 4 through Google's GenAI API&lt;/strong&gt;. Since my free web-hosting instance doesn't have enough memory to run the local model itself, hosted inference made it possible to offer AI scanning in the deployed app.&lt;/p&gt;

&lt;p&gt;I deployed the web application on Render and connected it to MongoDB Atlas.&lt;/p&gt;

&lt;p&gt;Getting everything working taught me about API integration, environment variables, database authentication, network access, and debugging deployment failures.&lt;/p&gt;

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

&lt;p&gt;Open-weight AI gave me an opportunity to experiment with a vision model without having to build an AI model from scratch.&lt;/p&gt;

&lt;p&gt;Using Gemma locally through Ollama let me test prompts, learn how image analysis behaves, and build my application around the model's capabilities.&lt;/p&gt;

&lt;p&gt;For deployment, I chose hosted Gemma inference so that the public demo could run without requiring every visitor to install a local model.&lt;/p&gt;

&lt;p&gt;This taught me that open-weight models offer flexibility: developers can experiment locally, change models, and choose how to run inference based on their resources.&lt;/p&gt;

&lt;p&gt;The deployed version still requires an internet connection and uses a hosted API, so it isn't completely offline. I'd like to explore more local-first options in the future.&lt;/p&gt;

&lt;p&gt;For me, open innovation made this project possible as a learner: I could start small, build a real application around an open-weight model, and learn how to take it from local development to a working online demo.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Gemma powers Lifeform's image-identification feature, using Gemma 3 4B locally and Gemma 4 through a hosted API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of MongoDB Atlas:&lt;/strong&gt; Atlas serves as the database for player data in an application built around open-weight AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;I'd like to continue improving identification results, outdoor missions, and the discovery experience.&lt;/p&gt;

&lt;p&gt;The goal is to make the app useful for encouraging people to look more closely at the nature around them — and then put their phones away and enjoy it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step outside. Notice more. Discover something new. 🌱&lt;/strong&gt;&lt;/p&gt;

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