<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>dev.jeffpelton.com</title>
  <link href="https://dev.jeffpelton.com/"/>
  <link rel="self" href="https://dev.jeffpelton.com/feed.xml"/>
  <id>https://dev.jeffpelton.com/</id>
  <updated>2026-09-27T00:00:00.000Z</updated>
  <author><name>Jeff Pelton</name></author>
  <entry>
    <title>Hollow Golf</title>
    <link href="https://dev.jeffpelton.com/notes/hollow-golf/"/>
    <id>https://dev.jeffpelton.com/notes/hollow-golf/</id>
    <updated>2026-09-27T00:00:00.000Z</updated>
    <summary>Mini golf on the inside of a hollow world, where gravity pulls outward and every fairway curves up.</summary>
    <content type="html">&lt;p&gt;Hollow Golf takes the world from &lt;a href=&quot;/notes/hollow-light/&quot;&gt;Hollow Light&lt;/a&gt; and puts a mini golf course on the inside
of it. Gravity pulls &lt;em&gt;out&lt;/em&gt;, toward the ground under your feet, so every fairway curves up into the sky, the Sun
hangs in the middle, and the far side of the course is over your head. Nine holes across four themed worlds: a
garden, a glacier, rooftops, and floating islands around a crystal star core. The last hole&amp;#39;s green is on the
other side of the world, and the only way there is over the Sun.&lt;/p&gt;
&lt;p&gt;Drag back from the ball to aim and shoot; putter, wedge and a &amp;quot;sky driver&amp;quot; that lofts the ball across the middle
of the world. It&amp;#39;s three.js with a fixed-step 240 Hz physics sim on the sphere, so shots are deterministic. The
promo below uses real shots found by a search script, including the hole-in-one on hole 9, rendered frame by
frame from the game&amp;#39;s own engine.&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;/hollow-golf/_media/promo-vertical.mp4&quot; controls playsinline preload=&quot;metadata&quot; style=&quot;display:block;width:100%;max-width:360px;margin:24px auto;border-radius:10px;background:#000&quot;&gt;&lt;/video&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hollow Light</title>
    <link href="https://dev.jeffpelton.com/notes/hollow-light/"/>
    <id>https://dev.jeffpelton.com/notes/hollow-light/</id>
    <updated>2026-09-27T00:00:00.000Z</updated>
    <summary>A three.js simulator of the inside-out &quot;cell&quot; Earth, where the Sun sits in the middle and light bends.</summary>
    <content type="html">&lt;p&gt;What if we live on the &lt;em&gt;inside&lt;/em&gt; of the Earth? The &amp;quot;cell&amp;quot; cosmology says the ground curves up around us, the Sun
hangs in the middle, and the stars are a tiny ball at the centre. The obvious objection: then you&amp;#39;d look up and
see Australia. The answer the model gives is that light bends. Hollow Light lets you turn that bend up and down
and see what the world would look like.&lt;/p&gt;
&lt;p&gt;Bend it to exactly 1 and something neat happens: every sightline becomes an arc through the centre, and the sky
from the ground is identical to the one on an ordinary globe. Sunrises, sunsets, the Moon&amp;#39;s phases and the stars
come out right, computed from real ephemerides for any date. Turn it to 0 and the rest of the planet hangs over
your head. The left view shows the cell from outside with the sunlight&amp;#39;s actual paths; the right is what you&amp;#39;d
see standing there. WASD walks you around the inside of the world.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s plain three.js with a GPU ray-marcher for the &amp;quot;your eyes&amp;quot; view: each pixel&amp;#39;s light is traced along its
curved path until it hits the shell, the Sun, the Moon or the star core. The promo below is rendered straight
from the simulator, frame by frame, with a synthesized soundtrack.&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;/hollow-light/_media/promo-vertical.mp4&quot; controls playsinline preload=&quot;metadata&quot; style=&quot;display:block;width:100%;max-width:360px;margin:24px auto;border-radius:10px;background:#000&quot;&gt;&lt;/video&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Lightbender</title>
    <link href="https://dev.jeffpelton.com/notes/lightbender/"/>
    <id>https://dev.jeffpelton.com/notes/lightbender/</id>
    <updated>2026-09-27T00:00:00.000Z</updated>
    <summary>A light-bending puzzle game inside the hollow world. You can&#39;t move the world, only how light curves.</summary>
    <content type="html">&lt;p&gt;Lightbender is a puzzle game set in the same hollow world as &lt;a href=&quot;/notes/hollow-light/&quot;&gt;Hollow Light&lt;/a&gt;, drawn as a
slice through the cell: the rim is the ground, the Sun floats inside, and light curves toward the middle. You
can&amp;#39;t move the world. You can only change how the light bends, with a dial for the bend itself and a handful of
tools: lenses that pull or push light, mirrors, shades, and patches of hot ground that throw up a mirage.&lt;/p&gt;
&lt;p&gt;Each level asks for light in some places and darkness in others: a village that needs the sunrise, a dragon that
must stay asleep in the dark, two towers that have to see each other across the world. Later worlds make the Sun
move through the day, give it Cyrus Teed&amp;#39;s one-sided face, or send a moon across to cast an eclipse. There are 17
levels, and every one is checked by a solver so the three-star target is always reachable.&lt;/p&gt;
&lt;p&gt;The demo above is a real play-through of four levels, recorded in Chrome.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A place for experiments</title>
    <link href="https://dev.jeffpelton.com/notes/hello/"/>
    <id>https://dev.jeffpelton.com/notes/hello/</id>
    <updated>2026-09-26T00:00:00.000Z</updated>
    <summary>dev.jeffpelton.com is live: one command from build folder to a URL.</summary>
    <content type="html">&lt;p&gt;I keep starting small projects: games, visual toys, one-page tools. Most never needed a server, but each one
still needed &lt;em&gt;somewhere&lt;/em&gt; to live before anyone could try it.&lt;/p&gt;
&lt;p&gt;Now they live here. Any project that builds to static files can run&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;curl -fsSL https://dev.jeffpelton.com/_site/devsite.cjs | node - publish
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and it&amp;#39;s live at &lt;code&gt;dev.jeffpelton.com/&amp;lt;name&amp;gt;/&lt;/code&gt; within a minute, listed on the front page unless it asks not to be.
It&amp;#39;s an S3 bucket behind CloudFront, so it costs close to nothing and needs no babysitting.&lt;/p&gt;
&lt;p&gt;The details are on the &lt;a href=&quot;/hosting/&quot;&gt;hosting page&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
</feed>
