Toni MaxxToni Maxx

Making of / mascot

How a small character got 34 poses.

This is the story of the little character on my site: how I drew him with an AI tool, what went wrong, and how the poses became a small library I can use on any page.

See all 34 poses Read the story

1 / Meet the character

White, round, curious.

Two antennae with eyeballs. Big round ears. Stubble dots on the chin. Yellow overalls with a chest pocket.

I wanted a face for a one-person software studio. Friendly, not a stock icon. Something people remember after the page is closed.

2 / Sheet A, 9 Nov

One sheet, nine poses.

I started with a single sheet: nine poses in a 3x3 grid, drawn in one go with ChatGPT image generation, on a transparent background.

The edges had small yellow and red specks, a halo left over from background removal. I kept the original and cleaned the cut later (chapter 5).

Five of the nine poses are already on my demo page: wave, thumbs-up, cheer, sitting and arms open.

Sheet A: nine poses of the mascot in a three by three grid, from waving to sitting to arms open.
Sheet A, as generated (downsized).

3 / Sheets B, C and D, 11 Nov

A prompt that locks the character.

For every new sheet I started a new chat and attached sheet A as the style reference. The prompt says what must never change: same head, same overalls, same thick outline, flat colours, no shadows, no text.

Sheet B: nine poses with work props such as a laptop, phone, magnifier, light bulb, wrench, rocket, book, envelope and shield.
B / work and tools
Sheet C: nine poses for states and emotions such as shrug, thanks, pointing, confetti, sleeping and surprise.
C / states and emotions
Sheet D: nine poses including a sign, goodbye wave, calendar, clipboard, package, chat bubbles, cloud, chart and handshake.
D / more work and two fixes

Sheets B and C first came back on a flat magenta background, so my own tool could cut them out cleanly. Then I got transparent masters of the same drawings. I used those.

Here is the style-lock part of the prompt. The per-pose descriptions stay private.

Use the attached sheet as the EXACT style reference. Draw the SAME character in the SAME art style, and create a NEW sheet with 9 different full-body poses. CHARACTER (must match the attached sheet exactly) - White round head with two thin antennae on top, each antenna ending in a round eyeball (white with a black pupil). - Big round white ears on both sides of the head, simple outline. - Small stubble dots on the chin and cheeks. - Big black eyes with a white highlight, a big open cheerful smile with a red tongue. - Yellow-orange overalls with a chest pocket and two shoulder straps with round buttons, over a plain white shirt collar area. - White arms with simple rounded hands, white legs, round white boots. - Thick black outline everywhere, flat solid colors only. - NO shading, NO gradients, NO textures, NO shadows, NO glow, NO floor line, NO ground shadow under the feet. SHEET LAYOUT - One square image: a 3 x 3 grid = 9 poses, 3 rows and 3 columns, equal cells. - Background: ONE flat solid pure magenta, hex #FF00FF, everywhere (no gradient, no vignette, no texture, no grid lines). - Each pose is full-body, centered in its own cell, same scale in every cell (same head size), equal margins on all sides, nothing touching the cell edges and nothing overlapping a neighbouring cell. Props stay inside the cell. - No text, no letters, no numbers, no logos anywhere (props must have no writing; screens/books/signs stay blank or use simple abstract shapes). - Props are simple, flat, big, readable, drawn with the same thick black outline and flat colors as the character. Prop colors: use a limited palette (white, light grey, blue-grey, a touch of yellow or teal) so the mascot stays the main subject. - Keep the cheerful expression in every pose unless a pose says otherwise. POSES: (nine poses, each listed with a short description of pose, prop and mood) DO NOT - Do not change the character design, proportions, outline thickness, or colors from the attached sheet. - Do not add backgrounds, scenery, floor, shadows, sparkles outside the cells, speech bubbles or any text. - Do not merge poses, overlap cells, or crop any limb or prop. - Do not use magenta on the character or props (the background color must stay unique). Output the single 3 x 3 sheet at the largest square size available.

4 / When AI got it wrong

Two poses failed. I redrew them.

On sheet C, the sign had its stick across the shorts and a cream colour, and the goodbye pose had one boot with a grey sole and a torso that looked too long. In the magenta version of sheet B, the wrench pose had a closed mouth.

I did not patch them. I asked again: sheet D redrew the sign and the goodbye as D1 and D2, and added seven new poses. Two small things I accepted: on D7 the cloud hides the antenna eyeballs, and on D9 the open hand points sideways.

C8: a cream sign with the stick across the shorts.
D1: a plain white sign, no stick.
C8D1
Drag the slider: sign, C8 and D1.
C9: goodbye wave with a grey boot sole and a long torso.
D2: goodbye wave with proportions that match the other poses.
C9D2
Drag the slider: goodbye, C9 and D2.

The boot, zoomed 3x.

C9 boot with a grey sole.
D2 boot, pure white.
C9D2
Drag the slider: left boot, C9 and D2.
Left: the wrench pose on the magenta sheet with a closed mouth. Right: the transparent master with an open smile.
B5: magenta sheet (left, closed mouth) and transparent master (right, open smile).

5 / From sheet to library

One script turns nine poses into clean files.

  1. Cut by the empty bands Not fixed 418 px cells. The cut lines sit in the middle of the empty bands between poses. 2 bands per direction, every sheet
  2. Normalise alpha Pixels at 250 to 254 become fully opaque; soft edge pixels stay soft. about 396k pixels on sheet B alone
  3. Remove dust Faint specks (alpha under 40%, under 200 px) are dropped, and on sheet A the tiny yellow and red specks too. 36 poses cleaned
  4. De-fringe the edges Soft edge pixels take the outline colour, so no halo shows on dark or light pages. 0 magenta pixels left
  5. Equal head size Each pose gets a scale factor so heads match when placed side by side. reference head 183 px, scale 0.9 to 1.2
  6. Baseline for the shadow The feet row is stored, so the ground shadow sits right under every pose. 35 of 36 have a baseline
  7. Export for the web WebP with alpha: half size and full size. 7 to 13 KB and 15 to 25 KB

The fringe, zoomed 5x

Original cut on the left, cleaned cut on the right. Same pixels, on a dark page and on a light page.

Zoom on the overalls on a dark background: the original on the left shows thin yellow edge lines, the cleaned cut on the right does not.
The same zoom on a light background.

6 / Poses at work

The props do the talking.

Pick a pose. Each one has a page it was made for.

B1 Typing on a laptop. Used on: /services/wordpress-development/ hero; /demo/api/ hero (proposed)

8 / Numbers

The library in numbers.

4sheets
36poses cut
34usable
2redrawn
946 KBall web files
0halo pixels left
  • Sheet A: nine poses generated with ChatGPT image generation (transparent PNG with slightly fringed edges).

  • Five poses go on the demo page (wave, thumbs-up, cheer, sitting, arms open). Sitting versus standing is measured on a 390 px phone: +175 px versus +143 px of hero height; sitting is chosen.

  • Prompts written. Sheets B (work and tools) and C (states) generated on a flat magenta background, then re-delivered as transparent masters. B5 now has an open smile.

  • Two poses fail review (C8 sign, C9 goodbye). Sheet D redraws them as D1 and D2 and adds seven more poses.

  • Library closed: 34 usable poses out of 36 cuts. Cutting, cleaning and web export run by one script.

Sitting or standing on the phone?

On a 390 px wide phone, the sitting pose makes the demo hero 175 px taller than before; the standing wave makes it 143 px taller. I chose sitting: calmer, more grounded.

Mascot images © Toni Maxx. Not for reuse without permission.

Drawn as 3x3 sheets with an AI image tool (ChatGPT image generation), then cut, cleaned and organised by me.