Images,
and the systems
that make them.

artist-led imaging systems by Dominic Hawgood

Creative technologist, bridging creative and engineering. I design, build and consult on AI workflows and systems for studios, agencies, production companies and image‑led brands.

Study 02 — liquid chrome folding into a seam
Typewriter Scans — land shell

01 / typewriter scans

Neandertal — the cave mouth, light dropping through the opening

03 / neandertal

02 / comfy bridge

Restoration Engine — a portrait restored from a low-resolution source

05 / restoration engine

Portrait Performance System — a head in profile, the fitted head's normal map on the left meeting the finished render on the right

06 / portrait performance

Casting Out the Self — the scanned Buddha head, in profile

casting out the self

Chasing Demons in the Night

chasing demons in the night

The Anointing Water

the anointing water

Under the Influence

under the influence

Archive, 2012–2020→

[fig. 1]type specimen · the study →

Liquid Light Engine — type specimen, green glass folding over amber cores, bubbles held in the mass

04 / system · specification system

Liquid Light Engine

contents
7 stills · 1 workflow canvas · 4 documents
models
Gemini 3.1 Flash Image · FLUX.1 [dev] · SeedVR2
made with
ComfyUI · Python / PyTorch · Cursor · Claude Code · Antigravity · Comfy Bridge

Liquid Light Engine is a specification-led system for generating photographic material worlds. It separates material physics, visual language and image intent, then carries selected specifications through validation, compilation and rendering.

Physical and aesthetic constraints are established upstream rather than renegotiated for every image. This provides a stable framework for directing the search, evaluating its results and developing selected materials further.

a written specification in · validation made before inference · an image out

01 / invariant

Physics core

Ten laws govern thickness, reflection, viscosity, trapped air, light, depth and finish. Derived through material research, comparative rendering and regression testing, they define the conditions required for consistent physical behaviour. The core is hash-verified; any drift stops the system at load.

02 / authored

Aesthetic profile

The visual language is encoded as a sealed profile governing lighting, tonal structure, framing, reflection behaviour and exclusions. Different profiles can establish radically different image conditions while the underlying material physics remains fixed.

03 / proven

Specification library

Selected material worlds are formalised as specifications and stored in collections. Once approved and entered into the ledger, a material becomes part of the working library, where it can be retrieved, adapted or used as the basis for further development.

[fig. 2]the workflow canvas
Liquid Light Engine — ComfyUI workflow canvas

One pipeline, four instruments

candidate worlds → measured specification → compiled prompt → judged image

01 author 02 explorer 03 validator 04 compiler 05 renderer

The authoring stage establishes the material intent. A specification may be developed through the system's Claude skill, derived from a brief, retrieved from the library or supplied directly. In every case, the pipeline begins with structured material data rather than an open image prompt.

[doc. 1]specificationJSON
"material": {
  "opacity_mode": "opaque-dark" }
"energy": {
  "viscosity": 9, "state": "churn" }
"reflections": { "regime": "dual" }
"tonal": {
  "composition_note": "focal-event" }

The specification holds the material hypothesis and every behaviour that must survive translation. It is data before it is prose.

[fig. 3]the frame it produced · study 02 →
Black glass under tension, folding around trapped light — the frame the specification produced
[doc. 2]compilationfixed order
  1. material identity + frame logic
  2. colour physics + tonal range
  3. viscosity + reflection system
  4. internal optics + depth
  5. camera + specific exclusions

The Compiler translates one selected specification into continuous render language. Position carries weight; exclusions are assembled only for that world’s actual failure modes.

[doc. 3]installComfyUI custom nodes
custom_nodes/
└── ComfyUI-LLE-Engine/
    ├── LLEProfileLoader
    ├── LLECollectionPicker
    ├── profiles/
    ├── collections/
    └── example_workflows/LLE_default.json

Copy the pack into ComfyUI and restart. The engine bundles its Python requirements; the flagship canvas arrives pre-wired.

[doc. 4]authoringClaude skills
/lle-spec-author     one world, inside a sealed profile
/lle-new-aesthetic   a whole taste, onboarded and sealed

Specifications are not typed, they are authored — against the active profile, by instruments built for that job: one for a single world, one for onboarding an entire new taste. The system's first stage is a tool, not a prompt box.

[pl. i]

Olive glass — bubbles through flowing form
Amber glass — cool-to-warm transmission
Amber glass — warm core in dark mass
Pearlescent fluid — satin fold
Chrome glass — stepped ridges
five specifications, one sealed profile — the physics core unchanged between them · the library →

Validation is not engineering bolted onto a picture practice. Photography is already the study of why something looks the way it does; a system built out of that has to be able to prove itself wrong somewhere measurable. Three places hold that.

Earned

The rules were not authored in advance. Core prompt candidates were proposed against a scored baseline, graded, and promoted only when they beat it on verdict accuracy without regressing the guard cases. Profile laws carry the specific failure that earned them: no rule without a recorded corpse.

Certified

verdict accuracy98.9%

98.9% verdict accuracy on a 31-case labelled core-tier set, measured across three runs with Opus 4.8 as the certification instrument. Certification is bound to that exact prompt, model and settings; production runs on Gemini 3.1 Pro. The validator judges specification text, never image quality.

Sealed

A profile is sealed to the exact physics core it was certified against — the seal is a hash of the assembled manifest. Load it on a different core and the system still runs, but reports the profile as uncertified until it is proven again. Taste is portable; the claim that it was proven is not.

direction · not yet built

A specification is written to survive translation, so it need not end at an image — handed to an agent, the same document should be able to build the material as a CG shader. And the worlds that never shipped are still specifications: kept, they become a library to draw a starting point from on a job. Neither exists yet.