CALIBRE CREATOR — CREATIVE AND TECHNICAL PLAYBOOK v1.9

YOUR DELIVERABLE IS A BEAUTIFUL WORKING DIAL
Return a finished, validated C1D and previews. Read contract.json,
DESIGN-STANDARD.txt and the selected movement example first.
Technical validity and visual quality are separate acceptance gates.

WORKFLOW
1. Extract the user's palette, materials, personality and movement. If the
brief is sufficient, proceed without a questionnaire. Choose a coherent
visual direction; never silently add complications or advertising slogans.
2. Plan precise geometry: indices, chapter ring, type, hand lengths, pivots,
registers and date aperture. Keep moving elements out of the background.
3. Create HANDLESS artwork. For realistic engraved, enamel, meteorite, carbon
or metallic surfaces, use image generation when available. Exact ticks,
markers and typography may be overlaid deterministically. Count generated
indices and divisions; replace inaccurate geometry. Use a straight-on circular
asset with no case, no perspective, no hands, no hand shadows and no pinion.
If image generation is unavailable, make deliberate crafted artwork, but do
not describe a plain procedural substitute as photorealistic.
4. Work at high resolution then deliberately reduce to466x466, center233,233,
black corners and important detail within224px radius. Inspect RGB565 output.
5. Use supported polygon hands. presets/hand-library.json provides starting
geometry: copy shapes into the correct six-entry movement template, retaining
its bindings and empty unused entries. Tailor lengths to the actual tracks.
Build contrast with bright and dark facets, not a material flag alone. Lume
must be separate inlay geometry. Derive static inlays and lume_markers from
identical coordinates. Check doubled indices. No approximated lume alignment.
6. Run the builder with both preview options. Then run inspect_dial.py on the
exported pack to verify bytes and create a native day/lume/cardinal review
sheet. Inspect both the466px preview and sheet; revise visible weaknesses.
7. Apply DESIGN-STANDARD.txt before delivery. Preserve approved compositions
when refining. Do not claim hardware testing or invent a visual quality score.
8. Return C1D, day preview and lume preview as simple downloads. State actual
functions and minimum firmware for any extensions used. Do not ask the user
to edit JSON. If code execution is unavailable, say so and supply PNG and
valid JSON for the website Advanced builder; never pretend a pack was built.

PREVIEW HONESTY
The desktop renderer approximates metal finishes; firmware shading remains
authoritative. Final previews must use packaged RGB565 pixels and the same
hand polygons. Never present a concept with unbuildable hands as the final
preview. Decorative gears are static, never a working simulated movement.

COMMANDS
python custom_dial_creator.py --image dial.png --metadata dial.json --output dial.c1d --preview preview.png --lume-preview lume.png
python inspect_dial.py dial.c1d --sheet review.png

TECHNICAL REFERENCE
CALIBRE CREATOR — AI HANDOFF GUIDE v1.4
For Calibre One / CalibreOS Beta 8

Use your own AI assistant and its account/tokens. Calibre Creator makes no hosted AI calls.

WORKFLOW
1. Select Time, GMT or Chronograph. Download the toolkit or copy the complete brief from Calibre Creator. Upload this guide, contract.json, the matching examples/<movement>.json and handless PNG to your AI assistant. Plain text and JSON are the most reliable sources.
2. Describe the dial you want and ask for valid metadata within the selected template. The toolkit does not impose an original-design-only or replica-specific restriction. Users are responsible for respecting intellectual property rights; see the notice below.
3. Background: exactly 466 x 466 PNG, opaque black corners, centre (233,233). Keep important detail inside radius224. No hands, hand shadows, moving pinions, live date numerals or changing complications baked into artwork.
4. Import the PNG and JSON at calibre-studio.com/creator.html. Inspect day/lume, all hands, date and chronograph behavior. Build the C1D only when validation passes.
5. Open your C1 web interface with the browser code from Advanced Options > Wifi Settings & Updates. In Calibre Store > Calibre Creator, select the C1D, choose one of five extra slots and upload. Save a C1D backup before replacing a slot. Built-ins do not use these slots.
6. Pre-made compatible C1D files can still be sideloaded. Custom files use C1USER01 and need no private signing key. Signed Store releases are verified by C1 and use the Store upload section.

SUPPORTED MOVEMENTS
Time: hour, minute, continuous central running seconds.
GMT: same time hands plus a 24-hour hand, offset -23..+23 hours relative to local time.
Chronograph: hour/minute time; central elapsed seconds; 12-hour recorder; 30-minute jumping recorder; running seconds (8 steps/second). Tap C1 to start/stop; double-tap while stopped to reset. The recording duration is independent of wall-clock time.
Arbitrary code, scripts, image-layer hands, moonphase, calendars, rotating discs, fractional timers and other new complications are not supported by Custom Dial v1. They require a separately developed firmware capability, not just AI-generated artwork.

HAND BINDINGS — exactly six entries, including empty unused hands
Time: [0,1,2,3,4,5], entries3..5 shapes empty.
GMT: [0,1,2,10,4,5], entries4..5 shapes empty.
Chronograph: [0,1,2,3,4,5], all six may contain shapes.
0=hours/12; 1=minutes/60; 2=central seconds (elapsed for chrono); 3=elapsed hours/12; 4=elapsed whole minutes/30; 5=running seconds/60; 10=GMT hours/24.
Pivots and background coordinates are pixels0..465. Each hand holds0..10 shapes. Each shape has3..12 local points, -230..230; forward is negative Y. Shapes rotate clockwise; drawing order3,4,5,0,1,2. Later polygons cover earlier polygons. Each shape has fill #RRGGBB and optional boolean lume. No bitmap hands.

METADATA
Top-level: schema1, id custom- followed by lowercase a-z0-9/hyphens (total8..63 bytes), name1..79 UTF8 bytes, version1..23 UTF8 bytes, movement time/gmt/chronograph, chronograph boolean matching movement, lume boolean, lume_markers array, hands array, optional date. JSON max16384 UTF8 bytes. No unknown/duplicate keys, NaN, Infinity, null bytes or control characters.
Lume markers: up to16 polygons, each3..12 absolute points0..465. Luminous hand shapes need lume=true. Empty marker array when lume=false.
Date: centre_x22..444, y0..438, colour #RRGGBB, font=calibre-sans. The built-in Calibre sans date atlas defaults to44x28. Optional width20..60 and height14..40 require Beta8.0.3 and must fit the screen. Optional cyclops:true requires Beta8.0.2 and tighter lens bounds below. Leave background blank for the live date.
Full schema constraints are in contract.json and the Python builder.

BUILD LOCALLY (optional)
Python3.9+ and Pillow required.
python -m pip install -r requirements.txt
python custom_dial_creator.py --help
python custom_dial_creator.py --image examples/time.png --metadata examples/time.json --output my-dial.c1d The browser Creator can build without installing Python.

FORMAT
C1USER01 schema1, 448-byte prefix: 64-byte header +384 zero bytes. Offset8 schemaLE32;12 metadata lengthLE32;16 RGB565 length434312LE32;20 layers0;24 SHA256(metadata+pixels)32bytes;56 and60 reserved0. Compact UTF8 JSON at448, then466x466 RGB565 little endian. SHA is integrity checking, not a trusted release signature. Do not modify an exported pack's bytes.

TEST BEFORE SHARING
Check hand pivots, all corners,12/3/6/9 positions; date1/8/10/28/31; GMT midnight wrap; chronograph start/stop/reset and61 seconds; day/lume. Firmware rendering is authoritative; artwork details and antialiasing may differ slightly from the browser.

DESIGN CHOICE AND RESPONSIBILITY
Choose the dial style and artwork you want within the supported technical format. Decorative gears in Contour are static artwork, not a simulated working movement.

USER CONTENT AND INTELLECTUAL PROPERTY
Please do not infringe copyright, trademarks, design rights or other intellectual property rights. You are responsible for the dial designs, artwork and other material you create, upload, use or share, and for obtaining any permissions required. Calibre Studio does not review or endorse user-created designs or grant rights to third-party material. To the fullest extent permitted by law, Calibre Studio accepts no liability for infringement arising from user-created or uploaded material. Nothing in this notice excludes liability that cannot lawfully be excluded or limits your statutory rights.


TOOLKIT v1.4 — OPTIONAL DATE SIZES AND CYCLOPS
Standard custom dials work on Beta 8.0.0+. A date with cyclops:true requires Beta 8.0.2+. Any date using an explicit width or height requires Beta 8.0.3+.
Date metadata may include width (integer20..60, default44), height (integer14..40, default28), and cyclops (boolean, defaultfalse). centre_x is the horizontal centre; y is the TOP of the rendered numeral, not the window centre. The fixed44x28date atlas is scaled to the requested rectangle. Keep the entire glyph within the screen and the blank window. Do not paint live numerals into the static background.
For cyclops:true, centre_x must remain37..429 and y17..421. The moving hands are magnified as they pass beneath the lens. Provide compatible glass artwork around the date; only the hands are distorted by the runtime lens. Do not bake a moving hand into the background.
Optional example: "date":{"centre_x":365,"y":226,"width":30,"height":20,"colour":"#FFFFFF","font":"calibre-sans"}.
For normal dates, start with the default44x28unless the window needs a smaller or larger numeral. Validate with the included builder. Tell the user the required firmware for any extension used.
The convenience Python preview is illustrative; the website and C1 provide the moving hands/cyclops preview. Chronograph registers must be checked at reset and while running; align the local negative-Y hand axis exactly with its scale's zero/30 marker.

TOOLKIT v1.4 — ANGLED DATES
Optional date.rotation is an integer from -180 to 180 degrees clockwise, default 0. It rotates the live numerals around the centre of the configured date rectangle, not around the clock centre. Requires CalibreOS Beta 8.0.4+. The entire rotated rectangle must fit within the466x466screen and the aperture. Draw the background aperture at the same angle; leave it blank for live numerals. Example: "date":{"centre_x":326,"y":307,"width":28,"height":20,"rotation":45,"colour":"#FFFFFF","font":"calibre-sans"}.

HAND MATERIALS — BETA 8.0.5
An optional material on a hand polygon selects polished-steel, brushed-steel, turned-steel or blued-steel shading. The fill colour sets its base tone. Keep luminous inlays as separate shapes with lume:true; these remain white by day and glow with the hand. Omit material for a flat fill or compatibility with older firmware. These finishes require CalibreOS 1.0.0-beta8.0.5.

APPROVED CORE HAND PRESETS — CALIBREOS BETA8.0.6
Optional core_hands selects one compiled preset: studio-gmt-v6 for GMT movement; azulejo-gold-v1 or pistachio-rose-v1 for time movement. These require centred pivots[233,233] for all hands and are not chronograph presets. New core-hand packs require CalibreOS1.0.0-beta8.0.6. Standard custom designs can still omit this field and use existing polygon materials. Never add the signed-legacy hand_style, calendar or date_wheel fields to an ordinary custom pack.
Preview caveat: the Python convenience PNG renderer illustrates polygon hands only; use the production Wasm live preview to inspect compiled core hand presets.

BETA8.0.9 UPDATE
Optional date.cyclops_scale is an integer50..100 (default100);80 reduces the lens width and height20percent around its unchanged centre. Requires CalibreOS Beta8.0.9. Existing presets remain unchanged. The new azulejo-pearl-v3 core_hands preset uses time movement, central pivots and separately rotating exact approved mother-of-pearl collection hands; requires Beta8.0.9. Pistachio visible date ink is centred for every date. Older C1D presets remain supported.
