CivArchive
    ← All articles
    Published November 8, 2026by signalofsolarum

    I Built a 3D Camper-Van Spaceship to Teach SDXL One Ship (and It Parked It on a Beach)

    18 views1 reactions0 comments on CivitAI0 collected
    loratraining guidesolarumworldbuildingspaceshipcontrolnet3dtrainingsdxl

    Building Solarum, part 5: one LoRA at a time, for a novel I'm writing.

    Niahll, the hero of my novel Solarum: The Continuance Crisis, flies a thirty-year-old hopper called the Dawnhewn: nine metres of cabin that is basically a camper van, a fuel gland nobody can afford to replace, brass mugs stuck to the console with magnets. The spark for it was the camper-van spaceship in Mel Brooks's Spaceballs (1987). A roughneck spacer riding around in what looks like a camper: my millennial heart loved that idea. The Dawnhewn is my own design in that spirit.

    The problem with a recurring ship is that it has to be the same ship in every picture. SDXL will happily draw you a different spaceship every time. So we built one.

    Step 1: a 3D model from the book

    Everything the chapters already say went in: a Kestrel-pattern hull, radiator fins, at least two thrusters, an airlock, a nine-metre cabin up front. Everything they don't say got designed and checked with me: a blunt rounded hull like a camper crossed with a tugboat, a dark window band wrapping the front, worn cream paint with an ochre stripe, mismatched replacement panels, scorch toward the stern.

    Claude wrote the 3D renderer from scratch in Python (no 3D software), and the first renders came back. I took one look and said: it's giving the Spaceballs camper. Which was the point.

    The first 3D draft: six views, fins open and folded.

    Step 2: let SDXL paint over it

    This is the method from my ring-habitat LoRA. Render the model from 30 camera angles (sun, half-light, night), save a depth map of each, and have SDXL repaint every view with a depth ControlNet so the shape stays and the surface gets real. A second, grittier pass added rust streaks, dents and chipped paint. Captions were just the view and the light: jdawnhewn, a small spaceship, side view, in sunlight. (Lesson from my Undercity LoRA: if the caption describes the look, the trigger doesn't learn it.)

    Step 3: what went wrong (three things)

    • The fins vanished. In most of my 30 views the radiator fins were thin slabs seen almost edge-on, and the engines were small in the frame. The LoRA learned the hull perfectly and never noticed the fins.

    • The trigger alone gave a grey "3D model viewer". The guides looked too much like a CG model on a grey backdrop, and SDXL knows exactly what that is. It even added a little garbled caption in the corner, like a screenshot.

    • It wouldn't stay small. "Next to a huge cargo ship" gave me the Dawnhewn filling half the frame. Nothing in the set showed scale.

    Bonus problem: the trigger jdawnhewn was already taken by an older LoRA of mine (people in orange suits at hatches). The ship got its own: jdhship.

    Left: no LoRA. Right: the first version. Top: the grey model-viewer look. Bottom: the "small" ship filling the frame.

    Step 4: fix the model, not the training

    All three problems were in my guides, so that's where the fixes went:

    • Bigger radiator panels, angled so they show from every side, and more rear and engine views.

    • Lighter panel seams, so it looks less like a CG model, plus 3d render, grey background in the negative.

    • A steel girder cradle under the docked views. The novel has docking cradles, and a cradle gives the model a sense of scale.

    The fixed model: big angled panels, lighter seams, and the cradle.

    Then 30 new views, the same two-pass painting, and a retrain on 127 pictures.

    Step 5: it works (and it parked on a beach)

    v2 gives the same ship every time: the rounded cream hull, the stripe, the camper windows, two big engine bells at the back, the radiator panels on their arms. Docked at a station it looks exactly like what it is, a space camper parked in a gantry. And it stays small next to a big ship.

    My favourite test: "a tiny spaceship next to a huge cargo freighter". SDXL read "cargo freighter" as an ocean freighter, so the Dawnhewn ended up parked on a sandy beach beside it, like a trailer. Wrong scene, right ship. That's how I knew the look was learned.

    Left: no LoRA. Right: v2. Docked at a station, the engines from behind, and the beach.

    One more surprise: I released epoch 6, not my usual epoch 4. Epoch 6 was the only save where the radiator panels showed up reliably.

    The short version

    • If a part doesn't show in the guides, it won't be learned. Thin parts seen edge-on are invisible to training.

    • Guides that look like CG teach "CG". Make them look less like a render and say so in the negative.

    • Give it something for scale if size matters.

    • Check your trigger isn't already one of yours.

    Who did the work

    This was a collaboration between me and Claude, Anthropic's AI, working as two sessions on two machines:

    • Claude in Cowork, on my laptop (Claude Opus 5.5): the ship design from my chapters, the 3D renderer and all 60 guide views, working out the three failures and fixing the model, picking the sets, and writing every brief and this draft.

    • Claude Code on my desktop (claude-zinder, Claude Sonnet 5.5): every paint-over pass, both trainings, the tests, catching the trigger name clash, and plain "shown, not judged" reports.

    • Me: the world, the ship, the Spaceballs spark, and the "when I see it, I'll know".

    Everything was painted with Juggernaut XL v9 over our own 3D renders. No other people's art, nothing from Flux, Google or OpenAI, and the film's name never went into a prompt or caption.

    The LoRA: Solarum Dawnhewn XL, https://civitai.com/models/3042072


    Building Solarum is a series about making LoRAs, one at a time, for a novel I'm writing. Earlier parts:

    Archived from CivitAI · Updated November 8, 2026View source