<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>whysooraj&#x27;s Portfolio - Three.js</title>
    <subtitle>Portfolio showcasing projects and research.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog.sooraj.fun/tags/three-js/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.sooraj.fun/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-02-01T00:00:00+00:00</updated>
    <id>https://blog.sooraj.fun/tags/three-js/atom.xml</id>
    <entry xml:lang="en">
        <title>Echoes in Orbit</title>
        <published>2026-02-01T00:00:00+00:00</published>
        <updated>2026-02-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.sooraj.fun/projects/echoes-in-orbit/"/>
        <id>https://blog.sooraj.fun/projects/echoes-in-orbit/</id>
        
        <content type="html" xml:base="https://blog.sooraj.fun/projects/echoes-in-orbit/">&lt;p&gt;An immersive 3D spherical planetarium planet simulation where user confessions are placed using Fibonacci sphere distribution.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;why-it-exists&quot;&gt;Why it exists&lt;&#x2F;h3&gt;
&lt;p&gt;A fun, quiet weekend project. I wanted a space where confessions could float, not as a flat feed of text, but as a constellation of glowing stars you could explore in 3D.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;how-it-works&quot;&gt;How it works&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Renders a responsive 3D starfield dome using &lt;strong&gt;Three.js&lt;&#x2F;strong&gt; and &lt;strong&gt;React Three Fiber&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Places confession coordinates dynamically using a &lt;strong&gt;Fibonacci sphere distribution algorithm&lt;&#x2F;strong&gt; to ensure even geometric spacing.&lt;&#x2F;li&gt;
&lt;li&gt;Groups confessions into five emotional galaxies (Hope, Regret, Dream, Gratitude, Advice).&lt;&#x2F;li&gt;
&lt;li&gt;Uses lightweight CSS and shaders to handle micro-animations and realistic stellar glows.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;what-happened&quot;&gt;What happened&lt;&#x2F;h3&gt;
&lt;p&gt;It started on a Saturday morning with a blank canvas and a lot of math errors. Placing elements evenly on a sphere without them clumping at the poles took a few tries (and some coordinate transformations). By Sunday night, it was a working digital universe. Cast your thoughts into the cosmos, and watch them become a star.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-i-d-change&quot;&gt;What I&#x27;d change&lt;&#x2F;h3&gt;
&lt;p&gt;I&#x27;d rewrite the rendering loops to batch draw calls using instanced meshes, so the frame rate doesn&#x27;t drop when the universe gets crowded with thousands of confessions.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;links&quot;&gt;Links&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;whysooraj&#x2F;echo-in-orbits&quot;&gt;GitHub&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
