<?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: Aditya Mishra</title>
    <description>The latest articles on DEV Community by Aditya Mishra (@aditya_mishra_1919).</description>
    <link>https://dev.to/aditya_mishra_1919</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3824311%2F243041c0-470d-45dc-9371-318643287a92.png</url>
      <title>DEV Community: Aditya Mishra</title>
      <link>https://dev.to/aditya_mishra_1919</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditya_mishra_1919"/>
    <language>en</language>
    <item>
      <title>I Built a 1974 NASA Horror Survival Game Using AI — And It Actually Surprised Mw</title>
      <dc:creator>Aditya Mishra</dc:creator>
      <pubDate>Tue, 19 May 2026 21:49:50 +0000</pubDate>
      <link>https://dev.to/aditya_mishra_1919/i-built-a-1974-nasa-horror-survival-game-using-ai-and-it-actually-surprised-mw-212p</link>
      <guid>https://dev.to/aditya_mishra_1919/i-built-a-1974-nasa-horror-survival-game-using-ai-and-it-actually-surprised-mw-212p</guid>
      <description>&lt;p&gt;&lt;em&gt;50 crew members. 5 transmissions. Something else on the planet.&lt;/em&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  Play It First
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://app-boo0vgcv0g01.appmedo.com/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiaoda-screenshot-img.s3cdn.medo.dev%2Fpreview_screen%2Fapp-boo0vgcv0g01%2Fapp-boo0vgcv0g01_1779127202447_e7ec.png" height="600" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://app-boo0vgcv0g01.appmedo.com/" rel="noopener noreferrer" class="c-link"&gt;
            Space Survival Game
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
             Build a high-stakes, production-grade text-based survival simulation application called "LAST CALL". ### 1. APPLICATION STRUCTURE &amp;amp; PAGESThe appli
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiaoda-op-sourcecode.s3.us-west-2.amazonaws.com%2Fsource_code%2Fprojects%2Fconv-boo0vgcv0g00_1779127171003%2Ffavicon.png" width="96" height="96"&gt;
          app-boo0vgcv0g01.appmedo.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Try to get all 50 home. Then come back and read this.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is LAST CALL?
&lt;/h2&gt;

&lt;p&gt;LAST CALL is a text-based survival game set in 1974. You play as &lt;strong&gt;Lieutenant Kira Malone&lt;/strong&gt; — acting commander of the &lt;strong&gt;ARES-7&lt;/strong&gt;, stranded on a classified planet called &lt;strong&gt;Tartarus&lt;/strong&gt; somewhere between Saturn and Uranus. Your communications array has power for exactly &lt;strong&gt;5 transmissions&lt;/strong&gt; before it goes dark permanently.&lt;/p&gt;

&lt;p&gt;Earth is 1.4 billion kilometres away. No one knows you're there.&lt;/p&gt;

&lt;p&gt;Every word you type determines who lives.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Story
&lt;/h2&gt;

&lt;p&gt;In the summer of 1974, NASA launched its most secret mission.&lt;/p&gt;

&lt;p&gt;The world was told ARES-7 was an unmanned atmospheric probe. The truth was carried by one man — Mission Commander Harold Voss — in a sealed envelope. The real destination was Tartarus, an undocumented rocky body hidden from all public star charts. The reason it was classified: Tartarus was broadcasting a signal. Repeating. Structured. Deliberate.&lt;/p&gt;

&lt;p&gt;50 crew members were told it was a geological survey. None of them knew the truth.&lt;/p&gt;

&lt;p&gt;They landed on Day 61. The signal stopped on Day 63.&lt;/p&gt;

&lt;p&gt;By Day 66, Commander Voss was unconscious. His sealed orders — missing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today is Day 67. You are all that is left.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;The game runs across five screens:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup&lt;/strong&gt; — Your ship name is randomly generated every run. No two games start the same.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Story&lt;/strong&gt; — A classified NASA dossier establishes who you are, why ARES-7 is on Tartarus, and why no one on Earth is coming unless you reach them first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission Protocol&lt;/strong&gt; — Five rules before you begin. The most important one:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Signal must reach 75% by your final transmission or rescue never locks your position.&lt;br&gt;
Signal below 30% — Tartarus keeps you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Ship Dossier&lt;/strong&gt; — Your crew manifest, ship systems reference, last known position. Study it. The AI reads your vocabulary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5 Transmissions&lt;/strong&gt; — The entire game. Everything you built toward comes down to what you type here.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the AI Actually Does
&lt;/h2&gt;

&lt;p&gt;This is the part I am most proud of.&lt;/p&gt;

&lt;p&gt;Most AI games use the model to generate story. LAST CALL uses it to &lt;strong&gt;read you&lt;/strong&gt;. Every transmission you send is evaluated across four dimensions simultaneously:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;What It Detects&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Priority&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Did you focus on the ship, the crew, or the signal?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rescue action, defensive move, or sacrifice?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tone&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Calm and decisive, or panicked and uncertain?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consistency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Does this match what you said in previous transmissions?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Calm, consistent, signal-focused commands compound across all five rounds. One panicked message in round 3 can undo two good rounds before it. Players feel genuinely sharper after a few runs — not because they learned a system, but because they learned to stay composed under pressure.&lt;/p&gt;

&lt;p&gt;That is not a game mechanic. That is a real skill.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Ship Systems Reference
&lt;/h2&gt;

&lt;p&gt;Not everyone knows 1970s NASA ship terminology. So I built a collapsible &lt;strong&gt;Ship Systems Reference&lt;/strong&gt; panel directly into the transmission screen — always one click away, never in the way.&lt;/p&gt;

&lt;p&gt;It tells you what exists on the ship. The reactor core, the signal amplifier, the atmospheric scrubbers, the emergency pods. It gives you the vocabulary to write precise, decisive commands.&lt;/p&gt;

&lt;p&gt;It does not tell you what to do. That part is still on you.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Voyage Report
&lt;/h2&gt;

&lt;p&gt;Every run ends with a full mission debrief — every decision replayed, every consequence revealed, and a &lt;strong&gt;Survival Archetype&lt;/strong&gt; assigned based on your behaviour pattern across all five transmissions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Heroic Captain&lt;/strong&gt; — calm tone maintained throughout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cold Rationalist&lt;/strong&gt; — ship preservation over crew&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Martyr Commander&lt;/strong&gt; — consistent sacrifice choices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Humanitarian Leader&lt;/strong&gt; — crew safety above all&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strategic Survivor&lt;/strong&gt; — signal-focused from start to finish&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive Navigator&lt;/strong&gt; — inconsistent but resourceful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The report is designed to be screenshotted. What archetype did you get?&lt;/p&gt;




&lt;h2&gt;
  
  
  The Detail I Am Most Proud Of
&lt;/h2&gt;

&lt;p&gt;On transmission 3, if the crisis takes you to the Tartarus surface — look at the far right of the darkness.&lt;/p&gt;

&lt;p&gt;That is all I will say.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned Building This
&lt;/h2&gt;

&lt;p&gt;MeDo handled this kind of project remarkably well. The multi-turn conversation system carries full context across every transmission — so the AI can reference a choice you made in round 2 when generating round 4's crisis, without any extra engineering from my side. The game feels alive because the AI genuinely remembers what you did.&lt;/p&gt;

&lt;p&gt;The hardest part was not the logic. It was the &lt;strong&gt;tone&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Getting the CRT terminal aesthetic right. Making the story feel like a real 1974 NASA document. Writing crisis transmissions that feel urgent without feeling cheap. The game needed to earn its tension, not manufacture it.&lt;/p&gt;

&lt;p&gt;I think it does.&lt;/p&gt;




&lt;h2&gt;
  
  
  Play LAST CALL
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://app-boo0vgcv0g01.appmedo.com/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiaoda-screenshot-img.s3cdn.medo.dev%2Fpreview_screen%2Fapp-boo0vgcv0g01%2Fapp-boo0vgcv0g01_1779127202447_e7ec.png" height="600" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://app-boo0vgcv0g01.appmedo.com/" rel="noopener noreferrer" class="c-link"&gt;
            Space Survival Game
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
             Build a high-stakes, production-grade text-based survival simulation application called "LAST CALL". ### 1. APPLICATION STRUCTURE &amp;amp; PAGESThe appli
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiaoda-op-sourcecode.s3.us-west-2.amazonaws.com%2Fsource_code%2Fprojects%2Fconv-boo0vgcv0g00_1779127171003%2Ffavicon.png" width="96" height="96"&gt;
          app-boo0vgcv0g01.appmedo.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Try to survive. Try to get all 50 home.&lt;/p&gt;

&lt;p&gt;And whatever you do — do not let the signal drop below 30%.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Build with MeDo Hackathon 2026&lt;/em&gt;&lt;br&gt;
&lt;em&gt;#BuiltWithMeDo&lt;/em&gt;&lt;/p&gt;

</description>
      <category>medo</category>
      <category>ai</category>
      <category>gamedev</category>
      <category>builtwithmedo</category>
    </item>
    <item>
      <title>Building Iris: A Real-Time Spatial Awareness Agent with the Gemini Live API</title>
      <dc:creator>Aditya Mishra</dc:creator>
      <pubDate>Sun, 15 Mar 2026 17:12:08 +0000</pubDate>
      <link>https://dev.to/aditya_mishra_1919/building-iris-a-real-time-spatial-awareness-agent-with-the-gemini-live-api-1869</link>
      <guid>https://dev.to/aditya_mishra_1919/building-iris-a-real-time-spatial-awareness-agent-with-the-gemini-live-api-1869</guid>
      <description>&lt;p&gt;&lt;em&gt;Created for the &lt;a href="https://geminiliveagentchallenge.devpost.com/" rel="noopener noreferrer"&gt;Gemini Live Agent Challenge&lt;/a&gt; #GeminiLiveAgentChallenge&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Iris?
&lt;/h2&gt;

&lt;p&gt;Iris is a real-time spatial awareness agent that sees through your camera and talks to you. Point your device at anything — a room, a street, a workspace — and Iris describes what it sees, warns you about obstacles, reads signs, and identifies people and their gestures. All through voice, hands-free.&lt;/p&gt;

&lt;p&gt;It's not just an accessibility tool. Iris is built for anyone who needs an extra pair of eyes — a warehouse worker navigating a crowded floor, a cyclist wanting awareness of their blind spot, a remote worker showing their setup to a colleague, or a visually impaired person walking through an unfamiliar building. The camera becomes a conversation partner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;We interact with AI through text boxes. We type, we wait, we read. But spatial awareness doesn't work in turns — the real world moves continuously, and the information you need is often urgent. "There's a step ahead of you" is useless five seconds late.&lt;/p&gt;

&lt;p&gt;Iris breaks the text-box paradigm. It watches continuously and speaks up when something changes. No wake words, no buttons, no screens to look at. The interaction model is closer to having a co-pilot than using a chatbot.&lt;/p&gt;

&lt;p&gt;For visually impaired users, this could mean navigating a grocery store independently. For a delivery driver, it could mean hands-free package verification. For a security professional, it could mean real-time monitoring narration. The same core capability serves fundamentally different use cases.&lt;/p&gt;

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

&lt;p&gt;Iris runs on the &lt;strong&gt;Gemini Live API&lt;/strong&gt; using the &lt;code&gt;@google/genai&lt;/code&gt; SDK over WebSocket. The frontend is React with TypeScript. Here's the pipeline:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Camera → Canvas → Base64 JPEG → Gemini Live API → Audio Response → Speaker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We capture webcam frames at &lt;strong&gt;3fps&lt;/strong&gt;, downscale them to 50% resolution on a hidden canvas, encode as JPEG, and stream them via &lt;code&gt;sendRealtimeInput()&lt;/code&gt;. Audio comes back as PCM and plays through the Web Audio API.&lt;/p&gt;

&lt;p&gt;The interesting part is &lt;strong&gt;scene change detection&lt;/strong&gt;. The Gemini Live API is reactive — the model only speaks when you speak to it. Video frames are passive context. So we built a client-side pixel-diff algorithm: a second hidden canvas at 80x45 pixels compares grayscale values between consecutive frames. When the mean absolute difference crosses a threshold, we send a text nudge to the model: &lt;em&gt;"The scene just changed. Describe what you see."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was harder than it sounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenges
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hallucination was our biggest enemy.&lt;/strong&gt; Early versions would confidently describe objects that weren't there. We discovered that &lt;em&gt;how&lt;/em&gt; you send data matters enormously — text messages sent via &lt;code&gt;sendClientContent()&lt;/code&gt; go through a different channel than video frames sent via &lt;code&gt;sendRealtimeInput()&lt;/code&gt;. The model would receive a text question without visual context and just guess. Our fix: capture the current frame and attach it inline with every text message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The scene detection threshold is a balancing act.&lt;/strong&gt; Too sensitive (threshold 12) and the model gets triggered by camera noise, leading to constant hallucinated descriptions. Too conservative (threshold 30) and it misses real changes. We settled on 20 with an 8-second cooldown — not perfect, but stable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Say nothing if nothing changed" doesn't work with audio output.&lt;/strong&gt; We tried periodic polling where the model should stay silent when the scene was static. But with &lt;code&gt;responseModalities: [AUDIO]&lt;/code&gt;, the model &lt;em&gt;must&lt;/em&gt; produce audio for every turn. It would fabricate descriptions just to have something to say. The pixel-diff approach solved this by only asking when something genuinely changed.&lt;/p&gt;

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

&lt;p&gt;Iris is functional but far from finished. The vision model still makes mistakes — it might call a bookshelf a window or miss a person standing still. These are limitations of the underlying model, not the architecture. As Gemini's vision improves, Iris improves automatically.&lt;/p&gt;

&lt;p&gt;We're also exploring multilingual support — Iris already supports 10 languages through a simple dropdown that adjusts the system prompt. No translation API needed; Gemini handles it natively.&lt;/p&gt;

&lt;p&gt;The code is open source: &lt;a href="https://github.com/Aditya1234M/Spatial-Awareness-Agent" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with the Gemini Live API, Google GenAI SDK, and React. #GeminiLiveAgentChallenge&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>ai</category>
      <category>hackathon</category>
      <category>google</category>
    </item>
  </channel>
</rss>
