<?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: Nandini Patel</title>
    <description>The latest articles on DEV Community by Nandini Patel (@radiata_).</description>
    <link>https://dev.to/radiata_</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%2F4177505%2F7ed0feae-e278-4694-82e4-67a1c6a3fde7.png</url>
      <title>DEV Community: Nandini Patel</title>
      <link>https://dev.to/radiata_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/radiata_"/>
    <language>en</language>
    <item>
      <title>WorldCraft — “Capture the world. Create your own.”</title>
      <dc:creator>Nandini Patel</dc:creator>
      <pubDate>Sun, 11 Oct 2026 18:26:19 +0000</pubDate>
      <link>https://dev.to/radiata_/worldcraft-capture-the-world-create-your-own-1318</link>
      <guid>https://dev.to/radiata_/worldcraft-capture-the-world-create-your-own-1318</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;h1&gt;
  
  
  WORLDCRAFT — “Capture the world. Create your own.”
&lt;/h1&gt;

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

&lt;p&gt;Most modern creative apps encourage people to sit in front of a keyboard typing text prompts into black-box generators. &lt;strong&gt;WORLDCRAFT&lt;/strong&gt; flips that paradigm on its head to celebrate the spirit of &lt;strong&gt;"Touch Grass"&lt;/strong&gt;: it turns the physical outdoors into your creative palette.&lt;/p&gt;

&lt;p&gt;WORLDCRAFT is a creative web application with the tagline:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Capture the world. Create your own.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of generating synthetic images with AI prompts, users are motivated to step outside, walk through parks, explore backyards, and interact with the real world. Users photograph real-world natural objects—such as wild daisies, oak bark, mossy rocks, garden ferns, and birds—and import them into an interactive retro 8-bit canvas to arrange, scale, rotate, layer, and compose their own personalized, living worlds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who is it for?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outdoor explorers &amp;amp; hikers&lt;/strong&gt; who want a fun, interactive digital diary of the flora and fauna they discover.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Children &amp;amp; students&lt;/strong&gt; learning biology, ecology, and environmental science through hands-on discovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creative digital crafters&lt;/strong&gt; who love retro arcade aesthetics and collage-style world-building.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; (&lt;a href="https://github.com/Nobody-377/worldcraft" rel="noopener noreferrer"&gt;https://github.com/Nobody-377/worldcraft&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Deployment:&lt;/strong&gt; [worldcraft-seven.vercel.app]&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Explore the complete source code on GitHub:&lt;br&gt;
👉 &lt;strong&gt;(&lt;a href="https://github.com/Nobody-377/worldcraft" rel="noopener noreferrer"&gt;https://github.com/Nobody-377/worldcraft&lt;/a&gt;)&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;WORLDCRAFT was designed around a clean, modern web stack paired with client-side open-source machine learning:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open-Source AI Vision (Client-Side Local Inference)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Quantized &lt;strong&gt;MobileNet-v1&lt;/strong&gt; (&lt;code&gt;Xenova/mobilenet_v1_1.0_224&lt;/code&gt;, Apache-2.0 License).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference Runtime:&lt;/strong&gt; Powered by &lt;code&gt;@xenova/transformers&lt;/code&gt; (Hugging Face Transformers.js), running ONNX weights directly in the client's browser through WebAssembly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asynchronous &amp;amp; Non-Blocking:&lt;/strong&gt; Classification runs in the background. As soon as a photo is snapped or uploaded, it appears immediately on the screen while the model calculates genuine softmax probability scores (e.g., &lt;code&gt;AI: Daisy (89%)&lt;/code&gt;), seamlessly updating the label without freezing the UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Fallback:&lt;/strong&gt; If internet access is unavailable on remote hiking trails, the app gracefully falls back to smart filename normalization and provides an inline renaming tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Interactive 2D Canvas Engine (&lt;code&gt;react-konva&lt;/code&gt;)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Hardware-accelerated HTML5 Canvas with SSR hydration protection (&lt;code&gt;ssr: false&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Full multi-touch and mouse transformations: drag, aspect-ratio locked resizing handles (&lt;code&gt;keepRatio={true}&lt;/code&gt;), and 360° rotation anchors.&lt;/li&gt;
&lt;li&gt;Layer-depth ordering controls (&lt;em&gt;Bring to Front&lt;/em&gt;, &lt;em&gt;Bring Forward&lt;/em&gt;, &lt;em&gt;Send Backward&lt;/em&gt;, &lt;em&gt;Send to Back&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Single-click 2x high-resolution PNG world export excluding transform handles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Local-First Persistence &amp;amp; Safe Memory Management
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IndexedDB via &lt;code&gt;idb-keyval&lt;/code&gt;:&lt;/strong&gt; Stores full-resolution raw photographic binary blobs locally on the device, bypassing the restrictive 5MB &lt;code&gt;localStorage&lt;/code&gt; limit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reference-Counted Object URLs:&lt;/strong&gt; Prevents broken images when multiple canvas elements share the same inventory photo, safely releasing memory upon unmount.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debounced Auto-Save:&lt;/strong&gt; Background timer (1,000ms debounce) preserves layouts, coordinates, and unplaced inventory photos across browser reloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Retro Hacktoberfest 2026 Visual Design
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Styled with the official challenge aesthetic: Deep Teal (&lt;code&gt;#304C48&lt;/code&gt;), Forest Teal (&lt;code&gt;#3D5E59&lt;/code&gt;), Retro Cream (&lt;code&gt;#E8E8DA&lt;/code&gt;), Arcade Yellow (&lt;code&gt;#F5BD2D&lt;/code&gt;), Pixel Coral (&lt;code&gt;#E98083&lt;/code&gt;), and Pixel Blue (&lt;code&gt;#8BB4DE&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Tactile 8-bit offset hard shadows (&lt;code&gt;box-shadow: 3px 3px 0px #171D1B&lt;/code&gt;) with active button depression.&lt;/li&gt;
&lt;li&gt;Mobile-first responsiveness tested from 320px small screens to desktop with 44px minimum touch targets and zero horizontal overflow.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Closed, proprietary vision APIs (such as cloud-hosted vision services) come with substantial drawbacks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Surveillance &amp;amp; Privacy Concerns:&lt;/strong&gt; Closed cloud APIs require uploading personal photographs of a user’s private spaces, backyards, or neighborhoods to corporate servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paywalls &amp;amp; API Key Gatekeeping:&lt;/strong&gt; Closed models require billing accounts, rate limits, and per-query charges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Outdoors" Disconnect:&lt;/strong&gt; Most crucially for a "Touch Grass" challenge, closed APIs fail the moment you lose cellular connection on a hiking trail or in a national park.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open innovation—exemplified by open-weight models like &lt;strong&gt;MobileNet&lt;/strong&gt; and open-source runtimes like &lt;strong&gt;Transformers.js&lt;/strong&gt;—democratizes artificial intelligence. It enables privacy-preserving, zero-cost, client-side inference that works offline anywhere on Earth. Open models make it possible for anyone with a browser to explore nature, identify biodiversity, and build art without handing their data to closed walled gardens.&lt;/p&gt;




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

&lt;p&gt;This project was built following a rigorous, controlled human-in-the-loop pair-programming methodology using Google DeepMind's &lt;strong&gt;Antigravity AI Agent&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phase 0:&lt;/strong&gt; Architecture planning and tech stack selection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 1:&lt;/strong&gt; Scaffolding Next.js App Router, Tailwind CSS, and core layout shell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 2:&lt;/strong&gt; IndexedDB storage pipeline and base Konva stage rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 3:&lt;/strong&gt; Transformer manipulation, aspect-ratio locks, and layer ordering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 4:&lt;/strong&gt; Debounced layout auto-save, reload rehydration, and 2x PNG export.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 5:&lt;/strong&gt; In-app camera integration and Transformers.js open-source AI vision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 6:&lt;/strong&gt; Retro Hacktoberfest 2026 theme overhaul and mobile-first 320px–desktop responsive verification.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Touch Grass Challenge (Week 1 Winner)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Most Creative Open-Source AI Project&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best Use of Local / Client-Side Inference&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

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