<?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: Joshua Dungan</title>
    <description>The latest articles on DEV Community by Joshua Dungan (@bringyourownbrain).</description>
    <link>https://dev.to/bringyourownbrain</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%2F3999204%2Fdcdfa0f8-23b7-44f9-a82a-5e58fb7c10e4.png</url>
      <title>DEV Community: Joshua Dungan</title>
      <link>https://dev.to/bringyourownbrain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bringyourownbrain"/>
    <language>en</language>
    <item>
      <title>Can't hide forever.</title>
      <dc:creator>Joshua Dungan</dc:creator>
      <pubDate>Thu, 05 Nov 2026 12:57:37 +0000</pubDate>
      <link>https://dev.to/bringyourownbrain/cant-hide-forever-2a27</link>
      <guid>https://dev.to/bringyourownbrain/cant-hide-forever-2a27</guid>
      <description></description>
    </item>
    <item>
      <title>Added a cover video! Also did a 5 hr live stream of the Spatial AI game demo and added to the links.</title>
      <dc:creator>Joshua Dungan</dc:creator>
      <pubDate>Sun, 01 Nov 2026 21:52:46 +0000</pubDate>
      <link>https://dev.to/bringyourownbrain/added-a-cover-video-also-did-a-5-hr-live-stream-of-the-spatial-ai-game-demo-and-added-to-the-2jpl</link>
      <guid>https://dev.to/bringyourownbrain/added-a-cover-video-also-did-a-5-hr-live-stream-of-the-spatial-ai-game-demo-and-added-to-the-2jpl</guid>
      <description>&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://dev.to/bringyourownbrain/a-datacenter-shouldnt-boil-water-just-so-an-npc-can-say-hello-so-i-built-bringyourownbrain-a-1142" 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%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp1b0u0tsa6xq2b06njmy.png" height="418" 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://dev.to/bringyourownbrain/a-datacenter-shouldnt-boil-water-just-so-an-npc-can-say-hello-so-i-built-bringyourownbrain-a-1142" rel="noopener noreferrer" class="c-link"&gt;
            A datacenter shouldn't boil water just so a game-bot can say "Hello", so I built bringYourOwnBrain: a free and easy to use open-source local AI platform . - DEV Community
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Ghost in the Machine   How the ghost app hosts apps...    // ---- Shared-storage layer...
          &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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" width="300" height="299"&gt;
          dev.to
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>A datacenter shouldn't boil water just so a game-bot can say "Hello", so I built bringYourOwnBrain: a free and easy to use open-source local AI platform .</title>
      <dc:creator>Joshua Dungan</dc:creator>
      <pubDate>Sun, 01 Nov 2026 05:49:32 +0000</pubDate>
      <link>https://dev.to/bringyourownbrain/a-datacenter-shouldnt-boil-water-just-so-an-npc-can-say-hello-so-i-built-bringyourownbrain-a-1142</link>
      <guid>https://dev.to/bringyourownbrain/a-datacenter-shouldnt-boil-water-just-so-an-npc-can-say-hello-so-i-built-bringyourownbrain-a-1142</guid>
      <description>&lt;h2&gt;
  
  
  Ghost in the Machine
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How the ghost app hosts apps...&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ---- Shared-storage layer -------------------------------------------------&lt;/span&gt;
&lt;span class="c1"&gt;// Chrome: document.hasStorageAccess() is TRUE whenever 3rd-party cookies are allowed, but localStorage /&lt;/span&gt;
&lt;span class="c1"&gt;// Cache API stay PARTITIONED per game site. The real unpartitioned buckets only come from the&lt;/span&gt;
&lt;span class="c1"&gt;// StorageAccessHandle returned by requestStorageAccess({all:true}). Safari/Firefox have no handle API;&lt;/span&gt;
&lt;span class="c1"&gt;// a plain grant (+ reload) switches the normal document storage to the shared bucket.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;HANDLE_API&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;StorageAccessHandle&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;undefined&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;StorageAccessHandle&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;sharedHandle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;kv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sharedHandle&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;sharedHandle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;load&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;kv&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;save&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nf"&gt;kv&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;v&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;drop&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nf"&gt;kv&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;removeItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;useHandle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;sharedHandle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nf"&gt;setSharedCaches&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;caches&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="c1"&gt;// WebLLM reads the global caches/indexedDB; point them at the shared (unpartitioned) buckets.&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;caches&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;configurable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;caches&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;indexedDB&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;configurable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;indexedDB&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;// Only succeeds without a click if this browser already remembers a grant for this game site.&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;trySilentHandle&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;inIframe&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;sharedHandle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;!!&lt;/span&gt;&lt;span class="nx"&gt;sharedHandle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;permissions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;storage-access&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;granted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;// FIXED: Use the exact Privacy Sandbox dictionary&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;requestStorageAccess&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;caches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;indexedDB&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;caches&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nf"&gt;useHandle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://bringyourownbrain.org" rel="noopener noreferrer"&gt;bringYourOwnBrain&lt;/a&gt; is an open-source platform for open-weight local AI that makes running small open weight LLMs free and easy, democratizing access for both devs and users to implement WebGPU with WASM-fallback in development apps, games, and tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bringyourownbrain.org" rel="noopener noreferrer"&gt;https://bringyourownbrain.org&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Demo Integration&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://bringyourownbrain.org/midgeys-midnight-mash.html" rel="noopener noreferrer"&gt;https://bringyourownbrain.org/midgeys-midnight-mash.html&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;p&gt;TLDR; I built a system to unite cross-domain browser storage for large file storage for LLMs, reducing dependency on centralized data-center first models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It allows users to use AI locally and privately, and allows developers to implement the system with one line of code - with ** &lt;em&gt;no compute costs&lt;/em&gt; ** except for the user's electricity cost of the phone or pc while in use.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How can AI be used to interpret and interact with legacy or abandoned codebases?&lt;br&gt;
Local AI with no API compute cost allows many old dead open codes.  *&lt;em&gt;With BringYourOwnBrain you can use AI to implement the one-line-of-code install for user's to use local compute for the app and mod the app (e.g., infinite levels in a game by precooking next while current is played, etc). *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What role can generative tools play in memorializing or resurrecting dead open-source projects?&lt;br&gt;
&lt;strong&gt;Same answer as above.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How do developers handle the emotional or nostalgic aspects of abandoned side projects and repositories?&lt;br&gt;
&lt;strong&gt;BringYourOwnBrain is fun... ressurect those dead baddies and give em a modern appeal.  I am launching &lt;a href="https://hackathon.games" rel="noopener noreferrer"&gt;https://hackathon.games&lt;/a&gt; for this reason [TBD].&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every time a video game NPC chats, a user wants to ask silly questions to AI, or just data-center-powered website customer service bot is used, it adds to the electricity consumed, clean drinking water evaporated, and ecological impact in a hyper-scale that is not expected to slow.  An open source, trustless protocol may help solve the even increasing destruction of resources and increasing costs of global energy.  BringYourOwnBrain offers a potential solution, or a potential step towards one.&lt;/p&gt;

&lt;p&gt;The energy-cost-use-death-apiral creates the "Viral Cloud Bill" nightmare: if an indie developer builds an AI game and it goes viral, they may wake up to a huge API bill or suspended account for being out of funds.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;&lt;a href="https://bringYourOwnBrain.org" rel="noopener noreferrer"&gt;bringYourOwnBrain&lt;/a&gt;&lt;/strong&gt;(BYOB) — an open-weight local AI ecosystem designed to break this cycle for good and reduce Hot-Load-in LLM model data transfers and tokens used by data-center models for miniscule tasks.&lt;/p&gt;

&lt;p&gt;👻 &lt;strong&gt;Welcome to the "Ghost in the Box" and a Witchy Game&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In traditional cloud AI, machine intelligence is trapped in industrial server farms hundreds of miles away.  With BYOB, it is in ephemeral memory... and never leaves your device... spooky!&lt;/p&gt;

&lt;p&gt;Check out the interactive AI-spatial "live" interaction game that you can play using real LLMs and play offline once loaded for the first time: &lt;a href="https://bringyourownbrain.org/midgeys-midnight-mash.html" rel="noopener noreferrer"&gt;https://bringyourownbrain.org/midgeys-midnight-mash.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**Demo&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live Platform &amp;amp; SDK: &lt;a href="https://bringyourownbrain.org" rel="noopener noreferrer"&gt;https://bringyourownbrain.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Play Midgey's Midnight Mash:&lt;br&gt;
**&lt;a href="https://hackathon.games/midgeys-midnight-mash.html" rel="noopener noreferrer"&gt;https://hackathon.games/midgeys-midnight-mash.html&lt;/a&gt; (to test cross-origin cache sharing per device-browser).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Video Preview&lt;/strong&gt;: &lt;a href="https://youtu.be/X5_zWmZkR6s" rel="noopener noreferrer"&gt;https://youtu.be/X5_zWmZkR6s&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/X5_zWmZkR6s" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LiveStream&lt;/strong&gt;: Check out this video &lt;a href="https://www.twitch.tv/pathmap/v/2916782438?sr=a" rel="noopener noreferrer"&gt;"Christ of the Abyss - bringYourOwnBrain hackathon code demo"&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots from Gameplay&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%2Frtb8ysoz4hzj3dabkuo2.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%2Frtb8ysoz4hzj3dabkuo2.png" alt="Midgey's Midnight Mash Image 1" width="743" height="445"&gt;&lt;/a&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%2Fbb3u3rgdpo1w5h3lb8pk.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%2Fbb3u3rgdpo1w5h3lb8pk.png" alt="Midgey's Midnight Mash Image 1" width="743" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Midgey Gameplay&lt;/strong&gt; - Addictive game I just made up for this hacktoberFest :)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;br&gt;
The entire platform and game are open-source under the Apache 2.0 License:&lt;/p&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/joshuadd79" rel="noopener noreferrer"&gt;
        joshuadd79
      &lt;/a&gt; / &lt;a href="https://github.com/joshuadd79/bring-your-own-brain" rel="noopener noreferrer"&gt;
        bring-your-own-brain
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      bringYourOwnBrain is an open-weight local AI platform that makes running small open weight LLMs free and easy for both devs and users on WebGPU &amp;amp; WASM.
    &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;bring-your-own-brain&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;bringYourOwnBrain is an open-weight local AI platform that makes running small open weight LLMs free and easy for both devs and users on WebGPU &amp;amp; WASM.&lt;/p&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/joshuadd79/bring-your-own-brain" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;&lt;strong&gt;The 1-Line Developer Experience&lt;/strong&gt;:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://bringyourownbrain.org/byob-web-sdk.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- 2. Mount the connect button in your UI --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"ai-connector"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;brain&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BringYourOwnBrainWeb&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;container&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ai-connector&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;220px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;44px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;onState&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;BYOB State:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nx"&gt;brain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mount&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="c1"&gt;// 3. Stream or await responses directly from the player's GPU:&lt;/span&gt;
  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;talkToNPC&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;playerText&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;brain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onChunk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;renderSpeechBubble&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;token&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;reply&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;brain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;You are a sarcastic goblin bouncer. Answer in 1 short sentence.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;playerText&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;How I Built It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I missed last week's deadline where I was making an agentic workbench but didnt get it how I wanted it for submission.  I used the v6 version of it --&amp;gt; get it / see it at &lt;a href="https://phosita.tech/wbv6.html" rel="noopener noreferrer"&gt;https://phosita.tech/wbv6.html&lt;/a&gt; &amp;lt;-- ... I made a mini-golf game.&lt;/p&gt;

&lt;p&gt;Long story short, I NEVER USED local llms before and the Android apps did not offer CORS for the workbench so I pivoted to build this platform to suite my own needs - then realized... holy shit... if everyone did this we could take some of the "data-center" death spiral we are in globally down a notch... thus even if I "never make a dollar" on it, the "pay" is a chance to have a future.  Open source makes this possible.&lt;/p&gt;

&lt;p&gt;When I saw the Dia de Los Muertos event I wanted to make it fun so I made a game and figured a way to use one domain's cache as a central storage permission handler for all my websites (and anyone else's) to allow local devices to download a model once and run it from cache across various websites.  &lt;strong&gt;Be sure to set your chat topics in the Midgey Game!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn more, check out the main site: &lt;a href="https://bringyourownbrain.org/" rel="noopener noreferrer"&gt;https://bringyourownbrain.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I legally broke through this wall without requiring any browser extension!&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Why Does Open Innovation Matter?&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
In this case, the open source and use of this tool can reduce gaming-related token generation by quadrillions of tokens per year and open up a new class of local-ai-first gaming, chatbots, and more!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Ecological Imperative &amp;lt;-- AI WROTE THIS BIT --&amp;gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Consumer devices have massive, underutilized NPUs, GPUs, and unified RAM sitting&lt;br&gt;
idle. Shifting lightweight game dialogue and interactive NPC reasoning to edge&lt;br&gt;
compute eliminates quintillions of wasted data-center tokens per year, cutting&lt;br&gt;
down power grid consumption and cooling water evaporation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Radical Privacy &amp;amp; Offline Resilience&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because inference runs in local memory, no user prompt ever touches a remote&lt;br&gt;
server. The game ai-engine works on an airplane, deep in a cabin without Wi-Fi (once cached), or during&lt;br&gt;
an internet outage. The intelligence stays in the player's hands.&lt;/p&gt;

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

&lt;p&gt;This project was built with the help of agentic AI workflows (pairing with&lt;br&gt;
Claude for physics integration and rapid boilerplate generation).&lt;/p&gt;

&lt;p&gt;The Spirit of It is my heart :)&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overall Winner (Hacktoberfest Open-Source AI Challenge: Week 4)&lt;/li&gt;
&lt;li&gt;Open-Source AI / Local Inference Track&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;lt;-- back to my voice --&amp;gt;&lt;/p&gt;

&lt;p&gt;The revolution begins... bring your own brain (but don't lose it! 🤯)&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>https://youtube.com/shorts/-erscrlMaKE?is=i06PN93ejIGZ9NPl

#localAI</title>
      <dc:creator>Joshua Dungan</dc:creator>
      <pubDate>Wed, 28 Oct 2026 21:28:34 +0000</pubDate>
      <link>https://dev.to/bringyourownbrain/httpsyoutubecomshorts-erscrlmakeisi06pn93ejigz9npllocalai-m5</link>
      <guid>https://dev.to/bringyourownbrain/httpsyoutubecomshorts-erscrlmakeisi06pn93ejigz9npllocalai-m5</guid>
      <description>&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://youtube.com/shorts/-erscrlMaKE?is=i06PN93ejIGZ9NPl" 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%2Fi.ytimg.com%2Fvi%2F-erscrlMaKE%2Fsardefault.jpg%3Fsqp%3D-oaymwEkCJUDENAFSFqQAgHyq4qpAxMIARUAAAAAJQAAyEI9AICiQ3gBovOX_wMOCLjOidcGGODqBCDgqAE%3D%26rs%3DAOn4CLCcwndMBgFx_iOY_hV8trivIkCN_g%26usqp%3DCBU" height="720" class="m-0" width="405"&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://youtube.com/shorts/-erscrlMaKE?is=i06PN93ejIGZ9NPl" rel="noopener noreferrer" class="c-link"&gt;
            🤯🥳🤯 Local AI achieved! airgap-capable, unlimited use, private, decentralized, wow it F#$%ing WORKS! - YouTube
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            This is proof!!! offline AI switching airplane mode on/off uninterrupted.  I made a new app called PathMap Alchemy that makes medical discoveries using AI an...
          &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%2Fwww.youtube.com%2Fs%2Fdesktop%2F92ead095%2Fimg%2Ffavicon.ico" width="48" height="48"&gt;
          youtube.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>PHOSITA Tech: Patent Trolls v. Humanity</title>
      <dc:creator>Joshua Dungan</dc:creator>
      <pubDate>Mon, 19 Oct 2026 06:16:11 +0000</pubDate>
      <link>https://dev.to/bringyourownbrain/phosita-tech-patent-trolls-v-humanity-521j</link>
      <guid>https://dev.to/bringyourownbrain/phosita-tech-patent-trolls-v-humanity-521j</guid>
      <description>&lt;p&gt;&lt;em&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;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## What I Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I gated semantic drift.  That was the big one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I took my complex bioinformatics software and turned it into an Alchemy like app that takes two terms (concepts) and does PubMed literature research.  It then makes a discovery and provides PubChem/PugView data and a whole host of other useful data that could be used by researchers and drug developers alike.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It has autonomous mode.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The software is built to allow any ordinary person with or without "skill in the art" who has a cell phone or computer to make extraordinary discoveries.  It is free to use with "bring your own key" or LLMclient side pipeline and library management, packed into a standalone .html file. It is specifically tailored for open weights models and localhost enabled to allow open use.&lt;/p&gt;

&lt;p&gt;Since I am offering this beta-version software for free, I do not expect sales from this software directly.  For the side hustle, I actually took out the "Autonomous mode" in order to make it a premium feature and then put it back it because the goal for me is to "sell" valuable resources for a price of "eye-time" via basic ad monetization because I am a solo-developer and full-time caregiver and I cannot maintain reasonable customer support.&lt;/p&gt;

&lt;p&gt;I envision medical students and bioinformatics researchers would likely pay a small annual or monthly fee for either access to the tools or to be able to use in a "SaaS" format instead of a BYOK (bring your own key) format.  The software could easily be used as a thesis-generator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2Fty06y67marwtxw6f4xk1.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%2Fty06y67marwtxw6f4xk1.png" alt="Library viewer" width="597" height="542"&gt;&lt;/a&gt;&lt;br&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%2Fgiisi3yu8nyw4m5ac860.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%2Fgiisi3yu8nyw4m5ac860.png" alt="Attractor Graphs" width="613" height="557"&gt;&lt;/a&gt;&lt;br&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%2Fs2ls7do67q8w5v14ls77.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%2Fs2ls7do67q8w5v14ls77.png" alt="Full reports with real data" width="591" height="626"&gt;&lt;/a&gt;&lt;br&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%2Fpc5dizw2mikdahpgp8ry.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%2Fpc5dizw2mikdahpgp8ry.png" alt="Programmatically perfect charts" width="785" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/UjaP9lZdq18" rel="noopener noreferrer"&gt;https://youtu.be/UjaP9lZdq18&lt;/a&gt;&lt;br&gt;
(video preview)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://phosita.tech" rel="noopener noreferrer"&gt;https://phosita.tech&lt;/a&gt; &lt;br&gt;
(This is the project home with some explanation, home of datasets, etc.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pathmap.org/alchemy" rel="noopener noreferrer"&gt;https://pathmap.org/alchemy&lt;/a&gt; &lt;br&gt;
(This is the main app with which you may generate and manage research, and, share to the global graph project if desired - open-weight LLM compatible, openRouter/Gemini/localhost compatible.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://researchsimulator.com" rel="noopener noreferrer"&gt;https://researchsimulator.com&lt;/a&gt; &lt;br&gt;
(This is the project I was working on prior to October 16th, when I learned of the Hacktoberfest and decided to ditch premade cron-built game templates and refactor pathmap.org CORE into Alchemy - it has some display issues still.)&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/joshuadd79/phosita" rel="noopener noreferrer"&gt;https://github.com/joshuadd79/phosita&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built the app with free tier Gemini Pro 3.1, Gemini Build, and  Claude Sonnet 5.5 (medium).  It was tested with Gemma 4 26B models over API and limited to 16k context optionally for Gemma API mode.  It features open router and localhost configurations to allow offline use.  A future version could have PubMed bulk data on the device and go unthrottled at little cost.&lt;/p&gt;

&lt;p&gt;It is framed around local first principles, small LLM compatibility and open weights model usage in order to help achieve the goal - to anti-patent the future of nanomedicines and lower healthcare costs while putting value back into human led research, which leads to more literature based discoveries (full circle).  &lt;/p&gt;

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

&lt;p&gt;During my work on other projects, I made tools to understand PubMed literature better.  I have several discoveries that I personally made by asking the right "what if" questions.  One example recently is the potential for regular dry powdered ginger to be used for the purpose of prophylaxis against the spread of the Ebola virus, since Ginger Derived Extracellular Vesicles (GDEVs) inherently have 6-shogaol.  It may be found to be useful when delivered intranasally via gel in order to prevent EBOV VP40 budding.  Dietary changes take longer time periods to be impactful according to the literature.&lt;/p&gt;

&lt;p&gt;The problem?  Ginger cannot be patented so they won't make the "drug".  Even worse, if "big pharma" did patent the "6-shogaol modifies EBOV VP40 budding" then the cost of the medicine would be outrageous, and it would be infringing to sell ginger for the same effective purpose.&lt;/p&gt;

&lt;p&gt;The open-source, open-data aspects of the project make it a potential way to show two things: 1) anyone can use the publicly owned datasets with AI to make discoveries, lowering the bar for PHOSITA and 2) A global graph of nutrition x pathology could create a vast collection of prior art in order to block these pathways from being patented or patent-trolled.&lt;/p&gt;

&lt;p&gt;Open innovation with "the little guy" in mind matters.  Gemma should be able to be run from a SnapDragon card (if not now, soon) and thus this software is like having a research assistant in your pocket if used with localhost on mobile.  This software is for democratizing medical discovery and empowering people like me, who never took anatomy but can solve the ALS puzzle (yea, I said that), to be heard and puts 1000 Phds in your hands - Panacea in your hands.&lt;/p&gt;

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

&lt;p&gt;Overall category&lt;br&gt;
Best use of Gemma&lt;br&gt;
Best use of .TECH domain&lt;/p&gt;

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