CRASHRHINOCEROS
WORLD BUILDING · PURE JAVASCRIPT · THREE GENERATIONS

RhinoBuilder

I needed believable worlds for a game and discovered I was terrible at drawing them. So instead of getting better at drawing maps, I started building software that could generate them for me.

That idea became RhinoBuilder — and over the years, it became three very different generations of the same basic obsession.

RhinoBuilder progression from text maps to generated worlds
WHY RHINOBUILDER EXISTS

I needed a world map. Drawing one was the problem.

RhinoBuilder grew out of Treason, an Ultima-style JavaScript RPG I started writing as an experiment and then kept expanding because it was fun. Eventually I wanted a much larger world — much larger than I had originally planned.

That created three problems: making the original map had been painfully time-consuming and messy, I didn't think I was particularly good at drawing world maps, and I didn't want to pay someone else to make one.

I looked for software that could generate a map for me, but everything I found was more complicated than I wanted and required installing something. I wanted something simpler and faster, so I decided I could probably write a program to create a world map for me.

So I did.

RhinoBuilder generates random, organic world maps and turns them into data that can be used directly by software. The original version literally built a 3-D block of map levels, with lower elevations corresponding to the terrain above them, while accounting for things such as slope, elevation and terrain type. Later versions kept pushing that same basic idea farther.

The project has always been a utility first. The point was never to make the prettiest map generator. The point was to make something useful, understandable and easy to work with — something that could build the worlds I needed without making me draw every damn square myself.

THEN · NOW · NEXT

Same problem. Better answers.

Across three generations, RhinoBuilder has kept chasing the same goal: more believable geography, more control, and a better way to turn procedural generation into something usable.

GENERATION ONE · ORIGINAL

RhinoBuilder 1

RhinoBuilder 1

The proof of concept. Crude, old-school and important for one reason: it proved that the browser could generate the world instead of making me draw it.

Open RhinoBuilder 1 →
GENERATION TWO · MATURE VERSION

RhinoBuilder 2

RhinoBuilder 2

The idea became a real tool, with a much better interface and substantially more sophisticated procedural world logic.

Open RhinoBuilder 2 →
GENERATION THREE · IN DEVELOPMENT

RhinoBuilder 3

RhinoBuilder 3

The current rebuild. Larger worlds, expanded climate and desert systems, rivers, lava and burn zones, improved polar terrain, and a world editor that is still evolving.

Open RhinoBuilder 3 →
CURRENTLY IN DEVELOPMENT

RhinoBuilder 3 is the next pass.

It isn’t a museum-piece rewrite of the old versions. It is the same idea being pushed forward again: keep what was interesting, fix what was limiting, and see how much stranger and more capable the world generator can become.