Skip to content

Create a Voxel Model Variant

Add a variant to an existing static voxel-model asset-generation version (asset_kind = "voxel-model", one model sculpted from opaque voxels into a [voxel] volume). Creating a Voxel Model Variant is the full procedure.

A variant varies the brief the model sculpts toward: a tighter palette, a stricter operation budget, an added technique or rule. It may also declare its own [voxel] table, which replaces the case’s volume for runs of that variant. The asset_kind is version-level, and an asset-generation case declares no references, so resolution rejects a reference on the case or on any variant.

  1. Choose a consistent slug (symmetric) and display name (Mirror-Symmetric) naming the constraint the variant imposes. Favour one a reviewer can observe in the regenerated model.
  2. Write specs/<slug>.md as an additive brief, stated as a delta against the common brief (“same subject and volume, except …”) with precise, testable terms such as exact colors, an operation cap, or the required technique. It may reference the common specs. It may not reference another variant’s spec.
  3. Create variants/<slug>.toml, a standalone TOML file whose top-level keys are the variant’s fields, and add its path to the variants list in test-case.toml. The first entry in that list is the default variant.
variants/symmetric.toml
slug = "symmetric"
name = "Mirror-Symmetric"
description = "Same subject and volume, built left/right symmetric using the mirror op."
spec = [{ source = "specs/symmetric.md" }]

A spec entry’s dest defaults to its source with any trailing .hbs removed. Spec entries are additive on the common specs, and within one variant two seeded entries may not share a dest. An asset-generation case is judged on one overall rating, so a variant declares no [[review_item]].

A variant that declares a [voxel] table runs at that volume in place of the case’s. Declare width, height, depth and background exactly as the case does. A brief that has to state its dimensions reads them from the spec-template context as {{voxel.width}}, {{voxel.height}}, {{voxel.depth}} and the inclusive maximum index on each axis, so one .hbs brief serves every size.

Terminal window
tcab seed --test-case <slug> --version <version> --variant <new-variant>
tcab prompt --test-case <slug> --version <version> --variant <new-variant>

Seed and render the new variant, then repeat for the existing variants to confirm nothing else changed, the brief resolves self-contained, and each variant’s effective volume is the one you intended.