WorkRésuméContact
All work
Personal project · macOS app · Live

Creeza

A Mac app for designing with AI.
Named for creez, French for "create," and sprezzatura, the Italian art of making hard things look effortless.

Last updated 18 August 2026

This page is live

Work in progress

Creeza is still being built, so this case study writes itself using AI. It regenerates from the project description in my CLAUDE.md and from screenshots the app captures automatically as features land. I'm prototyping, exploring and validating as I build, so some of what you see here is an idea being tested rather than a finished decision. I direct the page like an editor, shaping it by taste and giving notes; Claude Code does the rest. This is the state of the work today, not a retrospective written after the fact, so come back often as the project keeps moving.

RoleDesign & Build
TimelineJuly 2026 – Present
PlatformmacOS · SwiftPM
FocusDesign tools · AI

One document, end to end. A song is split into its stems on the left; those stems drive counters and an animation curve, which drive the three artboards on the right. Every step shows its own result.

Overview

You drag in the things you need, a camera, a photo, a model, a sound, connect them with cables, and every step shows its own result right there on the canvas. No render step, no preview window, no waiting to find out what you made.

It's the directness of Quartz Composer and Origami, pointed at the AI era. And what you build isn't a mockup: the same file runs inside a real app, so the thing you tuned is the thing that ships.

Editions

Two builds, one file format

Creeza

On the App Store. The whole library, everything on your Mac, everything in the cloud.

Creeza Pro

Adds the terminal, the Claude-powered canvas assistant that can scaffold and build real projects, command-line patches, and stem separation.

Both editions open the same files. If a document uses a Pro patch and you're on the App Store build, it stays put and shows a badge, nothing is ever quietly removed from your work.

The problem

Prompt in one app, download, re-import, discover it doesn't work in context, start again. How a model behaves inside a real interface is the part you never get to feel.

How Creeza solves it

One local canvas where the models, the media and the layout are the same document. Wire an asset into the thing that uses it and see the result at full fidelity, instantly.

Generate

AI makes the assets

Images, sound, voice, video and 3D are made right next to the layout that uses them. No round trip, no re-importing, no naming files.

Read moreRead less

A lot of it runs on your Mac with Apple's own models: no key, no account, nothing metered. When you want a particular look or voice, the same patch reaches out to OpenAI, Gemini, Stability or ElevenLabs, so switching provider is one connection rather than a rebuild.

Several attempts can live side by side. Keep four versions in one place, flip between them, and the layout updates around whichever one you're looking at.

An Option patch holding four colour variants of the same image, feeding a phone-shaped View
Four goes at the same image, held in one place. No duplicated layers, no version names.
Credits

Pay only for what leaves your Mac

Anything Creeza can run on-device, or on Apple's own cloud, is free and unmetered. Credits cover the third-party services, the image models, the music models, the large language models, and only when you actually call one.

The balance sits in the toolbar with a running log of what spent it, so the cost of an experiment is visible while you're making it rather than at the end of the month. Credits never expire, they're tied to your account, and they survive a reinstall.

Read moreRead less

Buying is an App Store purchase, so it's Face ID or a password and done, on the payment method already on your Apple Account. No card entry, no billing portal, no per-service API keys to manage, and family sharing and refunds work the way they do for anything else you buy from Apple.

Every new account starts with 500 credits, which is enough to find out whether the paid models are worth it before spending anything.

The credits popover in the Creeza toolbar showing a 500 balance, a buy button, and a recent activity log
The balance lives in the toolbar, one click from what it was spent on.
Handoff

Your file is the product

Most prototypes get read once and rebuilt from scratch. This one gets dropped into the app and runs, on Mac, iPhone, Apple TV or Vision Pro.

And it runs alive. The embedded file isn't a static render: pulses tick, animations play, the music actually sounds, and a tap on the host's screen reaches the graph.

Read moreRead less

One click, File ▸ Send to Xcode, wraps your document in a ready-to-run host project (Pro). Nothing is converted or regenerated, so when the timing feels off two weeks later you open your file, fix it, and hand back the same file.

CreezaKit is an early runtime, v0, but it's real: three sample hosts — a Mac app, an iOS tab app and a tvOS app — load the same documents today. Samples, not products. Touch goes through an Interaction patch that turns a tap on a layer into Down and Tap signals, even inside collapsed components. Both app targets build with zero compiler warnings, if you're the kind of engineer who checks.

It's a proper Mac app about it too: tabs, recents, duplicate, rename, autosave. Documents carry their own media inside, so sending one to someone just works.

The Send to Xcode dialog, with App Name, Bundle ID, Platform and View fields over the underlying graph of Playback, Dictation and View patches
Send to Xcode: name the app, pick the platform and the view to publish, export.

CreezaKit

Engineers add one Swift package and point it at the document. CreezaKit renders the file natively, exposes its inputs as ordinary Swift properties and its outputs as callbacks, so wiring a Creeza scene into an existing screen is a few lines rather than a rebuild. The graph stays the source of truth, which means designers keep iterating on the same file after integration.

The picker

Say it, don't hunt for it

Drop a cable in empty space, say what you want, and the right thing is already at the top of the list.

And now see it, too: results come in two columns, every patch wears its own symbol, and AI patches have a category of their own — so browsing works as well as asking.

Read moreRead less

It reads the cable before you type. Two images in means image processors rank first, text tools sit below, and anything incompatible never appears at all.

Hit return on the top result and it lands wired up, inputs connected, ready to run. Dictate it instead of typing if you'd rather, or leave the model on Auto and let Creeza pick.

The AI category sits alongside the domain filters rather than replacing them, and each symbol comes from the patch's own definition, so the picker, the canvas and the docs all agree on what a thing looks like.

Two images cabled into a search field reading “turn this into night time”, with Edit, Option, Vision, Extract, Extend and Remove ranked below
Two images on the cable, a plain-language request, and a ranked shortlist, Edit first, because that's what the sentence describes.
The patch picker with All, Inputs, Processors and Outputs filters, a row of category icons with AI selected, and a two-column results list
The AI category sits alongside the domain filters, and results come in two columns, each patch wearing its own symbol.
The library

What you get to play with

Media & AI images

Make an image, edit one, extend past its edges, remove something and heal the gap, lift a subject off its background, upscale, crop, glitch. Turn a still into 3D, or into motion.

Text & understanding

Describe what's in a picture, pull the text out of one, translate copy, or dub a whole video, and turn speech into text. Claude for everything else (Pro).

Sound & music

Speak text aloud, invent sound effects, compose and remix music, recognise sounds. Read a track's beat, key and structure so your interface can move with it, then trim, pitch, crossfade, wash it out with one knob, or stutter audio and video in time. Split a song into stems (Pro).

Inputs

Camera, photo library, microphone, your music, the keyboard, taps and presses on any layer, and your AirPods, which will tell you where someone's head is pointing and when they nod. Drop or paste in anything else.

Logic & timing

Count, compare, switch, sample and hold, pulse, loop, and draw your own animation curve on a timeline. If you know Origami or Quartz Composer, this part needs no introduction.

Output & layout

Layers, video playback you can drive from the graph, an Apple Maps layer whose camera any patch can fly, artboard frames with auto-layout, and comments for the next person who opens the file.

Model & service coverage

Apple's on-device models, OpenAI, Anthropic, Google AI, ElevenLabs, Stability AI, BytePlus ModelArk and LALAL.AI, all behind the same kind of patch, so swapping one for another is one connection.

Vision

It can see what you dropped in

Hand Creeza an image and it will tell you what's in it, read the text off it, and find the subject. Your layout can then react to the picture instead of ignoring it.

Read moreRead less

That description is just a value, so it can caption the image, feed the next prompt, or decide which of three layouts an asset belongs in. Point it at a folder and the same graph sorts and re-lays every file in it.

Extract pulls the words out of a screenshot or a photo, which makes real content easy to get at when all you have is a picture of it.

It runs on your Mac, so you can throw a hundred images at it without watching a spinner or a bill.

A Vision patch prompted “Describe this in detail” on a photo of a teddy bear atop a snowy mountain, outputting a full descriptive caption
Ask it to describe what it sees, and the caption comes back as a value, ready to wire into whatever's next.

Vision doesn't stop at the media you drop in. Creeza captures the canvas itself and reads it the same way, so the picker knows what you're looking at, not just what you typed.

Read moreRead less

When a request doesn't match anything in the library, the picker falls back to Ask Creeza: same Vision path, reasoning over what's actually on the canvas rather than a keyword guess, so it can match you to a patch, or invent a new one on the spot.

A picker search for “how can I improve upon this document?” with zero library matches, falling back to an Ask Creeza row offering to match it to a patch or invent a new one
Nothing in the library fits, so Ask Creeza takes over, reasoning from what's on the canvas rather than the words alone.
Music understanding

Motion that lands on the beat

Drop in a track and Creeza hears it. Motion doesn't approximate the music, it's driven by it.

Read moreRead less

Tempo, key, downbeats and where the sections change all come out as values you can wire into anything.

No counting frames, no nudging keyframes until it feels close. Swap the song and the timing follows.

Beat Repeater's video monitor went through three implementations in a day. Seek-driven playback made the knobs buttery but stuttered on fine grids; swapping composition items keeps repeats locked to the grid at 1/8 and below, at the cost of a less smooth knob. Timing won, on purpose. Its ports are grouped Body, Action and Advanced, and it exposes a Time output other patches can consume.

Beat Repeater with tempo, grid and repeat count as ordinary inputs, the same numbers the Music patch is already producing.

Music

The listener. Beat, BPM, key, and the structure of the track (intro, drop, chorus) read on your Mac, no upload. Its outputs are the clock everything else runs on.

Beat Repeater

DJ-style stutter, but for picture as well as sound. Set the grid and repeat count and it chops audio and video together, always in time. A Play button auditions it in the patch, and an Enable switch A/Bs it against the dry signal.

Fade to Grey

One knob that drains a scene: colour, brightness and audio pulled down together. Tie it to the beat for a build, or to a gesture for a mood.

Effects

Treatments you can dial in

Crop, upscale, lift a subject out, drain the colour, or run it through Glitch for real signal damage. Every control moves live under your hand.

Read moreRead less

Effects chain and stack, and a chain you like becomes a component with only the knobs you care about exposed. Point it at every variant instead of repeating the same treatment by hand.

Any control can be handed to something else: a beat, a head turn, a slider, a playhead. Glitch on the downbeat, colour draining as a scene ends, a mask tightening as someone leans in.

Nothing is baked in. Change the source image weeks later and the whole treatment re-runs on it.

A crop and treatment chain wrapped into a component, reused across every variant.

Voice, translation and dictation

Words as live material

Speech becomes text, text becomes any language, and either can be spoken back in a voice you choose. Copy stops being placeholder.

Read moreRead less

Localisation becomes something you can see: run your layout in six languages and watch which strings break it, rather than finding out after handoff. Dub a whole video and the transcript, the timing and the voice all come from the same file.

Feed a line to a voice and hear it read. Hear how a prompt or an empty state actually sounds before anyone books a session.

It runs on your Mac, so nothing is uploaded and there's no wait between hitting play and reading the result.

Playback and Dictation patches feeding a View patch with stacked text and image layers

Playhead position, transcribed text and the frame itself, all readable on the canvas at once.

Layout

Easy to use layout

Views are real artboards. Drag things around, resize them, stack them, and the layout holds while the contents keep changing.

Read moreRead less

Because every asset arrives from the graph, rearranging is cheap: nudge an image and the version behind it follows, swap the source and the composition survives.

Even Apple Maps is a layer now, not an app. The map renders in the composition and resizes like anything else, and latitude and longitude are just ports, so a language model extracting a place from text, a slider or a beat can fly the camera. It's MapKit on the same patch template as every other visual, which is why it composes instead of being a special case.

Comments sit on the canvas next to it all, and they hold pictures rather than just words, so the reasoning for a choice lives beside the choice.

Layers composing a view, with a comment holding the references the layout was judged against.

The Viewer

Watch it while you build it

Your composition plays full-size in a floating Viewer while the graph stays under your hands. ⌘3 brings it up, ⌘F takes it full screen.

Drag any corner and it resizes from that corner, then glides back to its home corner instead of snapping. Controls hide at rest, so nothing sits between you and the work. And when the motion is right, you don't screen-record around the chrome: the Viewer itself captures stills and records video of the composition.

Read moreRead less

Opening and closing are instant, with no window-server churn. Resize is computed in screen space, so the grip stays under your cursor with no flicker. Capture moved out of the View patch and into the Viewer's header, where the recording actually happens.

The Viewer also survives stepping inside a component: edit a nested interior while the outer composition keeps playing.

The floating Viewer window with header controls, showing a phone-shaped artboard reading “Hellooooo” against a blurred desktop backdrop
The Viewer, floating over the desktop with its own header, controls hidden until you need them.
How it works

The canvas is the product

A canvas that behaves

Alignment guides, distance rulers, marquee select, smooth pan and zoom, real undo. Number fields keep the decimals you type. Pull a cable into empty space and Creeza offers only the things that could actually connect there.

You can see everything

Images, video, spinnable 3D, text, colour, numbers, each step previews itself in place. Click any result to copy it out. Even the cables tell you what's flowing through them.

Most of it is free

A large part of the library runs entirely on your Mac. No API key, no account, no per-image cost, just work.

The big models, when you need them

OpenAI, Claude, Gemini, ElevenLabs, Stability and more are a patch away. New models show up without waiting for an app update.

Ask, and it wires itself

Describe what you're after and Creeza drops in the right pieces, or writes a brand-new patch when nothing in the library fits.

Tidy up as you go

Wrap any messy cluster into a single reusable Component, name the few knobs that matter, and step back inside whenever you want to change it. Those named knobs are also what an engineer hooks into later.

Generated patches

Working on it

A Music patch and counter driving a full-bleed product artboard
A track's structure driving the artboard directly, so the timing you feel in the room is the timing in the file.
Built-in side panels

The rest of your desk, docked

Drag a cable out of the graph and drop it into a chat. The image you just made becomes the thing you're asking about.

Read moreRead less

Left: Claude, ChatGPT, Gemini, Meta AI, Grok and Weave, live and always loaded, so switching never loses your place.

Right: Figma, Google Stitch and Claude Design, or a real terminal if you want one (Pro).

Want the full story?

I'll walk you through it.