The rule
AI is an input, not the final. Recruiter language for the same idea is “your work must not look like it was generated by AI.” I treat that as an acceptance test, not a slogan. If a still, a frame, or a page would pass as a raw model dump, it is not shipped.
I use AI where it is faster than staring: exploring options, drafting structure, generating a first still, or writing boilerplate I will immediately rewrite. Taste, composition, compositing, and the decision to ship stay mine.
Which models
Only tools I actually use on shipped work are listed. The daily harness is Cursor and Codex. I stay current with the latest AI tools and news, so this table is what I ship with today — not a frozen stack.
| Tool | What I use it for | What I do not use it for |
|---|---|---|
| Cursor | Shipped product builds: IceDraft, Ground Control Dashboard, Rent360, this site. HTML, CSS, JavaScript, TypeScript, Python, and live API wiring. | Blind paste. I read the diff, run the page, and keep the commit. |
| Codex | The other half of the harness: multi-file implementation, refactors, and agent runs against the same written brief. | Unreviewed output. Same rule as Cursor: I read the diff, run the page, and keep the commit. |
| Claude | A model inside those sessions: structure, first-pass copy, and implementation against a written brief. | Voice. Published sentences are rewritten until they sound like me. |
| ChatGPT / Grok | Still generation for the dark-art work: GPT Image in ChatGPT and Grok Imagine, used to explore atmosphere and composition. | The file a client or a store buyer receives. That file is composited and graded by hand. |
| Final Cut Pro / Motion / Premiere Pro | Cut, grade, and motion type. Where a sequence is actually finished. | Generation. They are editors, not models. |
| Pixelmator Pro / Photoshop / Illustrator / Figma | Compositing and grade in Pixelmator Pro and Photoshop; vector work in Illustrator; type, tokens, and reconstructed UI systems in Figma after I design in the browser. | They are not generators. They are where the work stops looking generated. |
Adobe is trained, not claimed as a generator. Two Concordia University certificates — Digital Photographic Imaging and Video Production — plus years of enterprise layout work mean Photoshop, Illustrator, InDesign, Acrobat, and Premiere Pro are tools I can ship in. The Apple apps are what I have licensed at home today. Studio work can be delivered in either stack.
Where AI enters
- Product builds The brief and the constraint come first. Then Cursor and Codex. IceDraft, Ground Control Dashboard, and Rent360 were designed and shipped this way: I set the rule (private leagues, fail-closed metrics, labelled sample data), the model drafts against that rule, and I keep what survives a real browser and a git diff.
- Images A prompt is a sketch, not a delivery. I generate options, pick the one that has the right atmosphere, then rebuild it: mask, grade, crop for desktop and mobile, remove the tells. The store file and any campaign hero have to survive the “does this look generated?” test.
- Copy and names I ask for volume — twenty titles, ten objections, three bad versions of a paragraph — then throw most of it out. Rent360 used this on purpose: AI for divergence, human judgement for the line that ships.
What stays hand-finished
Composition, colour, type, motion timing, and whether the thing is true. If a dashboard number cannot be proven, it is not shown. If a landing-page metric is invented, it is labelled. If a still still looks like a prompt, it goes back into Pixelmator Pro or Photoshop.
Photography on this site is photographed, not generated. Product UI is coded, not a mock pasted from a chat. Those two facts matter more than any model name.
Generation logs
I keep a log so I can do the work again on brief, not so I can decorate a case study. For images the row is: date, project, model, prompt, seed if the tool gives one, settings, output filename, and what I changed by hand. For code the log is the git history plus the Cursor or Codex transcript for that session.
A ComfyUI node graph with LoRA and batch export is the next production pipeline, not something I am pretending is already installed. Until that ships, this is the record I actually keep.
| Field | Example |
|---|---|
| Date | 2026-08-11 |
| Project | Glace Noire Art / Stone Sanctuary — Crypt Stairs |
| Model | ChatGPT (GPT Image) · Grok Imagine |
| Prompt | gothic stone stairwell, wet crypt, single shaft of top light, no figures, cinematic still, dark grain |
| Seed | kept when the tool returns one |
| Output | crypt-stairs.jpg · 4K desktop + mobile crop |
| Hand finish | Grade, dust removal, crop for the contact page frame, watermarked store preview. |
Where this is visible
- IceDraft Pool — product designed and built in the browser, then reconstructed in Figma.
- Ground Control Dashboard — AI-assisted build; fail-closed metrics that a model is not allowed to invent.
- Rent360 — AI for ideation; every invented number labelled on the page.
- Glace Noire — brand campaign; only the published catalog, hub, and store are claimed.
- Digital Art Store — commerce system: 14 collections, dual crops, one Payhip cart, written commercial licence.
- Wet Neon Noir — one still — Alley Pulse. The neon dims.
- Urban Noir — one still — Industrial Plaza. Day ice to night ice.
- Ice Reveal — one still — the /art hero. Ice cracks, the portrait resolves.