{"id":108096,"date":"2026-05-02T08:03:46","date_gmt":"2026-05-02T02:33:46","guid":{"rendered":"https:\/\/www.guvi.in\/blog\/?p=108096"},"modified":"2026-05-02T08:03:48","modified_gmt":"2026-05-02T02:33:48","slug":"designing-spookseek-ar","status":"publish","type":"post","link":"https:\/\/www.guvi.in\/blog\/designing-spookseek-ar\/","title":{"rendered":"Designing Spookseek AR: One Week to Launch"},"content":{"rendered":"\n<p>Most people think building an AR mobile game needs a dev team, months of work, and expertise in 3D math or SDKs. Graphic designer Ruth Heasman just disproved that. In one week, using Replit Agent, she designed, built, and shipped Spookseek AR, a fully working iOS ghost-hunting game<\/p>\n\n\n\n<p>It leverages the phone&#8217;s camera, accelerometer, gyroscope, and haptics, landing on TestFlight for Replit&#8217;s mobile Buildathon.<\/p>\n\n\n\n<p>Heasman started clueless, with no computer science background, embracing ignorance as her edge. Replit Agent hooked her instantly: &#8220;Now I&#8217;m in.&#8221; In a year, she built 20+ apps, hit the top 0.1% of Replit builders, and earned master status, proving non-coders can ship fast.<\/p>\n\n\n\n<p>In this article, we will break down exactly how Heasman built Spookseek AR, the technical decisions she made, the problems she hit, how she used Replit Agent to work through them, and what the whole experience teaches about what is actually possible when a non-developer with strong taste and a real deadline decides to ship something ambitious.<\/p>\n\n\n\n<p><strong>TL;DR<\/strong><\/p>\n\n\n\n<ul>\n<li>Graphic designer Ruth Heasman built Spookseek AR, an iOS AR ghost-hunting game, in one week using Replit Agent; no coding background needed.<\/li>\n\n\n\n<li>She created a custom 3D system with Three.js, a virtual sphere for ghost placement, and Fresnel shaders to bypass ARKit limits in Expo.linkedin.com<\/li>\n\n\n\n<li>Key challenges: Dev vs. production build gaps caused timing bugs; the last 20% polish took half the time.<\/li>\n\n\n\n<li>Design focus: Playful ghosts, holographic bestiary, Suno\/ElevenLabs audio for fun, immersive feel.<\/li>\n\n\n\n<li>Lessons: Deadlines force shipping; AI agents + taste enable non-devs to build ambitious apps. LinkedIn: +1<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Is Spookseek AR?<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>It is an iOS augmented reality ghost hunting game built by a designer in one week using Replit Agent<\/strong><\/h3>\n\n\n\n<p>Spookseek <a href=\"https:\/\/www.guvi.in\/blog\/virtual-reality-vs-augmented-reality\/\" target=\"_blank\" rel=\"noreferrer noopener\">AR <\/a>is an augmented reality ghost hunting game. Players move around their real space with the phone, scanning the room and tracking ghosts that float around them. Captured ghosts appear in a bestiary as holographic-style cards, complete with playful visuals that feel more inviting than frightening.<\/p>\n\n\n\n<p>The game uses the phone&#8217;s camera, accelerometer, gyroscope, and haptics together, making it something that genuinely belongs on a phone rather than on any other device. That was intentional. Heasman set herself a design constraint from the start to use as many hardware features as possible and build something that could only exist as a mobile experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why She Chose an Ambitious AR Idea<\/strong><\/h2>\n\n\n\n<ul>\n<li>Replit&#8217;s mobile Buildathon gave participants the option to submit an existing project. Heasman had another app already in mind called Vibe Blower, but she decided it was not special enough. So she gave herself a harder brief.<\/li>\n\n\n\n<li>She set herself a much tougher brief: use as many phone hardware features as possible, including camera, accelerometer, gyroscope, and haptics; make something that truly belongs on a phone rather than on another device; and wrap everything in a Halloween aesthetic that she loves as a designer.&nbsp;<\/li>\n\n\n\n<li>This was not a casual choice; it was a deliberate decision to use the competition as a forcing function to build the kind of experience she actually wanted to ship. &#8220;I was really, really thrilled about making the buildathon just for the purposes of forcing me to get an app onto the App Store because, honestly, I needed that push,&#8221; Heasman says.<\/li>\n\n\n\n<li>That mindset, using external deadlines as accountability tools, is one of the most underrated things in her story. The week of intensity was a trade she made consciously, not something that happened to her.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Technical Problem: No ARKit in Expo<\/strong><\/h2>\n\n\n\n<p>The standard approach for an iOS AR game is to use Apple&#8217;s ARKit, which handles the heavy lifting of mapping the physical environment and placing virtual objects in it. Most iOS AR games lean on Apple&#8217;s ARKit. In this Buildathon, that path was blocked. Expo would not allow ARKit in the flow she needed, but she still had to ship a working build to TestFlight.<\/p>\n\n\n\n<p>Rather than scaling back her idea to fit within easier constraints, Heasman used Replit Agent to design a different solution entirely. The result was a custom lightweight <a href=\"https:\/\/www.guvi.in\/blog\/3d-rendering-evolving-mechanical-product-design\/\" target=\"_blank\" rel=\"noreferrer noopener\">3D <\/a>system built from scratch, not borrowed from an existing AR framework, but designed specifically for what Spookseek AR needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How She Built a Custom 3D System With Agent<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Choose Three.js and Build Ghost Rendering<\/strong><\/h3>\n\n\n\n<p>She picked Three.js for rendering ghosts on a virtual sphere around the player. This simulates spirits floating in physical space. She tuned fields of view, angles, and camera math for fair aiming, not random or frustrating. Custom Fresnel-style shaders made ghosts translucent, glowing, and convincingly ethereal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Create the Virtual Sphere Workaround<\/strong><\/h3>\n\n\n\n<p>Instead of ARKit&#8217;s room mapping, she built a conceptual sphere centered on the player. Ghosts sit at positions on this sphere. Gyroscope and accelerometer data track which part the camera views. Pointing at a ghost&#8217;s spot makes it appear like it&#8217;s floating in your room, without true spatial mapping.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Overcome 3D Positioning Challenges with Agent<\/strong><\/h3>\n\n\n\n<p>She tasked Replit Agent with a bespoke 3D system: &#8220;Build me an entirely custom setup.&#8221; Early issues had models &#8220;sticking to screen sides,&#8221; breaking targeting. These math quirks trip up non-devs, but Heasman iterated through them, pushing past where most would quit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Hardest Part: Dev Build vs. Production Build<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.&nbsp; The Dev-Production Chasm<\/strong><\/h3>\n\n\n\n<p>If there is one technical lesson in Heasman&#8217;s story that applies to every developer, not just non-coders, it is the gap between development and production builds. The hardest problems only showed up when she moved from the dev app to the production build. The dev app was &#8220;very forgiving&#8221; and ran more slowly.&nbsp;<\/p>\n\n\n\n<p>The production version on the phone ran much faster, and subtle timing issues caused things to fail without visible errors. She describes that middle stretch of the build as a &#8220;chasm&#8221; where the dev version worked and the production version &#8220;didn&#8217;t work at all.&#8221;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Why Timing Bugs Emerge in Production<\/strong><\/h3>\n\n\n\n<p>This is a real phenomenon in mobile development that catches even experienced developers. The development environment adds layers of tooling that slow execution slightly, which can mask timing-sensitive bugs.&nbsp;<\/p>\n\n\n\n<p>When you remove those layers in a production build, the code runs at full speed, and those timing issues surface as hard-to-diagnose failures. For Heasman, navigating this without formal training in mobile debugging was the most demanding part of the week.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. The Polish That Makes It Ship<\/strong><\/h3>\n\n\n\n<p>Like many builders, she discovered that the last 20% of polish takes at least half the time. Getting both dev and production behaving well and getting a smooth TestFlight build turned out to be the real test.&nbsp;<\/p>\n\n\n\n<p>This is worth internalizing, whether you are a non-coder using Replit Agent or a professional developer with years of experience. The first version that technically works is rarely the version that ships cleanly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Agent Helped Her Through the Hardest Moments<\/strong><\/h2>\n\n\n\n<ul>\n<li>Throughout the build, Replit Agent was Heasman&#8217;s primary problem-solving partner. When things got difficult, and she considered rolling back changes, the agent assured her that it would be fine and would just push through it, and it eventually sorted out the mess.&nbsp;<\/li>\n\n\n\n<li>She also turned to external models for particularly complex mathematical problems, sending questions to tools like <a href=\"https:\/\/www.guvi.in\/blog\/everything-you-should-know-about-chatgpt\/\" target=\"_blank\" rel=\"noreferrer noopener\">ChatGPT <\/a>or Claude when stuck, but she notes that, in the end, it was the Replit Agent that solved the core issues.<\/li>\n\n\n\n<li>One of the most striking moments in her story happened when a bug that neither Agent nor other models could fix suddenly became solvable after a model upgrade that happened behind the scenes.<\/li>\n\n\n\n<li>&nbsp;&#8220;Suddenly, <a href=\"https:\/\/www.guvi.in\/blog\/what-is-claude-code\/\" target=\"_blank\" rel=\"noreferrer noopener\">Claude<\/a>, like, leveled up,&#8221; she recalls. She noticed the difference in the agent&#8217;s behavior before seeing any announcements: &#8220;It could suddenly solve this problem, and it couldn&#8217;t have half an hour ago.<\/li>\n\n\n\n<li>&#8220;For anyone who has ever felt like they were one model capability away from solving something that had been blocking them, this moment captures exactly that experience.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Design Work: Making Ghosts Feel Fun, Not Scary<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Crafting Playful Ghost Designs<\/strong><\/h3>\n\n\n\n<p>Heasman&#8217;s background as a graphic designer shaped Spookseek AR as much as the engineering decisions did. She was deliberate about the tone from the beginning. She went through multiple iterations of ghost designs. Early ghosts looked more realistic and &#8220;a bit severe.<\/p>\n\n\n\n<p>&#8220;That wasn&#8217;t the vibe she wanted. Spookseek AR needed to feel like &#8220;a fun ghost hunt, not too serious, not too heavy.&#8221; After several passes, she landed on the current batch of friendlier, more playful ghosts.<\/p>\n\n\n\n<p>The bestiary, the collection screen where captured ghosts are displayed, reflects her love of bold visual design. The cards have a holographic feel and treat each ghost like a unique character rather than a generic asset. As she puts it, the graphic design side of the work &#8220;is just joy.&#8221;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Layering Audio for Immersive Fun<\/strong><\/h3>\n\n\n\n<p>Sound design received the same level of attention. She used tools like Suno and <a href=\"https:\/\/www.commlabindia.com\/blog\/elevenlabs-elearning-ai-voiceover-benefits-best-practices\" target=\"_blank\" rel=\"noreferrer noopener\">ElevenLabs <\/a>to generate voices and audio moments, adding music and character lines so the experience felt alive even in quiet domestic spaces. These layers of audio and interaction are what separate a technically working app from one that people actually want to keep playing.<\/p>\n\n\n\n<div style=\"background-color: #099f4e; border: 3px solid #110053; border-radius: 12px; padding: 18px 22px; color: #FFFFFF; font-size: 18px; font-family: Montserrat, Helvetica, sans-serif; line-height: 1.6; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); max-width: 750px;\">\n  <strong style=\"font-size: 22px; color: #FFFFFF;\">\ud83d\udca1 Did You Know?<\/strong> \n  <br \/><br \/> \n  <strong style=\"color: #FFFFFF;\">Ruth Heasman<\/strong>, with zero computer science training, outpaced <strong style=\"color: #FFFFFF;\">AAA game teams<\/strong> by shipping <strong style=\"color: #FFFFFF;\">Spookseek AR<\/strong> solo in just <strong style=\"color: #FFFFFF;\">one week<\/strong>. Leveraging <strong style=\"color: #FFFFFF;\">Replit Agent<\/strong> for bespoke <strong style=\"color: #FFFFFF;\">3D engineering<\/strong>, she built an AR experience while her husband works on <strong style=\"color: #FFFFFF;\">multi-year titles<\/strong> with hundreds of developers.\n  <br \/><br \/>\n  Her <strong style=\"color: #FFFFFF;\">virtual sphere hack<\/strong> delivered AR functionality without relying on <strong style=\"color: #FFFFFF;\">ARKit<\/strong>, proving that <strong style=\"color: #FFFFFF;\">AI tools democratize complex mobile development<\/strong>\u2014especially for designers.\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Privacy and User Experience as Product Principles<\/strong><\/h2>\n\n\n\n<ul>\n<li>One aspect of Spookseek AR that sets it apart from a lot of mobile games is Heasman&#8217;s principled approach to user privacy. With Spookseek AR, she wanted something &#8220;self-contained&#8221; that does not depend on constant <a href=\"https:\/\/www.guvi.in\/blog\/api-response-structure-best-practices\/\" target=\"_blank\" rel=\"noreferrer noopener\">API <\/a>calls to large models, avoids monthly subscriptions, and does not ask for logins or personal data.&nbsp;<\/li>\n\n\n\n<li>The app runs locally on the phone without storing or transmitting user information. This was a deliberate design choice, not an afterthought.<\/li>\n\n\n\n<li>&nbsp;For a first-time app store release built in a week by a solo non-developer, building a privacy-respecting, locally run experience while simultaneously solving hard AR engineering problems reflects a level of product thinking that goes well beyond the technical challenge.&nbsp;<\/li>\n\n\n\n<li>When she eventually adds a paywall, she expects it to be a simple one-time unlock rather than a subscription.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Other Builders Can Learn<\/strong><\/h2>\n\n\n\n<p>Heasman&#8217;s experience with Spookseek AR is a practical demonstration of several things that are easy to say but hard to actually believe until you see them done.<\/p>\n\n\n\n<ul>\n<li>Her story is a clear snapshot of what&#8217;s possible in the vibe coding era. She came in as a designer, leaned on Replit Agent to handle the math and engine work, brought a strong sense of taste to visuals and sound, stayed honest about what she didn&#8217;t know, and let persistence and better tools close the gap.&nbsp;<\/li>\n\n\n\n<li>The combination of domain expertise in this case, design and taste, with <a href=\"https:\/\/www.guvi.in\/blog\/how-ai-works-comprehensive-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">AI <\/a>assistance for the technically demanding parts, is increasingly the model for how non-traditional builders ship real products.<\/li>\n\n\n\n<li>For other builders, the lesson is straightforward. Pick a problem you care about enough to fight through the last 20%.<\/li>\n\n\n\n<li>&nbsp;Use Replit Agent and the surrounding tooling to take on work that would have been unreachable a year ago. Treat the platform like the &#8220;toy shop&#8221; she describes, and you may surprise yourself with what you can ship in a single week.<\/li>\n<\/ul>\n\n\n\n<p><em>If you want to master AI-powered app development, build custom 3D systems like virtual spheres, and ship mobile games with, explore HCL GUVI&#8217;s<\/em><a href=\"https:\/\/www.guvi.in\/mlp\/artificial-intelligence-and-machine-learning?utm_source=blog&amp;utm_medium=hyperlink&amp;utm_campaign=designing-spookspeek-ar\"><em> AI and ML Course<\/em><\/a><em>, and accelerate your technical career<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts<\/strong><\/h2>\n\n\n\n<p>Spookseek AR is a real app, built in a real week, by someone who came to the project with design skills and curiosity rather than engineering experience. The technical path, a custom Three.js system, a virtual sphere for ghost placement, custom Fresnel shaders, and a long fight through the dev-to-production gap were genuinely hard.<\/p>\n\n\n\n<p>What made the difference was a combination of the right tools, a real deadline, and the willingness to push through the point where most people stop. Even as she shipped, she kept sharing the journey.<\/p>\n\n\n\n<p>She recorded gameplay, built trailers and background loops in tools like Gemini and CapCut, and posted a behind-the-scenes write-up about the hardest technical issues she faced and how she resolved them.&nbsp;<\/p>\n\n\n\n<p>For her, that is part of the story. &#8220;It&#8217;s interesting to see how badly it can be going wrong and still come right at the end,&#8221; Heasman says. That transparency, sharing the hard parts alongside the finished product, is as valuable as the app itself for anyone trying to understand what building in 2026 actually looks like.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQ<\/strong><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1777411484518\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">1. <strong>What is Spookseek AR?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>An iOS AR game where players hunt ghosts using phone camera, sensors, and haptics; ghosts float in real space and collect in a bestiary.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777411495386\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">2. <strong>How did a non-coder build it in one week?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ruth used Replit Agent for 3D math, shaders, and debugging and iterated on custom systems despite no CS background.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777411515419\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">3. <strong>Why no ARKit?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Expo blocked it for the Buildathon; she built a lightweight virtual sphere workaround with gyroscope\/accelerometer tracking.\u00a0<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777411556595\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">4. <strong>What was the hardest part?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Dev builds hidden timing bugs; production ran faster, exposing silent failures that took intense debugging and polishing.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1777411584583\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">5. <strong>Key takeaways for builders?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Use AI for tech-heavy lifting, embrace deadlines, and blend design taste with persistence to ship real products.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Most people think building an AR mobile game needs a dev team, months of work, and expertise in 3D math or SDKs. Graphic designer Ruth Heasman just disproved that. In one week, using Replit Agent, she designed, built, and shipped Spookseek AR, a fully working iOS ghost-hunting game It leverages the phone&#8217;s camera, accelerometer, gyroscope, [&hellip;]<\/p>\n","protected":false},"author":63,"featured_media":108400,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[933],"tags":[],"views":"135","authorinfo":{"name":"Vishalini Devarajan","url":"https:\/\/www.guvi.in\/blog\/author\/vishalini\/"},"thumbnailURL":"https:\/\/www.guvi.in\/blog\/wp-content\/uploads\/2026\/04\/Spookseek-AR-300x115.webp","jetpack_featured_media_url":"https:\/\/www.guvi.in\/blog\/wp-content\/uploads\/2026\/04\/Spookseek-AR.webp","_links":{"self":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts\/108096"}],"collection":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/comments?post=108096"}],"version-history":[{"count":3,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts\/108096\/revisions"}],"predecessor-version":[{"id":108520,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/posts\/108096\/revisions\/108520"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/media\/108400"}],"wp:attachment":[{"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/media?parent=108096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/categories?post=108096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.guvi.in\/blog\/wp-json\/wp\/v2\/tags?post=108096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}