BOIN GAMES
MENU

The Blender CLI Builds A Warehouse

Boin Games

The final run of the CLI produced this skyscraper

Ian here.

I’m a few days into building a CLI that will take YAML files as input and construct complete, complex Blender assets for Former Heroes. For various reasons we’re dropping Synty. We’ll need a lot of buildings so our first working test is to create a warehouse.

The v1 CLI is built with Python largely using 5.6 Sol running on a mix of Ultra and High with a great deal of back and forth between us to get it working.

For the purposes of the test we had Imagegen create a reference to work from. You’ll see that above.

Let’s get started.

A list of CLI capabilites below.

Usage: fh-blender [OPTIONS] COMMAND [ARGS]...

Former Heroes Blender tools.

╭─ Options ────────────────────────────────────────────────────────╮
│ --json                   Emit one JSON object.                   │
│ --verbose                Show technical diagnostics.             │
│ --version                Show the release version.               │
│ --blender        <path>  Blender executable override.            │
│ --help                   Show this message and exit.             │
╰──────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────╮
│ doctor  Verify the Blender runtime.                              │
│ asset   Inspect, build, validate, and publish Blender assets.    │
╰──────────────────────────────────────────────────────────────────╯

 Usage: fh-blender asset [OPTIONS] COMMAND [ARGS]...

 Inspect, build, validate, and publish Blender assets.

╭─ Options ────────────────────────────────────────────────────────╮
│ --help          Show this message and exit.                      │
╰──────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────╮
│ inspect    Inspect a Blender asset without changes.              │
│ build      Build a new governed Blender asset.                   │
│ publish    Publish an immutable Blender asset handoff package.   │
│ reconcile  Reconcile an uncertain Blender operation.             │
│ validate   Validate a governed static Blender asset.             │
│ render     Render four read-only asset review views.             │
╰──────────────────────────────────────────────────────────────────╯

I started with a few of the lower level parts we’d need. First arched windows - simplified for this first run. I was happy with this. Sol basically one-shotted this YAML.

An arched window generated by the CLI

Same with the roller door.

A roller door generated by the CLI

We also made a door you can see in the finished building.

Ok, moving on. The first effort below - pretty bad. At this point I am thinking this is going to take a while:

The first warehouse generated by the CLI

Because the CLI can grab screenshots Sol and I can review together. Neither of use were that happy but for a first run from a fairly basic prompt this was good.

At run 10 this is where we were.

The tenth warehouse generated by the CLI

You can see we’re improving. The roller door is now in place, windows surrounds are properly defined, we have a wrap around plinth but the materials are still poor.

Fast forward to run 20 and we’re ready to call this a success. Not a finished asset, not as good as the Imagegen template, but we’re in decent shape.

The twentieth warehouse generated by the CLI

As we’ve been working we’ve encoded what we’ve learned in a SKILL.md file so we’re carrying forward the skills Sol needs to drive the CLI successfully.

We’re stopping here and I’m going to go ahead and work through adding capabilities to the CLI to give us tools we’ve realised we need as a result of this first build.

Boin Games - signing off.

Back to the Logbook