Habitat
Habitat is an experiment to validate one of the non-standard world topologies that come standard with the @hello-worlds library. It’s inspired by scifi, especially the Cycler habitats featured in Kim Stanley Robinson’s book 2312, or O’Neill habitats featured in other works.
Making a world wrap around itself was the primary motivator behind the hello-worlds library. I wanted to make a game setting based inside a Hollow-Earth, basically an inverted-sphere planet (such as featured in the opening intro to the Game of Thrones tv show). I’ve had some success with that, but I got distracted by beautiful non-real-time renders of O’Neill habitats, and decided to create a “vignette” of what it might look like to have a real-time rendered virtual world inside such as setting. After all, it should be much easier to create a virtual world when it’s small and can be rolled-up, right???
Well, nope.
Some considerations and bespoke solutions inside this project include (in various states of done-ness) a volumetric atmosphere solution which considers the shape of a cylinder (atmosphere gets thinner towards the cylinder-center-line), a cylinder-based camera solution (you always point outwards), and an interesting down/upsampling pipeline to optimize performance of the ray-marched volumetric atmosphere (not related to the cylinder, but nevertheless awesome).
Some other thoughts about cylinder worlds à la O’Neill cylinders:
They wrap nicely along one axis, so you can use tiling terrains, especially as you can easily have land areas which are squares (which would not be true of Halo-type ring wolds, for example):
Here’s some more photos, I think it’s a pretty project so far :)
A look at what realistic tiled heightmaps can get you:
![A look at what realistic tiled heightmaps can get you](/habitat-screenshot-2.png.webp)
A look through the downsampled atmosphere shader:
![A look through the downsampled atmosphere shader](/habitat-screenshot-1.png.webp)