<?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: Shah_Dev</title>
    <description>The latest articles on DEV Community by Shah_Dev (@shah_dev).</description>
    <link>https://dev.to/shah_dev</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%2F4151803%2Fe61a9ab5-64f6-48a5-90ce-4ebf52d808eb.jpg</url>
      <title>DEV Community: Shah_Dev</title>
      <link>https://dev.to/shah_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shah_dev"/>
    <language>en</language>
    <item>
      <title>Echoes of Earth 🌿: Exploring the Sounds of Nature with Open-Source AI</title>
      <dc:creator>Shah_Dev</dc:creator>
      <pubDate>Mon, 12 Oct 2026 11:46:47 +0000</pubDate>
      <link>https://dev.to/shah_dev/echoes-of-earth-exploring-the-sounds-of-nature-with-open-source-ai-5fen</link>
      <guid>https://dev.to/shah_dev/echoes-of-earth-exploring-the-sounds-of-nature-with-open-source-ai-5fen</guid>
      <description>&lt;h1&gt;
  
  
  Echoes of Earth 🌿: Turning Everyday Sounds into Outdoor Exploration with Open-Source AI
&lt;/h1&gt;

&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;What if your phone helped you pay more attention to the world instead of keeping you glued to the screen?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the idea behind &lt;strong&gt;Echoes of Earth&lt;/strong&gt; — an open-source AI-powered environmental sound exploration tool that encourages people to step outside, listen to their surroundings, and discover the sounds they might otherwise overlook.&lt;/p&gt;

&lt;p&gt;Think about sitting in a garden, walking along a quiet trail, or spending time outdoors. You might hear birds calling, rain falling, footsteps, or the sound of a passing vehicle. We often hear these sounds without really paying attention to them.&lt;/p&gt;

&lt;p&gt;Echoes of Earth turns that everyday experience into an opportunity to explore.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;🌳 &lt;strong&gt;Step outside.&lt;/strong&gt; Find a place where you can listen to the environment around you.&lt;/li&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Record or upload a sound.&lt;/strong&gt; Capture a short environmental audio clip using the browser's microphone or upload an existing audio file.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Let AI analyze it.&lt;/strong&gt; YAMNet identifies potential sound categories, while the Evidence Engine organizes detections into timestamped events.&lt;/li&gt;
&lt;li&gt;🔎 &lt;strong&gt;Explore the soundscape.&lt;/strong&gt; Review detected labels, approximate timestamps, and model scores to understand what the audio may contain.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The application currently supports environmental sound analysis through a working web interface and FastAPI backend.&lt;/p&gt;

&lt;p&gt;The goal isn't to replace the experience of being outdoors with another screen. It's to make the screen useful for a short moment, so curiosity can take over and the real world becomes the main experience.&lt;/p&gt;

&lt;p&gt;Echoes of Earth is an early-stage MVP. Its detections can be incorrect or overlap, and its model scores are not calibrated probabilities. The results should be treated as AI-generated evidence, not absolute truth.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/Codie-ds/Echoes-Of-Earth" rel="noopener noreferrer"&gt;Echoes of Earth on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The current version runs locally. To try it, follow the setup instructions in the repository's README, start the FastAPI application, and open the local web interface in your browser.&lt;/p&gt;

&lt;p&gt;A short demo should show the complete workflow: recording a sound, previewing it, submitting it for analysis, and exploring the resulting sound labels and timestamps.&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/Codie-ds/Echoes-Of-Earth" rel="noopener noreferrer"&gt;https://github.com/Codie-ds/Echoes-Of-Earth&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built around a small, modular architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;backend/audio_analyzer.py&lt;/code&gt;&lt;/strong&gt; — Loads and runs YAMNet for environmental sound classification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;backend/evidence_engine.py&lt;/code&gt;&lt;/strong&gt; — Converts frame-level predictions into timestamped sound events using configurable score thresholds and persistence rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;backend/main.py&lt;/code&gt;&lt;/strong&gt; — Provides FastAPI endpoints for health checks and audio analysis, including upload validation and temporary-file cleanup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;backend/static/index.html&lt;/code&gt;&lt;/strong&gt; — Provides the browser interface for recording, uploading, previewing, and analyzing audio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;backend/tests/&lt;/code&gt;&lt;/strong&gt; — Contains automated tests for event detection, API behavior, validation, cleanup, and reliability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reported test suite has &lt;strong&gt;21 passing tests&lt;/strong&gt;, including tests that exercise real YAMNet inference.&lt;/p&gt;

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

&lt;p&gt;I built Echoes of Earth incrementally, focusing on making the core experience work before adding more complicated AI features.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Environmental sound classification with YAMNet
&lt;/h3&gt;

&lt;p&gt;I used &lt;strong&gt;YAMNet&lt;/strong&gt;, a pretrained sound-classification model available through TensorFlow Hub, to analyze environmental audio.&lt;/p&gt;

&lt;p&gt;Rather than training a new model from scratch, I started with a pretrained model and tested it against six short audio clips from the ESC-50 environmental sound dataset.&lt;/p&gt;

&lt;p&gt;This helped establish that the model could identify potentially relevant categories such as birds, rain, footsteps, and vehicles, while also revealing that some predictions are ambiguous.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. An Evidence Engine for timestamped detections
&lt;/h3&gt;

&lt;p&gt;A list of sound labels alone isn't enough to help someone explore an audio clip.&lt;/p&gt;

&lt;p&gt;I built an Evidence Engine that processes frame-level predictions and groups sustained detections into events with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sound labels and broader categories&lt;/li&gt;
&lt;li&gt;Approximate start and end timestamps&lt;/li&gt;
&lt;li&gt;Peak and mean model scores&lt;/li&gt;
&lt;li&gt;Configurable score thresholds and persistence requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the output more useful than a simple list of the top predicted classes.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. FastAPI and a browser interface
&lt;/h3&gt;

&lt;p&gt;I used &lt;strong&gt;FastAPI&lt;/strong&gt; to expose the audio-analysis functionality through an API and built a lightweight HTML, CSS, and JavaScript frontend.&lt;/p&gt;

&lt;p&gt;The interface supports audio uploads and in-browser recording. Browser recordings are encoded as PCM WAV, allowing the application to analyze recordings without requiring FFmpeg for that workflow.&lt;/p&gt;

&lt;p&gt;The backend also validates uploads, limits audio duration, handles decoding errors, and cleans up temporary audio files.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Privacy and reliability
&lt;/h3&gt;

&lt;p&gt;I spent additional time hardening the application rather than rushing into more features.&lt;/p&gt;

&lt;p&gt;The latest implementation includes bounded upload handling, filename sanitization, generic client-facing error messages, temporary-file cleanup, and startup cleanup for leftover files.&lt;/p&gt;

&lt;p&gt;The reported tests cover both normal operation and failure scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; YAMNet&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ML framework:&lt;/strong&gt; TensorFlow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio processing:&lt;/strong&gt; librosa and SoundFile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python and FastAPI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML, CSS, and JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; pytest and FastAPI TestClient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dataset for initial experiments:&lt;/strong&gt; ESC-50&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I deliberately kept the architecture simple. At this stage, I haven't added a database, an LLM-based explanation layer, or a cloud deployment.&lt;/p&gt;

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

&lt;p&gt;For a project like Echoes of Earth, open innovation is more than a way to reduce development costs. It gives us more control over how AI interacts with people's data and how the system can evolve.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy and control
&lt;/h3&gt;

&lt;p&gt;Once the model assets are downloaded and cached, the current inference workflow can run locally on the machine. Audio recordings don't need to be sent to a third-party AI API for classification.&lt;/p&gt;

&lt;p&gt;The initial model download does require an internet connection, and some external audio formats may require additional decoding software. The current implementation is therefore not entirely offline from the first launch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transparency and experimentation
&lt;/h3&gt;

&lt;p&gt;Using an accessible pretrained model made it possible to experiment with sound classification without building an entire training pipeline.&lt;/p&gt;

&lt;p&gt;The Evidence Engine also lets me inspect how thresholds and persistence rules influence which detections become events. That makes it easier to test the behavior and understand its limitations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Room to evolve
&lt;/h3&gt;

&lt;p&gt;Because the model, analysis logic, API, and interface are separate components, the project can evolve without requiring a complete rewrite.&lt;/p&gt;

&lt;p&gt;Future work could explore local language models to explain detected sound events, better evaluation against labeled audio, and improvements to the outdoor discovery experience.&lt;/p&gt;

&lt;p&gt;Most importantly, an open approach makes it easier for other developers to inspect the implementation, reproduce the experiments, and contribute improvements.&lt;/p&gt;

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

&lt;p&gt;The implementation involved iterative coding, debugging, testing, and code review with an AI coding agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevRelay session:&lt;/strong&gt; [Add your saved DevRelay agent-session link here, if available.]&lt;/p&gt;

&lt;p&gt;The session is optional, but sharing it would help readers understand the development process and how the project evolved through testing and refinement.&lt;/p&gt;

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

&lt;p&gt;This submission is intended for the overall Hacktoberfest Open-Source AI Challenge.&lt;/p&gt;

&lt;p&gt;I am not claiming a partner-specific prize category in this version because the current implementation does not meaningfully integrate a listed partner's technology. If a qualifying partner integration is added and verified, the relevant category can be listed accurately.&lt;/p&gt;

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

&lt;p&gt;The current milestone is a working MVP with a tested audio-analysis pipeline.&lt;/p&gt;

&lt;p&gt;The next steps are to improve the quality of the detections, evaluate the system more systematically, and explore whether an optional local AI model can generate useful explanations grounded in the actual detected events.&lt;/p&gt;

&lt;p&gt;But the larger goal remains simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use AI to make the world outside more interesting, not to give us another reason to stare at a screen.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts: What would make you curious enough to stop, listen, and explore the sounds around you?&lt;/p&gt;

&lt;p&gt;🌿 &lt;strong&gt;Explore the code:&lt;/strong&gt; &lt;a href="https://github.com/Codie-ds/Echoes-Of-Earth" rel="noopener noreferrer"&gt;Echoes of Earth on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge #hacktoberfest #opensource #machinelearning
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built FriendOS: An Adaptive AI Learning Companion for a Friend</title>
      <dc:creator>Shah_Dev</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:16:41 +0000</pubDate>
      <link>https://dev.to/shah_dev/i-built-friendos-an-adaptive-ai-learning-companion-for-a-friend-55f8</link>
      <guid>https://dev.to/shah_dev/i-built-friendos-an-adaptive-ai-learning-companion-for-a-friend-55f8</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  FriendOS — An AI That Learns How You Learn
&lt;/h1&gt;

&lt;p&gt;Most learning apps ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What do you want to learn?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wanted to build something that asks a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How do you actually learn?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built &lt;strong&gt;FriendOS&lt;/strong&gt;, an adaptive AI learning companion for my friend.&lt;/p&gt;

&lt;p&gt;Instead of simply generating explanations and questions, FriendOS builds a learning profile from what the learner actually does inside the application and uses that evidence to decide what should happen next.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;FriendOS&lt;/strong&gt; is an AI-powered adaptive learning companion.&lt;/p&gt;

&lt;p&gt;A learner starts by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Their name&lt;/li&gt;
&lt;li&gt;Their learning goal&lt;/li&gt;
&lt;li&gt;Topics they already know&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They can then upload their own learning material, such as a PDF.&lt;/p&gt;

&lt;p&gt;FriendOS analyzes the material and creates a learning structure from it.&lt;/p&gt;

&lt;p&gt;The learner then takes a diagnostic assessment, practices questions, and interacts with the system.&lt;/p&gt;

&lt;p&gt;The important part is what happens next.&lt;/p&gt;

&lt;p&gt;FriendOS observes measurable learning behavior such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correct and incorrect answers&lt;/li&gt;
&lt;li&gt;Number of attempts&lt;/li&gt;
&lt;li&gt;Time spent answering&lt;/li&gt;
&lt;li&gt;Hints requested&lt;/li&gt;
&lt;li&gt;Questions skipped&lt;/li&gt;
&lt;li&gt;Topic performance&lt;/li&gt;
&lt;li&gt;Difficulty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It then uses this evidence to adapt the next learning recommendation.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;A learner who is struggling with a topic, taking longer to answer, and repeatedly requesting hints may receive:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Review Concept&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While a learner who is consistently answering correctly without hints may receive:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Move to Next Topic&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't just teach the learner. Learn how the learner is learning.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Loop
&lt;/h2&gt;

&lt;p&gt;FriendOS follows this loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plan → Act → Observe → Learn → Adapt&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Plan
&lt;/h3&gt;

&lt;p&gt;The learner provides their goal and learning material.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Act
&lt;/h3&gt;

&lt;p&gt;They answer questions and practice inside FriendOS.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Observe
&lt;/h3&gt;

&lt;p&gt;The system records measurable behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Learn
&lt;/h3&gt;

&lt;p&gt;The system updates the learner's skill and behavior profile.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Adapt
&lt;/h3&gt;

&lt;p&gt;The AI recommends the next learning action.&lt;/p&gt;

&lt;p&gt;This creates a continuous feedback loop instead of a static question generator.&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://friend-os-rho.vercel.app" rel="noopener noreferrer"&gt;https://friend-os-rho.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try the complete flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a learner profile&lt;/li&gt;
&lt;li&gt;Upload learning material&lt;/li&gt;
&lt;li&gt;Take the diagnostic&lt;/li&gt;
&lt;li&gt;Practice questions&lt;/li&gt;
&lt;li&gt;Submit answers&lt;/li&gt;
&lt;li&gt;See the adaptive recommendation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The backend is deployed separately and communicates with the frontend through the API.&lt;/p&gt;




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

&lt;p&gt;The complete project is open source:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Codie-ds/FriendOS" rel="noopener noreferrer"&gt;https://github.com/Codie-ds/FriendOS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js / React frontend&lt;/li&gt;
&lt;li&gt;FastAPI backend&lt;/li&gt;
&lt;li&gt;MongoDB Atlas database&lt;/li&gt;
&lt;li&gt;Gemma-powered AI services&lt;/li&gt;
&lt;li&gt;PDF learning-material processing&lt;/li&gt;
&lt;li&gt;Diagnostic assessment&lt;/li&gt;
&lt;li&gt;Behavior tracking&lt;/li&gt;
&lt;li&gt;Adaptive recommendation engine&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Pydantic&lt;/li&gt;
&lt;li&gt;PyMuPDF&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Database
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB Atlas&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI
&lt;/h3&gt;

&lt;p&gt;The core AI model is &lt;strong&gt;Gemma&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Gemma is used for tasks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extracting learning topics from uploaded material&lt;/li&gt;
&lt;li&gt;Generating diagnostic questions&lt;/li&gt;
&lt;li&gt;Generating adaptive learning recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, FriendOS does &lt;strong&gt;not&lt;/strong&gt; blindly ask the LLM to calculate everything.&lt;/p&gt;

&lt;p&gt;Deterministic calculations such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Attempts&lt;/li&gt;
&lt;li&gt;Average response time&lt;/li&gt;
&lt;li&gt;Hint count&lt;/li&gt;
&lt;li&gt;Skip count&lt;/li&gt;
&lt;li&gt;Topic performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;are calculated by Python.&lt;/p&gt;

&lt;p&gt;Gemma then receives this structured evidence and makes the higher-level learning recommendation.&lt;/p&gt;

&lt;p&gt;This separation makes the system more predictable and prevents the AI from inventing behavioral evidence.&lt;/p&gt;




&lt;h2&gt;
  
  
  From PDF to Adaptive Learning
&lt;/h2&gt;

&lt;p&gt;The complete pipeline looks like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topic Extraction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diagnostic Questions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initial Skill Profile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Session&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behavior Events&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behavior + Skill Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma Recommendation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next Learning Action&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This means the PDF tells FriendOS &lt;strong&gt;what should be learned&lt;/strong&gt;, while the learner's actual interaction tells FriendOS &lt;strong&gt;how the learner is performing&lt;/strong&gt;.&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 build the core intelligence of FriendOS without treating AI as a black box.&lt;/p&gt;

&lt;p&gt;Using Gemma allowed me to build an AI layer that I could integrate directly into my own application architecture.&lt;/p&gt;

&lt;p&gt;More importantly, the project combines open AI technology with transparent application logic.&lt;/p&gt;

&lt;p&gt;The system doesn't simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The AI thinks you are weak at Arrays."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead, it can ground the recommendation in observable evidence such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low accuracy&lt;/li&gt;
&lt;li&gt;Multiple attempts&lt;/li&gt;
&lt;li&gt;Frequent hints&lt;/li&gt;
&lt;li&gt;Longer response times&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That makes the adaptation easier to understand and reason about.&lt;/p&gt;

&lt;p&gt;Open innovation also allowed me to combine different open technologies into one system rather than depending on a single closed platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Makes FriendOS Different?
&lt;/h2&gt;

&lt;p&gt;A lot of AI learning tools focus on generating content.&lt;/p&gt;

&lt;p&gt;FriendOS focuses on the &lt;strong&gt;learning loop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It doesn't just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What answer did the student give?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It also asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What happened while they were learning?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The goal is to eventually make the system increasingly personalized based on real interaction rather than only a user's initial prompt.&lt;/p&gt;




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

&lt;p&gt;I used AI coding agents during the development of FriendOS for implementation, debugging, testing, and production-readiness work.&lt;/p&gt;

&lt;p&gt;The development process was divided into phases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend foundation&lt;/li&gt;
&lt;li&gt;Learning-material processing&lt;/li&gt;
&lt;li&gt;Diagnostic assessment&lt;/li&gt;
&lt;li&gt;Behavior tracking&lt;/li&gt;
&lt;li&gt;Adaptive learning engine&lt;/li&gt;
&lt;li&gt;Practice system&lt;/li&gt;
&lt;li&gt;Full end-to-end testing&lt;/li&gt;
&lt;li&gt;UI/UX refinement&lt;/li&gt;
&lt;li&gt;Production security audit&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also used automated testing throughout development to make sure the adaptive learning flow remained stable as new features were added.&lt;/p&gt;




&lt;h2&gt;
  
  
  Production
&lt;/h2&gt;

&lt;p&gt;FriendOS is deployed as:&lt;/p&gt;

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

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

&lt;p&gt;&lt;strong&gt;Database:&lt;/strong&gt; MongoDB Atlas&lt;/p&gt;

&lt;p&gt;The application is fully connected end-to-end, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User onboarding&lt;/li&gt;
&lt;li&gt;PDF processing&lt;/li&gt;
&lt;li&gt;AI topic extraction&lt;/li&gt;
&lt;li&gt;Diagnostic generation&lt;/li&gt;
&lt;li&gt;Skill profiling&lt;/li&gt;
&lt;li&gt;Practice&lt;/li&gt;
&lt;li&gt;Behavior tracking&lt;/li&gt;
&lt;li&gt;Adaptive recommendations&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;I'm entering FriendOS for the categories that match the technologies actually used in the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gemma&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MongoDB Atlas&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Render&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;FriendOS is currently focused on the core adaptive-learning loop.&lt;/p&gt;

&lt;p&gt;Future improvements could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Voice-based learning with ElevenLabs&lt;/li&gt;
&lt;li&gt;Better learning-resource discovery&lt;/li&gt;
&lt;li&gt;More sophisticated long-term learner modeling&lt;/li&gt;
&lt;li&gt;Additional learning formats&lt;/li&gt;
&lt;li&gt;Spaced repetition&lt;/li&gt;
&lt;li&gt;More granular topic mastery&lt;/li&gt;
&lt;li&gt;Personalized learning plans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the core idea is already working:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;FriendOS doesn't just teach you. It learns from how you learn.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;I built FriendOS because I wanted to explore a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if an AI learning companion could adapt to your actual behavior instead of treating every learner the same?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The result is FriendOS — a small experiment in building learning software around an adaptive feedback loop rather than just an AI chatbot.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;If you try the demo, I'd love to hear what you think.&lt;/p&gt;

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