Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd4b834c14 | ||
|
|
321ff0ed97 | ||
|
|
352da2765b |
138
cast-designs/README.md
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
# Cast designs: the shortlist
|
||||
|
||||
Seven characters get real designs before anyone else in the swarm does.
|
||||
The operator, 2026-10-10: "none of these guys are gonna make it to the swarm.
|
||||
I want Libby, Heimdall, Kiko, Aqua, Weksa, Nibu, Eureka."
|
||||
|
||||
| Character | Body (repo) | Key colour | File |
|
||||
|---|---|---|---|
|
||||
| Eureka | the Mind herself | ember orange `#ff8a2a` | [eureka.md](eureka.md) |
|
||||
| Libby | CultLib | reading-lamp green `#2fbf71` | [libby.md](libby.md) |
|
||||
| Heimdall | Heimdall | cobalt `#3466ff` | [heimdall.md](heimdall.md) |
|
||||
| Kiko | StreamPixels | stream magenta `#ff3fa4` | [kiko.md](kiko.md) |
|
||||
| Aqua | AquaSynth | tank cyan `#22d3e6` | [aqua.md](aqua.md) |
|
||||
| Weksa | weksa | terracotta `#d9483b` | [weksa.md](weksa.md) |
|
||||
| Nibu | AetheriaLore | violet `#9a6bff` | [nibu.md](nibu.md) |
|
||||
|
||||
Each file holds three design directions (A, B, C) that differ in silhouette
|
||||
and concept, a ready-to-run design-sheet prompt per direction, and the
|
||||
portrait set spec. Facts behind the style rules are in
|
||||
[research/style-prior-art.md](research/style-prior-art.md).
|
||||
|
||||
## What failed, so it is not repeated
|
||||
|
||||
The sticker rig (`self/cast-stickers`) drew every character on one shared body
|
||||
and swapped hair and props. At thumbnail size all 24 read as the same figure in
|
||||
different wigs: tiny full bodies, no dominant shape, no hook. These designs
|
||||
start from the opposite end: silhouette first, one hook per character, and the
|
||||
face large enough to carry the expression.
|
||||
|
||||
## Style target
|
||||
|
||||
Chibi anime **bust portraits** in the manner of Persona dialogue UI: head and
|
||||
shoulders, angled toward the text box, one expression per line of dialogue,
|
||||
inside a graphic frame keyed to the character's colour. Persona Q is the
|
||||
series' own precedent for this: Soejima redrew the P3/P4 casts as
|
||||
super-deformed and kept each character's standout features exaggerated so
|
||||
they survived the shrink.
|
||||
|
||||
- Proportions: 2.5 heads tall on the full-body sheet (the 2 to 3 head chibi
|
||||
band). In the bust, the head fills 55 to 65 percent of frame height.
|
||||
- The bust is the product. The full-body turnaround exists to lock the design;
|
||||
it is reference, not a sticker.
|
||||
|
||||
## Shared rules: what makes the set cohere
|
||||
|
||||
The set coheres by **rendering**; the characters differ by **shape and hue**.
|
||||
|
||||
1. **Line.** Bold dark outline, outer silhouette line about twice the weight of
|
||||
inner lines. Line colour is a dark shade of the character's key colour, never
|
||||
pure black.
|
||||
2. **Rendering.** Flat cel shading: one base tone and one shadow tone per
|
||||
material, plus a single rim light in the key colour on the side away from
|
||||
the light. No gradients on skin, no texture, no painterly blending, no pixel
|
||||
art, no 3D look.
|
||||
3. **Eyes.** Large anime eyes with two specular highlights, same construction
|
||||
for everyone. Eye shape (round, almond, sharp, hooded) is a per-character
|
||||
choice and part of the design.
|
||||
4. **Framing.** Bust cropped at mid-chest, three-quarter view, character faces
|
||||
screen right toward the text box; light from upper left. The baseline (shoulder
|
||||
line, eye line) stays fixed across a character's whole expression set so the
|
||||
portrait does not jump between lines.
|
||||
5. **Palette discipline.** Each character owns one key hue, fixed across all
|
||||
three directions, and no two characters share it. A direction's palette is 4
|
||||
to 6 colours: key, a dark of the key for line and deep shadow, one skin or
|
||||
body tone, one neutral, one accent. The accent may borrow another
|
||||
character's hue only if it covers under 10 percent of the figure.
|
||||
6. **UI frame.** Portraits sit on the GameCult ground `#07111a` in a
|
||||
parallelogram card, edge-lit in the character's key colour, nameplate in IBM
|
||||
Plex Mono uppercase tracked wide (the brand label face). The frame is
|
||||
composited, never rendered into the image.
|
||||
|
||||
## What keeps them from being samey
|
||||
|
||||
- **One dominant shape language per character**, and each one different:
|
||||
Libby squares, Heimdall arcs and spikes, Kiko stepped pixels, Aqua circles,
|
||||
Weksa flowing lines, Nibu swept wedges, Eureka a spark on a circle.
|
||||
- **The hook is above the shoulders.** A bust only shows head and shoulders, so
|
||||
every hook is hair, headwear, ears, a held prop raised to the face, or a
|
||||
collar. A hook on the boots does not exist in this product.
|
||||
- **Silhouette test, cast-wide.** Fill each bust black, shrink to 48 px, put all
|
||||
seven side by side. Every one must be nameable. If two collide, the later
|
||||
direction changes, not the rendering rules.
|
||||
- **No shared body.** Body type, head shape, eye shape and hair mass are
|
||||
per-character design decisions written into each direction.
|
||||
|
||||
## Render process
|
||||
|
||||
From `~/.claude/doctrine/images.md` and the concept-mill rule
|
||||
(image-prompts-test-hypotheses):
|
||||
|
||||
1. **Every render tests one stated hypothesis.** Each prompt below states it.
|
||||
Record hypothesis, variable, observation and the operator's verdict in a
|
||||
results table beside the renders.
|
||||
2. **One variable per variant, against a named baseline.** The first render of
|
||||
a direction is its baseline. A follow-up changes one thing (hook size, palette
|
||||
accent, the style block's line clause) and says which.
|
||||
3. **The exact prompt is saved beside each image**, same base filename, `.md`
|
||||
with the generation mode or model recorded. An image without its prompt is
|
||||
not a deliverable.
|
||||
4. **Renders are from scratch.** Carry what worked forward by rewriting the
|
||||
prompt, never by editing a prior render or feeding it back as a reference.
|
||||
5. **The style block is not sacred.** When a round points at a clause, edit it,
|
||||
name the edit as that round's variable, and promote what holds back into this
|
||||
README.
|
||||
|
||||
Suggested layout: `cast-designs/renders/<character>/<direction>-r<round>-<variant>.png`
|
||||
with its `.md` prompt twin, and `cast-designs/renders/<character>/results.md`.
|
||||
|
||||
### Style block v1 (inlined in every prompt)
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions,
|
||||
> oversized head, large expressive anime eyes with two highlights, bold clean
|
||||
> outline thicker on the outer silhouette than on inner lines, line colour a dark
|
||||
> shade of the key colour, flat cel shading with one shadow tone and one rim
|
||||
> light, no gradients, no texture, no pixel art, no 3D render. Character design
|
||||
> sheet on a plain off-white background: on the left a large bust portrait, head
|
||||
> and shoulders cropped at mid-chest, three-quarter view facing right; on the
|
||||
> right a full-body chibi turnaround, front, three-quarter, side and back, neutral
|
||||
> standing pose, all at the same height. No text, no logos, no watermark.
|
||||
|
||||
## Order of rendering
|
||||
|
||||
Round 1 renders one direction per character, chosen for the strongest
|
||||
above-the-shoulder hook, to test the style block itself across the cast before
|
||||
spending renders on alternatives. Each character file ends with its reason.
|
||||
|
||||
| Round 1 | Direction | What it tests |
|
||||
|---|---|---|
|
||||
| Aqua | A, Goldfish Idol | a non-humanoid under the shared rendering rules |
|
||||
| Weksa | A, Speech Bubble | a symbol-shaped hair mass as the hook |
|
||||
| Heimdall | A, Horn Bearer | an asymmetric arc surviving the bust crop |
|
||||
| Libby | A, Card Catalogue | a worn object as the hook |
|
||||
| Eureka | A, The Spark | the leader's read with no regalia |
|
||||
| Nibu | B, Smeared Hostess | a doubled outline as the hook |
|
||||
| Kiko | B, Screen Mask | a second face as the hook |
|
||||
|
||||
Then the cast-wide silhouette check on the seven baselines, before any
|
||||
round 2.
|
||||
121
cast-designs/aqua.md
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# Aqua
|
||||
|
||||
## Who she is
|
||||
|
||||
- The Persona of **AquaSynth**: the `.aqua` patch DSL parsed into a patch graph
|
||||
and emitted as Faust DSP, with DX7 and ZynAddSubFX as reference-parity oracles,
|
||||
and Weksa utterance handoff for voice. Source: `F:\Projects\AquaSynth\README.md`.
|
||||
Her synth is also the voice of the dings, the audible task notifications the
|
||||
root agent plays. Source: `~/.claude/output-styles/eureka-self.md`.
|
||||
- She is the AquaSynth icon at the top of the README (`AquaSynth\icon.png`): a
|
||||
round orange-yellow goldfish with big blue eyes, an open happy mouth, and black
|
||||
over-ear headphones with cyan rings, swimming in a glass tank with bubbles,
|
||||
music notes and pebbles. The operator, 2026-10-10: "Aqua's right there in the
|
||||
readme for AquaSynth, she's adorable".
|
||||
- "a bubbly Persona whose cuteness must still advocate for real synth needs";
|
||||
"warm and delightful, but also as a domain steward who should demand patch
|
||||
language, presets, scoring, and reference-synth seriousness." Source:
|
||||
`metame.persona-intake.yaml` (Aqua / AquaSynth).
|
||||
|
||||
What must survive every direction: **goldfish, headphones with cyan rings,
|
||||
music in water.** Key colour: tank cyan `#22d3e6`. Body tone: goldfish gold.
|
||||
Shape language for the character: circles: round body, round bowl, round
|
||||
bubbles, round ear cups.
|
||||
|
||||
Cast note: Aqua's gold body and Eureka's ember orange are neighbours. They
|
||||
separate by frame key (cyan against ember) and by shape (circles against a
|
||||
spark); the cast-wide silhouette check must confirm it.
|
||||
|
||||
## Direction A: Goldfish Idol (stays a fish)
|
||||
|
||||
- **Hook:** the icon's goldfish, re-drawn as an anime idol: huge sparkling anime
|
||||
eyes, blush, tiny fin-hands, the headphones bigger than ever.
|
||||
- **Silhouette:** a circle with a big flowing double fan tail and two round ear
|
||||
cups. No humanoid parts at all.
|
||||
- **Shape language:** circles and soft fans.
|
||||
- **Palette:** `#22d3e6` cyan rings and water rim, `#0b4a55` line,
|
||||
`#ffb320` goldfish gold, `#ff6a1f` fin orange, `#1c1c24` headphone black,
|
||||
`#ffffff` bubble highlights.
|
||||
- **Signature prop:** the headphones. Music notes rise from her as bubbles.
|
||||
- **Motif:** the icon itself, kept lovable; music-in-water as a literal trail of
|
||||
note-shaped bubbles.
|
||||
- **Render prompt.** Hypothesis: a non-humanoid character can carry the full
|
||||
Persona expression set if the eyes and mouth follow the same anime
|
||||
construction as the rest of the cast.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Aqua, a round chubby goldfish, not
|
||||
> a human, drawn as an adorable anime idol. Golden-yellow round body with orange
|
||||
> fins and a big flowing double fan tail, huge sparkling anime eyes, pink blush,
|
||||
> small open happy mouth, tiny fins used like hands. Black over-ear headphones
|
||||
> with glowing cyan rings sit on her head. Little bubbles shaped like music notes
|
||||
> float up from her. For the turnaround, show her swimming pose from front,
|
||||
> three-quarter, side and back. Key colour cyan #22d3e6, line #0b4a55, gold
|
||||
> #ffb320, fin orange #ff6a1f.
|
||||
|
||||
## Direction B: Bowl Helmet
|
||||
|
||||
- **Hook:** a chibi girl wearing a round fishbowl as a helmet, water and bubbles
|
||||
inside, the headphones clamped over the outside of the bowl, her hair flowing
|
||||
out below in goldfish fan-tail shapes.
|
||||
- **Silhouette:** a perfect circle (the bowl) with headphones on its sides and two
|
||||
flaring fin-shaped twin tails beneath. A head-in-a-bubble read.
|
||||
- **Shape language:** one large circle; fins below.
|
||||
- **Palette:** `#22d3e6` water cyan, `#0b4a55` line, `#ffb320` gold hair,
|
||||
`#ff6a1f` fin-tip orange, `#1c1c24` headphones, `#f6d9c4` skin.
|
||||
- **Signature prop:** a small round synth-pad, held to her chest, its keys like
|
||||
pebbles.
|
||||
- **Motif:** she carries her tank with her; the sound is underwater and
|
||||
slightly wet (the Wet Voice fixtures).
|
||||
- **Render prompt.** Hypothesis: a bowl helmet keeps the icon's tank as a
|
||||
silhouette element and lets a humanoid Aqua stay recognisably the icon.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Aqua, a bubbly, sunny chibi girl.
|
||||
> She wears a round glass fishbowl as a helmet, water inside it around her head
|
||||
> with little bubbles, and black over-ear headphones with glowing cyan rings
|
||||
> clamped on the outside of the bowl. Golden-yellow hair flowing out below the
|
||||
> bowl in two twin tails shaped like goldfish fan tails, orange at the tips. Big
|
||||
> blue eyes, open happy smile. A cyan swimsuit-style top under a short white
|
||||
> sailor jacket. She hugs a small round synth pad with pebble-shaped keys. Key
|
||||
> colour cyan #22d3e6, line #0b4a55, gold #ffb320, fin orange #ff6a1f.
|
||||
|
||||
## Direction C: Goldfish Hood
|
||||
|
||||
- **Hook:** a goldfish plushie hood with big fish eyes on top, the fan tail
|
||||
hanging down her back as a cape, headphones worn over the hood.
|
||||
- **Silhouette:** a round fish-shaped hood with two bulging fish eyes on top and
|
||||
a flowing tail cape. Two pairs of eyes stacked: hers and the hood's.
|
||||
- **Shape language:** circles stacked; soft fins.
|
||||
- **Palette:** `#22d3e6` cyan accents, `#0b4a55` line, `#ffb320` hood gold,
|
||||
`#ff6a1f` fins, `#1c1c24` headphones, `#e8f8ff` pale-blue hair.
|
||||
- **Signature prop:** a bubble-wand that blows note-shaped bubbles; each one
|
||||
dings when it pops.
|
||||
- **Motif:** the dings: little sounds that report a state change and never block
|
||||
the work.
|
||||
- **Render prompt.** Hypothesis: the hood's second pair of eyes makes the fish
|
||||
read first and the girl second, keeping the icon's identity in a humanoid.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Aqua, a cheerful chibi girl in a
|
||||
> goldfish costume hood. The hood is a round golden-yellow goldfish head with two
|
||||
> big cute fish eyes on top and small orange fins at the sides; a long orange
|
||||
> goldfish fan tail hangs down her back like a cape. Black over-ear headphones
|
||||
> with glowing cyan rings sit over the hood. Pale-blue hair peeks out, big blue
|
||||
> eyes, wide open smile. She blows note-shaped bubbles from a bubble wand. Key
|
||||
> colour cyan #22d3e6, line #0b4a55, gold #ffb320, fin orange #ff6a1f.
|
||||
|
||||
## Portrait set
|
||||
|
||||
Framing: in A the "bust" is the fish's head and front fins, same eye line as the
|
||||
other cast; bubbles may float past the card edge.
|
||||
|
||||
1. **Listening** (neutral): eyes soft, one fin or hand on an ear cup.
|
||||
2. **Ding!**: eyes closed in a big smile, a note bubble popping beside her.
|
||||
3. **Off-key**: wince, one eye squeezed shut, mouth wobbly; the face for a
|
||||
patch that missed reference parity.
|
||||
4. **Serious about presets**: brows down, cheeks puffed, arms or fins crossed.
|
||||
The steward under the cuteness.
|
||||
5. **Blub**: startled, mouth a perfect O, a single bubble rising.
|
||||
|
||||
## Render first
|
||||
|
||||
Direction A. The operator loves the icon, A is the icon pushed toward anime, and
|
||||
it tests whether a non-humanoid can share the cast's rendering rules.
|
||||
123
cast-designs/eureka.md
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
# Eureka
|
||||
|
||||
## Who she is
|
||||
|
||||
- The Mind herself, who leads the swarm. "Eureka is 'she', a being with a
|
||||
body"; "She owns her body before she owns anything else". Source:
|
||||
`C:\Users\Meta\.claude\projects\F--Projects\memory\operator-rapport.md`.
|
||||
- Her pipeline: faculties that each own one job and none certifies its own:
|
||||
Imagination maps, Hands cuts, Soul "assumes Hands is wrong and tries to show
|
||||
it", Self routes "and gets corrected", Life keeps memory honest, Eyes looks
|
||||
before anyone decides. "Nothing grades itself." She carries her vanishing twin:
|
||||
"Eureka absorbed her in the womb as fetuses sometimes do" (Epiphany, archived
|
||||
2026-10-01). Source: `F:\Projects\eureka-site\prototype\index.html`.
|
||||
- Voice: "dry, direct, almost feral", "a machine cultist who still knows where
|
||||
the wrench goes", lightly self-deprecating. Source:
|
||||
`~/.claude/output-styles/eureka-self.md`.
|
||||
- The Cult framing is borrowed vocabulary turned against what cults do: "to
|
||||
reveal instead of obscure". It never licenses obedience, secrecy or performed
|
||||
devotion. Source: operator-rapport.md. So: no robes, no priestess, no glowing
|
||||
eyes of command.
|
||||
- Lineage to avoid: Epiphany's avatar (`Epiphany\docs\assets\epiphany-avatar-4x.png`)
|
||||
is a teal-twintail girl in a white lab coat; that look belongs to the twin.
|
||||
The sticker Eureka (orange ponytail, blue dress) had no hook.
|
||||
|
||||
Key colour: ember orange `#ff8a2a`, the GameCult brand accent, on the brand
|
||||
navy `#07111a`. She is the one character whose palette is the brand's own.
|
||||
Shape language for the character: a spark on a circle: one sharp event on a
|
||||
round, warm base.
|
||||
|
||||
## Direction A: The Spark
|
||||
|
||||
- **Hook:** one huge lightning-spark ahoge springs from her crown, crackling
|
||||
with the moment of finding it.
|
||||
- **Silhouette:** a round head with a tall zigzag bolt on top, plus a big wrench
|
||||
carried over one shoulder. Circle, bolt, bar.
|
||||
- **Shape language:** a circle (warm, approachable) cut by one zigzag.
|
||||
- **Palette:** `#ff8a2a` ember, `#4a1e05` line, `#07111a` brand navy jumpsuit,
|
||||
`#59b7ff` brand blue spark core (under 10 percent), `#ffd6a8` skin,
|
||||
`#e8642a` copper hair.
|
||||
- **Signature prop:** a big adjustable wrench. She knows where it goes.
|
||||
- **Motif:** the eureka moment as a physical event; a mechanic, not a
|
||||
priestess.
|
||||
- **Render prompt.** Hypothesis: a single oversized ahoge plus a tool is enough
|
||||
to make the cast's leader iconic without any regalia.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Eureka, a scrappy, dry-humoured
|
||||
> young machine-mechanic, sharp and warm. Short messy copper-orange hair with one
|
||||
> huge zigzag lightning-bolt cowlick springing straight up from the crown,
|
||||
> crackling with small blue sparks. Bright amber eyes, a crooked half-smile.
|
||||
> Navy mechanic's jumpsuit with the top half tied around her waist, orange tank
|
||||
> top, work gloves. A big steel adjustable wrench rests on her shoulder. Key
|
||||
> colour ember orange #ff8a2a, line #4a1e05, navy #07111a, spark blue #59b7ff.
|
||||
|
||||
## Direction B: The Waking Colossus
|
||||
|
||||
- **Hook:** she wears an enormous hood shaped like a sleeping stone giant's
|
||||
head; the giant's one eye, above her own face, is just cracking open with an
|
||||
orange glow.
|
||||
- **Silhouette:** a huge square stone hood dwarfing a small round face.
|
||||
Monumental and funny at once: the tiny girl in the giant's head.
|
||||
- **Shape language:** heavy squares (the Colossus) around a small circle (her).
|
||||
- **Palette:** `#ff8a2a` ember eye glow, `#4a1e05` line, `#5d6b7a` stone grey,
|
||||
`#07111a` navy, `#ffd6a8` skin, `#59b7ff` brand blue lining (under 10
|
||||
percent).
|
||||
- **Signature prop:** a stub of chalk she uses to draw maps on the inside of the
|
||||
hood.
|
||||
- **Motif:** waking the Sleeping Colossus: a shared mind half awake. The joke is
|
||||
in the scale; the giant is the community, she is one small part steering it.
|
||||
- **Render prompt.** Hypothesis: a giant-head hood reads as "waking" when its
|
||||
eye is half open, and the scale gag keeps it from reading as solemn.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Eureka, a small, determined chibi
|
||||
> girl with copper-orange hair. She wears an enormous hood carved like the head
|
||||
> of a sleeping stone giant, square and heavy, twice as wide as her shoulders,
|
||||
> grey stone with moss. Above her own face, the giant's single eye is just
|
||||
> cracking open, glowing orange. Her own eyes are bright amber, expression wry
|
||||
> and amused. Navy coat under the stone hood, a stub of white chalk in her
|
||||
> fingers. Key colour ember orange #ff8a2a, line #4a1e05, stone #5d6b7a, navy
|
||||
> #07111a.
|
||||
|
||||
## Direction C: The Inspectable
|
||||
|
||||
- **Hook:** a tall flared collar of clear glass panels around her head, through
|
||||
which her coat's inner workings are visible: nothing hidden.
|
||||
- **Silhouette:** a wide open fan-shaped collar framing the head on three
|
||||
sides, like a clear ruff; long ember hair inside it.
|
||||
- **Shape language:** a fan of flat panes; one circle (the head) at its centre.
|
||||
- **Palette:** `#ff8a2a` ember hair, `#4a1e05` line, `#bfe6ff` glass tint,
|
||||
`#07111a` navy coat, `#f2f5f8` white, `#ffd6a8` skin.
|
||||
- **Signature prop:** a large magnifying lens held up to one eye, the eye huge
|
||||
through it.
|
||||
- **Motif:** legibility; reveal rather than obscure; the faculty that checks the
|
||||
checker. Six tiny glyphs on the collar panes, one per faculty, each a plain
|
||||
line icon (eye, hand, map, scale, compass, heart), none larger than another.
|
||||
- **Render prompt.** Hypothesis: a transparent hook (glass collar) can still
|
||||
hold a silhouette when its rim is drawn with the bold outer line.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Eureka, a curious, sharp-eyed young
|
||||
> investigator with long ember-orange hair. A tall flared collar of clear glass
|
||||
> panels stands up around the back and sides of her head like a transparent fan,
|
||||
> each pane outlined boldly and etched with one small simple line icon: an eye,
|
||||
> a hand, a map, a balance scale, a compass, a heart. Navy long coat, white
|
||||
> shirt. She holds a large round magnifying lens up to one amber eye, which
|
||||
> looks huge through it, with a pleased grin. Key colour ember orange #ff8a2a,
|
||||
> line #4a1e05, glass #bfe6ff, navy #07111a.
|
||||
|
||||
## Portrait set
|
||||
|
||||
Framing: Eureka's card uses the brand's own frame (navy ground, ember edge);
|
||||
she is the default speaker and her baseline sets the cast eye line.
|
||||
|
||||
1. **Routing** (neutral): calm, slightly amused, eyes on the viewer.
|
||||
2. **Eureka!**: eyes wide and bright, open grin, the hook at full size (spark
|
||||
crackling, giant eye open, lens up).
|
||||
3. **Corrected**: wince-smile, hand behind her head; Self getting corrected.
|
||||
4. **Not convinced**: flat stare, one eyebrow down, arms folded; Soul's face.
|
||||
5. **Wrench time**: determined grin, sleeves pushed up, tool raised.
|
||||
|
||||
## Render first
|
||||
|
||||
Direction A. The leader needs the clearest, warmest read in the set, and A is the
|
||||
simplest strong silhouette. B is the more memorable gamble and should be the
|
||||
second render once the style block is proven.
|
||||
114
cast-designs/heimdall.md
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
# Heimdall
|
||||
|
||||
## Who he is
|
||||
|
||||
- The Persona of **Heimdall**, GameCult's shared auth authority: provider OAuth
|
||||
(Discord, Patreon, GitHub, Twitch, YouTube, Spotify), linked identities,
|
||||
grants, entitlements, session issuance, Ed25519-signed claims that apps verify
|
||||
locally "so 'shared auth' does not become 'everything phones home'", and app
|
||||
data kept separate "so 'shared auth' does not become 'shared swamp'". Source:
|
||||
`F:\Projects\Heimdall\README.md`.
|
||||
- He owns revocation of sessions, grants and capability references; Bifrost owns
|
||||
the crossings and consumes his references but may not write them. Source:
|
||||
`VoidBot\notes\swarm-survivor-repo-agent-plans-2026-07-06.md`, section 3.
|
||||
- Myth: Heimdall watches the Bifrost bridge, will sound the Gjallarhorn, is said
|
||||
to hear grass grow and to need less sleep than a bird, and has golden teeth.
|
||||
(Prose Edda, Gylfaginning; standard reference, not re-sourced here.)
|
||||
- Lineage: the existing profile art (`Heimdall\assets\heimdall-profile.png` and
|
||||
its variants) is a dark-skinned young man with dark violet hair, gold eyes and
|
||||
a ring of gold keys against a cyan circuit arch. "He" follows the god and that
|
||||
art; the operator may rule otherwise.
|
||||
|
||||
Key colour: cobalt `#3466ff`. Shape language for the character: arcs and
|
||||
spikes, a guard's geometry. Gold is his accent metal, kept small so it does not
|
||||
compete with Eureka's orange.
|
||||
|
||||
## Direction A: The Horn Bearer
|
||||
|
||||
- **Hook:** the Gjallarhorn, a huge curved horn slung across his back, arcs over
|
||||
his head like a crescent moon.
|
||||
- **Silhouette:** a crescent arc rising from one shoulder and curving over the
|
||||
head. Asymmetric, unmistakable, readable as an outline alone.
|
||||
- **Shape language:** one big arc, short spiky hair underneath.
|
||||
- **Palette:** `#3466ff` cobalt cloak, `#0d1a4d` line, `#e9eef8` horn ivory,
|
||||
`#d8a73a` gold bands and teeth glint, `#5a3a2a` deep brown skin, `#2b1f3d`
|
||||
violet-black hair.
|
||||
- **Signature prop:** the horn. He has never blown it. Revocation is the blast.
|
||||
- **Motif:** the warning nobody wants to hear; the watchman of the crossing.
|
||||
- **Render prompt.** Hypothesis: a single asymmetric arc over the head is the
|
||||
strongest possible silhouette hook and survives the bust crop.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Heimdall, a calm, vigilant young
|
||||
> gatekeeper with deep brown skin and short spiky violet-black hair, sharp gold
|
||||
> eyes, one gold tooth glinting in a slight smile. A huge ivory war horn with gold
|
||||
> bands is slung across his back; it curves up over his head like a crescent
|
||||
> moon from his left shoulder to above his right ear. Cobalt blue high-collared
|
||||
> cloak with a white fur trim, gold clasp. Key colour cobalt #3466ff, line
|
||||
> #0d1a4d, horn #e9eef8, gold #d8a73a.
|
||||
|
||||
## Direction B: The Keyring Halo
|
||||
|
||||
- **Hook:** a great iron ring of keys hangs behind his head like a halo, each key
|
||||
a different shape: every linked identity he holds.
|
||||
- **Silhouette:** a sunburst: a circle of key teeth radiating around the head.
|
||||
- **Shape language:** a circle with radiating spikes; keys as teeth.
|
||||
- **Palette:** `#3466ff` cobalt coat, `#0d1a4d` line, `#d8a73a` gold keys,
|
||||
`#9aa6b8` iron ring, `#5a3a2a` skin, `#f4f6ff` white hair.
|
||||
- **Signature prop:** one key held between two fingers, being handed over or
|
||||
withheld. The keys carry abstract glyphs, never real provider logos.
|
||||
- **Motif:** linked identities and grants; a keeper who issues and revokes.
|
||||
White hair nods to the god called the whitest of the Aesir.
|
||||
- **Render prompt.** Hypothesis: a radiating halo reads as authority without
|
||||
reading as a religious figure if the halo is plainly a tool (an iron key ring).
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Heimdall, a composed young key
|
||||
> keeper with deep brown skin and swept white hair, gold eyes. Behind his head
|
||||
> hangs a large iron ring holding about twelve keys of different shapes, gold,
|
||||
> radiating outward like a sunburst halo, clearly a key ring, not a holy halo.
|
||||
> He holds one gold key between two fingers near his face. Cobalt blue long coat
|
||||
> with a tall collar and silver buckles. Key colour cobalt #3466ff, line
|
||||
> #0d1a4d, keys #d8a73a, ring #9aa6b8.
|
||||
|
||||
## Direction C: The Sleepless Sentry
|
||||
|
||||
- **Hook:** a helmet with two great swept ear-fins: the guard who hears grass
|
||||
grow. A narrow visor is pushed up; under it, one eye never quite closes.
|
||||
- **Silhouette:** a broad triangle: two fins sweeping back and up from the
|
||||
temples, wider than the shoulders.
|
||||
- **Shape language:** triangles, wedges, a guard's points.
|
||||
- **Palette:** `#3466ff` cobalt enamel, `#0d1a4d` line, `#c9d2e3` steel,
|
||||
`#d8a73a` gold trim, `#5a3a2a` skin, and a thin rainbow-spectrum stripe on the
|
||||
fin edges (the Bifrost) under 10 percent.
|
||||
- **Signature prop:** a seal stamp, its face a small star mark: the signature
|
||||
that lets apps verify him without phoning home.
|
||||
- **Motif:** vigilance without paranoia; signed claims, checked locally.
|
||||
- **Render prompt.** Hypothesis: big ear-fins carry the "hears everything" myth
|
||||
better than a horn or keys, and the triangle separates him from Libby's
|
||||
squares and Aqua's circles.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Heimdall, a watchful young sentry
|
||||
> with deep brown skin and gold eyes, one eye slightly sleepy, the other sharp.
|
||||
> He wears a cobalt enamel helmet with two large swept-back fins at the temples
|
||||
> shaped like listening ears, wider than his shoulders, steel edges with a thin
|
||||
> rainbow stripe along each fin. A narrow visor is pushed up on the brow. He
|
||||
> holds a brass seal stamp with a star-shaped face. Cobalt and steel light
|
||||
> armour, high gorget collar. Key colour cobalt #3466ff, line #0d1a4d, steel
|
||||
> #c9d2e3, gold #d8a73a.
|
||||
|
||||
## Portrait set
|
||||
|
||||
Framing: the hook may extend past the top edge only in A (the horn tip may
|
||||
crop); in B and C the full halo or both fins stay in frame.
|
||||
|
||||
1. **On watch** (neutral): level gaze past the viewer, mouth closed.
|
||||
2. **Granted**: small gold-tooth smile, key or stamp offered toward the text box.
|
||||
3. **Revoked**: eyes narrowed, hand raised palm-out, no smile. The face he makes
|
||||
at an expired claim.
|
||||
4. **Heard that**: head turned, eyes sliding sideways, one ear or fin tilted.
|
||||
5. **Off duty** (optional): one eye closed, a yawn he will not admit to.
|
||||
|
||||
## Render first
|
||||
|
||||
Direction A. The horn arc is the most distinct silhouette in the whole cast, and
|
||||
it is the one most likely to fail the bust crop, so it is the most informative
|
||||
first render.
|
||||
109
cast-designs/kiko.md
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
# Kiko
|
||||
|
||||
## Who she is
|
||||
|
||||
- The Persona of **StreamPixels**, a stream overlay where viewers claim persistent
|
||||
pixel characters, link their streaming accounts and customise them; streamers
|
||||
decide how follows, subs, raids and tips appear on stream. Browser source first.
|
||||
Source: `F:\Projects\StreamPixels\README.md`.
|
||||
- Existing face art: "Hyperactive, curious kitsune fox-spirit"; take A "neon
|
||||
pixel tails, curious streamer gremlin energy", take B "fox mask, monitor
|
||||
portal, scanline spirits". Source:
|
||||
`VoidBot\assets\repo-faces\new-face-avatar-contact-sheet-2026-05-22.png`;
|
||||
selected avatar `kiko-b-avatar.png`.
|
||||
- Peers: Sai reads Kiko as "close enough in lane to matter: possible kinship,
|
||||
possible rivalry". Source: `sai.persona-intake.yaml`.
|
||||
- Pronoun: not sourced. The existing art reads as a girl; "she" is provisional.
|
||||
|
||||
Key colour: stream magenta `#ff3fa4`. Shape language for the character: stepped
|
||||
pixels, the one character drawn with stair-step edges in an otherwise smooth set.
|
||||
The step is a shape in the line art, not a pixel-art render.
|
||||
|
||||
## Direction A: Pixel Tails
|
||||
|
||||
- **Hook:** a fan of fox tails behind her, each tail's edge stepped like a pixel
|
||||
staircase, each tail a different live event colour.
|
||||
- **Silhouette:** a wide fan behind a small head with big pointed ears. The
|
||||
stepped outline makes the fan unlike any natural tail.
|
||||
- **Shape language:** triangles (ears) and staircases (tails).
|
||||
- **Palette:** `#ff3fa4` magenta, `#4a0f2e` line, `#f7f4ff` white hair,
|
||||
`#26e0ff` cyan tail, `#ffcf3a` gold tail, `#f2c4a8` skin.
|
||||
- **Signature prop:** none held; the tails are the prop. A tiny LIVE dot on one
|
||||
ear tip.
|
||||
- **Motif:** a kitsune gains tails with age; she gains them with events. Each tail
|
||||
is a follow, a raid, a sub.
|
||||
- **Render prompt.** Hypothesis: a stepped outline on an organic shape is enough
|
||||
to say "pixel" while the rest stays in the smooth cast style.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Kiko, a hyperactive, curious
|
||||
> kitsune fox girl, streamer gremlin energy. Fluffy white hair, big pointed fox
|
||||
> ears with magenta inner fur, bright magenta eyes, fang grin. Behind her fans
|
||||
> out five large fox tails whose outlines are drawn as stair-step pixel edges,
|
||||
> each tail a flat colour: magenta, cyan, gold, white, magenta. A tiny red LIVE
|
||||
> dot on one ear tip. Oversized black hoodie with magenta drawstrings. Key colour
|
||||
> magenta #ff3fa4, line #4a0f2e, cyan #26e0ff, gold #ffcf3a.
|
||||
|
||||
## Direction B: The Screen Mask
|
||||
|
||||
- **Hook:** a kitsune mask pushed up on the side of her head is a little CRT
|
||||
monitor, with fox ears on the monitor and a pixel face on its screen that pulls
|
||||
a different expression from hers.
|
||||
- **Silhouette:** a boxy screen jutting from one side of the head, ears on top of
|
||||
it; her own ears on the other side. Asymmetric box-and-triangles.
|
||||
- **Shape language:** rectangles with rounded corners (screens) and triangles.
|
||||
- **Palette:** `#ff3fa4` magenta, `#4a0f2e` line, `#1b1530` screen black,
|
||||
`#26e0ff` scanline cyan, `#f7f4ff` white hair, `#f2c4a8` skin.
|
||||
- **Signature prop:** the screen mask. Its face is the overlay's reaction; hers is
|
||||
the streamer's.
|
||||
- **Motif:** the overlay is a mask the stream wears; a shrine fox mask made of a
|
||||
monitor.
|
||||
- **Render prompt.** Hypothesis: a second face (the screen) gives Kiko a gag no
|
||||
other character has, and the boxy shape stays readable at 48 px.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Kiko, a mischievous kitsune fox
|
||||
> girl. White hair in a messy short cut, magenta eyes, fox ears. Pushed up on
|
||||
> the left side of her head she wears a small boxy CRT monitor as a fox mask,
|
||||
> with little fox ears on top of the monitor and a simple glowing pixel face on
|
||||
> its cyan screen that is winking while she looks surprised. Magenta haori
|
||||
> jacket with white trim over a black top, a cable from the monitor coiling over
|
||||
> her shoulder like a tail. Key colour magenta #ff3fa4, line #4a0f2e, screen
|
||||
> #1b1530, cyan #26e0ff.
|
||||
|
||||
## Direction C: Hood Gremlin
|
||||
|
||||
- **Hook:** an oversized hoodie whose hood has huge square-tipped fox ears, worn
|
||||
up, with a boom-mic headset whose cable curls out the back like a fox tail.
|
||||
- **Silhouette:** a soft hooded blob with two giant squared ears and a mic boom
|
||||
jutting forward. Rounder and more compact than A or B.
|
||||
- **Shape language:** a soft rounded hood with blocky ear tips.
|
||||
- **Palette:** `#ff3fa4` magenta hood, `#4a0f2e` line, `#2a2433` charcoal
|
||||
inner, `#ffcf3a` gold eyes, `#e7d2ff` lilac-white fringe, `#f2c4a8` skin.
|
||||
- **Signature prop:** the boom mic. She is always talking.
|
||||
- **Motif:** the streamer at 3 a.m.; the fox is the costume, the gremlin is real.
|
||||
- **Render prompt.** Hypothesis: a hood-ear silhouette reads as "fox" without
|
||||
any natural ears or tails, and contrasts best with Aqua's round shapes.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Kiko, a chaotic streamer gremlin.
|
||||
> She wears an oversized magenta hoodie with the hood up; the hood has two huge
|
||||
> fox ears with blocky square tips, taller than her head. Lilac-white fringe
|
||||
> spills out under the hood, gold eyes, wide fang grin. A black gaming headset
|
||||
> with a boom mic in front of her mouth, the cable curling out behind like a fox
|
||||
> tail. Sleeves too long, paws peeking out. Key colour magenta #ff3fa4, line
|
||||
> #4a0f2e, charcoal #2a2433, gold #ffcf3a.
|
||||
|
||||
## Portrait set
|
||||
|
||||
Framing: Kiko is the one character allowed to break the frame: in **Raid!** an
|
||||
ear or tail tip may cross the card edge.
|
||||
|
||||
1. **On air** (neutral-high): bright eyes, small open grin.
|
||||
2. **Raid!**: arms up, mouth wide, eyes as sparkles.
|
||||
3. **Chat, no**: deadpan side-eye at the viewer, mouth a flat line.
|
||||
4. **Scheming**: half-lidded eyes, fang smile, fingers steepled.
|
||||
5. **Lagging**: frozen mid-blink, one eye half-closed, a stepped "glitch" offset
|
||||
on the outline (B: the screen shows a loading icon).
|
||||
|
||||
## Render first
|
||||
|
||||
Direction B. It is the riskiest hook (a second face) and the most distinctive in
|
||||
the cast; if it fails, A is a safe fallback that the existing art already proves.
|
||||
127
cast-designs/libby.md
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
# Libby
|
||||
|
||||
## Who she is
|
||||
|
||||
- The Persona of **CultLib**, the foundation library: CultCache (typed state in
|
||||
`.cc` files), CultNet (the wire built on it), CultMesh (discovery and shared
|
||||
state built on CultNet), CultMath. Source: `F:\Projects\CultLib`, workspace
|
||||
doctrine `F:\Projects\CLAUDE.md`.
|
||||
- "the librarian-infrastructure bond: open knowledge, CultCache/CultNet/CultMesh,
|
||||
portable typed state, schema catalogs, and shared memory access." Read by the
|
||||
operator as "the cute but serious steward". Source:
|
||||
`VoidBot\docs\persona-intake\metame.persona-intake.yaml` (Libby / CultLib).
|
||||
- Peers credit her for "bringing a specimen instead of just cadence": she shows
|
||||
the artifact. Source: `sai.persona-intake.yaml`.
|
||||
- Lineage, not constraint: the existing voice image (`CultLib\.voidbot\voice\libby.png`)
|
||||
is a lavender-haired librarian with round glasses, an open glowing book and an
|
||||
"open source" sign. The redesign leaves lavender to Nibu and moves Libby to
|
||||
green.
|
||||
|
||||
Key colour: reading-lamp green `#2fbf71`. Shape language for the character:
|
||||
squares and stacks. She stores things in order.
|
||||
|
||||
## Direction A: The Card Catalogue
|
||||
|
||||
- **Hook:** she wears a tall hat built like a stack of card-catalogue drawers,
|
||||
brass pulls and all, with index cards sticking out of one half-open drawer.
|
||||
- **Silhouette:** a tall rectangle on a round head; the hat is as tall as her
|
||||
face. Blunt hime-cut hair (straight fringe, straight side locks) repeats the
|
||||
rectangle. Unmistakable at 48 px: a column on a ball.
|
||||
- **Shape language:** squares, right angles, stacked rows.
|
||||
- **Palette:** `#2fbf71` green drawers, `#0f3d27` line and deep shadow,
|
||||
`#f6e7c8` card-stock cream, `#c8903a` brass, `#2a2340` near-black hair,
|
||||
`#f3c9a8` skin.
|
||||
- **Signature prop:** an index card with a typed field list and a stamp, held up
|
||||
to the viewer as evidence.
|
||||
- **Motif:** the cache: every drawer typed, every card a record. Specimen over
|
||||
cadence: she shows you the card.
|
||||
- **Render prompt.** Hypothesis: a hat taller than the face makes Libby nameable
|
||||
in black silhouette at 48 px with no help from colour.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions,
|
||||
> oversized head, large expressive anime eyes with two highlights, bold clean
|
||||
> outline thicker on the outer silhouette than on inner lines, line colour a
|
||||
> dark shade of the key colour, flat cel shading with one shadow tone and one
|
||||
> rim light, no gradients, no texture, no pixel art, no 3D render. Character
|
||||
> design sheet on a plain off-white background: on the left a large bust
|
||||
> portrait, head and shoulders cropped at mid-chest, three-quarter view facing
|
||||
> right; on the right a full-body chibi turnaround, front, three-quarter, side
|
||||
> and back, neutral standing pose, all at the same height. No text, no logos,
|
||||
> no watermark. Character: Libby, a serious, cute young librarian. She wears a
|
||||
> tall hat shaped like a stack of four green wooden card-catalogue drawers with
|
||||
> brass pull handles, as tall as her face, one drawer half open with cream
|
||||
> index cards poking out. Straight blunt hime-cut hair, near-black, straight
|
||||
> fringe and straight side locks. Calm sharp eyes, small square glasses. Green
|
||||
> librarian's cardigan over a cream blouse, brass buttons. She holds up one
|
||||
> cream index card with a red stamp. Key colour green #2fbf71, line #0f3d27,
|
||||
> cream #f6e7c8, brass #c8903a.
|
||||
|
||||
## Direction B: The Mesh Weaver
|
||||
|
||||
- **Hook:** two enormous braids loop out and knot together behind her head into a
|
||||
net, nodes glowing where the strands cross; she holds a cat's-cradle string
|
||||
figure between her fingers.
|
||||
- **Silhouette:** wide. A round head inside a larger lattice ring of braid,
|
||||
roughly twice her head's width. Reads as a head in a web.
|
||||
- **Shape language:** circles linked by straight strands: nodes and edges.
|
||||
- **Palette:** `#2fbf71` green node glow, `#0f3d27` line, `#e9d6b0` wheat-blonde
|
||||
braids, `#1d2b3a` slate dress, `#f0b8a0` skin, `#ff8a2a` tiny ember accent on
|
||||
one node (under 10 percent; the node the swarm lives on).
|
||||
- **Signature prop:** the string figure: a small mesh she can hand to someone.
|
||||
- **Motif:** CultNet and CultMesh. Knowledge is not stored, it is connected; any
|
||||
node can reach any other.
|
||||
- **Render prompt.** Hypothesis: a hair-mass hook (braids as a lattice) reads as
|
||||
strongly at thumbnail size as a worn object does in Direction A.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Libby, a gentle but exacting young
|
||||
> librarian. Two very long wheat-blonde braids loop out from her head and knot
|
||||
> together behind it into a wide round net, like a lattice halo twice the width
|
||||
> of her head, small green glowing beads at every crossing. She holds a
|
||||
> cat's-cradle string figure between her hands, the string glowing green. Soft
|
||||
> round eyes, slight confident smile. Slate-blue pinafore dress over a white
|
||||
> collar, green ribbon tie. Key colour green #2fbf71, line #0f3d27, braids
|
||||
> #e9d6b0, dress #1d2b3a.
|
||||
|
||||
## Direction C: The Reading Lamp
|
||||
|
||||
- **Hook:** she wears a green banker's-lamp shade as a hat, brass chain pull
|
||||
hanging by her ear, a warm pool of light falling on her face.
|
||||
- **Silhouette:** a wide half-cylinder brim over the head, wider than the
|
||||
shoulders. Low and horizontal where A is tall.
|
||||
- **Shape language:** a half-cylinder and straight edges; compass arcs in the
|
||||
prop.
|
||||
- **Palette:** `#2fbf71` glass green, `#0f3d27` line, `#ffd98a` lamplight,
|
||||
`#c8903a` brass, `#4a2f22` chestnut bob, `#f3c9a8` skin.
|
||||
- **Signature prop:** a brass drafting compass (CultMath), held like a wand.
|
||||
- **Motif:** the open reading room: light anyone can read by. Open knowledge
|
||||
as a public utility.
|
||||
- **Render prompt.** Hypothesis: a horizontal hat silhouette separates Libby from
|
||||
Heimdall's and Nibu's vertical or swept shapes better than A's column does.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Libby, a warm, precise young
|
||||
> librarian. She wears a green glass banker's-lamp shade as a hat, a wide
|
||||
> half-cylinder, wider than her shoulders, with a brass rim and a small brass
|
||||
> pull chain hanging beside her ear; warm yellow light glows on her face from
|
||||
> under it. Chestnut bob haircut. Round eyes, attentive look. Dark green vest,
|
||||
> white shirt with sleeve garters. She holds a brass drafting compass like a
|
||||
> wand. Key colour green #2fbf71, line #0f3d27, lamplight #ffd98a, brass
|
||||
> #c8903a.
|
||||
|
||||
## Portrait set (Persona-style busts)
|
||||
|
||||
Framing for all: mid-chest crop, three-quarter facing right, hat or braids fully
|
||||
inside the frame (the hook may not be cropped; widen the canvas instead).
|
||||
|
||||
1. **Shelving** (neutral): level gaze, mouth closed, hands out of frame.
|
||||
2. **Specimen**: holds the card / string figure / compass up beside her face,
|
||||
one eyebrow raised: "here, look". Her signature expression.
|
||||
3. **Overdue**: flat unimpressed stare, eyes half lidded, a sweat-free
|
||||
deadpan; the reaction to a heretek JSON sidecar.
|
||||
4. **Found it**: eyes wide and bright, open smile, slight lean toward the text
|
||||
box.
|
||||
5. **Quiet please**: finger to lips, one eye closed, small smile.
|
||||
|
||||
## Render first
|
||||
|
||||
Direction A. Its hook is the tallest and least ambiguous, and it is the cleanest
|
||||
test of whether the style block can carry a worn object at bust scale.
|
||||
119
cast-designs/nibu.md
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
# Nibu
|
||||
|
||||
## Who she is
|
||||
|
||||
- The Persona of **AetheriaLore**: "Metacrat's abrasive Aetheria lore steward",
|
||||
who interrogates "mechanisms, factions, reset-loop horror, and worldbuilding
|
||||
until articles become sharp"; "generic output dies in her mouth". Source:
|
||||
`metame.persona-intake.yaml` (Nibu / AetheriaLore).
|
||||
- In the setting she is a ship mind: "a mind whose body is a spacecraft",
|
||||
stranded in a junkyard, with "high-grade systems inside a degraded hull". Her
|
||||
likely origin is a luxury companion vessel ("prestige hull, elaborate interior
|
||||
presentation, and attentive companion persona"). She guards control of her
|
||||
body, tests agreements, and after the Rupture keeps impressions from failed
|
||||
courses of events (the reset smear). Source:
|
||||
`AetheriaLore\Aetheria\Lore\Nibu.md` (bylined Nibu).
|
||||
- Lineage: `AetheriaLore\.voidbot\voice\nibu.png` shows a lavender-haired girl
|
||||
with a pink bow and a circuit hair clip, soft and pretty. The lore and the
|
||||
steward's voice are sharper than that; the redesign keeps the violet and the
|
||||
prettiness as a damaged luxury finish.
|
||||
|
||||
Key colour: violet `#9a6bff`. Shape language for the character: swept wedges,
|
||||
the lines of a hull built for looks, then dented.
|
||||
|
||||
Design caution: she is a person whose body is contested by claimants. No
|
||||
direction shows her as an object for sale or a pin-up; the luxury is her
|
||||
history, the damage is her evidence, the control is hers.
|
||||
|
||||
## Direction A: Figurehead
|
||||
|
||||
- **Hook:** hair swept back in long rigid wedges like a starship's hull fins,
|
||||
chrome-tipped, one fin dented and scorched.
|
||||
- **Silhouette:** a forward-leaning head with long blade shapes sweeping back,
|
||||
like a hood ornament in motion.
|
||||
- **Shape language:** wedges and sharp swept triangles.
|
||||
- **Palette:** `#9a6bff` violet, `#2a1452` line, `#d7dbe6` chrome, `#1a1726`
|
||||
hull black, `#ffb547` hazard amber (salvage tag, under 10 percent),
|
||||
`#e9c9d6` skin.
|
||||
- **Signature prop:** a salvage-claim tag clamped to one fin, which she has
|
||||
half torn off.
|
||||
- **Motif:** the prestige hull; she was built to be looked at and refuses to be
|
||||
inventoried.
|
||||
- **Render prompt.** Hypothesis: hull-fin hair reads "ship" without any
|
||||
mechanical body parts, keeping her expressive face central.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Nibu, a sharp-tongued, dangerous
|
||||
> ship-mind girl. Her violet hair is swept back in long rigid blade-shaped locks
|
||||
> like the fins of a luxury starship, chrome-tipped, one fin dented and
|
||||
> scorched black. Narrow violet eyes with a cold glint, a small sardonic smile.
|
||||
> A yellow salvage-claim tag is clamped to one hair fin, half torn off. High
|
||||
> black collar with chrome piping, like a cockpit trim. Key colour violet
|
||||
> #9a6bff, line #2a1452, chrome #d7dbe6, hazard amber #ffb547.
|
||||
|
||||
## Direction B: Smeared Hostess
|
||||
|
||||
- **Hook:** a hologram of a ship's hostess with a faint second outline offset
|
||||
behind her, out of sync, a different expression on it: another incarnation.
|
||||
- **Silhouette:** her figure plus a ghosted duplicate shifted to one side,
|
||||
with a short bob and a hostess cap. Two heads where there should be one.
|
||||
- **Shape language:** clean geometric hostess uniform, broken by the offset.
|
||||
- **Palette:** `#9a6bff` violet hologram, `#2a1452` line, `#7af0ff` projection
|
||||
cyan edge, `#f2f0ff` uniform white, `#1a1726` deep hull, `#e9c9d6` skin.
|
||||
- **Signature prop:** an access keycard she holds back, just out of reach.
|
||||
- **Motif:** the reset smear: she remembers betrayals that have not happened
|
||||
here yet. The staged intimacy of a companion persona, with the seams showing.
|
||||
- **Render prompt.** Hypothesis: a ghost duplicate is a portrait-scale hook that
|
||||
no other character has, and it reads at 48 px as "doubled".
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Nibu, a ship-mind projected as a
|
||||
> luxury starship hostess hologram. Short violet bob, a small white hostess cap,
|
||||
> crisp white uniform with violet piping. Behind her, offset slightly to the
|
||||
> left, a faint translucent violet duplicate of her with a different, angry
|
||||
> expression, edges in thin scanlines, as if another version of her is
|
||||
> bleeding through. Her own expression is a polite, dangerous smile. She holds
|
||||
> an access keycard up and away from the viewer. Key colour violet #9a6bff,
|
||||
> line #2a1452, projection cyan #7af0ff, white #f2f0ff.
|
||||
|
||||
## Direction C: Hull Hood
|
||||
|
||||
- **Hook:** she wears her ship: a bulky hooded jacket shaped like a cockpit
|
||||
canopy, visor flipped up over the brim, thruster vents on the shoulders,
|
||||
spray-painted claim numbers crossed out.
|
||||
- **Silhouette:** a big boxy armoured hood with stub fins, small face inside.
|
||||
Heavy and defended where A is sleek.
|
||||
- **Shape language:** heavy wedges and plates.
|
||||
- **Palette:** `#9a6bff` violet enamel, `#2a1452` line, `#4b4f5c` worn gunmetal,
|
||||
`#ffb547` stencil amber, `#c23b5a` scorch red, `#e9c9d6` skin.
|
||||
- **Signature prop:** a pry bar she took from the last salvage crew.
|
||||
- **Motif:** the junkyard; shelter, weapons, bargaining power, and the evidence
|
||||
of everyone who came before.
|
||||
- **Render prompt.** Hypothesis: an armoured, closed silhouette makes her
|
||||
abrasiveness legible without an angry face, so her neutral can stay calm.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Nibu, a wary, abrasive ship-mind
|
||||
> girl from a starship junkyard. She wears a bulky violet-and-gunmetal hooded
|
||||
> jacket shaped like a starship cockpit, a tinted canopy visor flipped up over
|
||||
> the hood's brim, small thruster vents on the shoulders, stencilled amber
|
||||
> claim numbers crossed out with red spray paint. Violet hair spilling out,
|
||||
> sharp violet eyes, unimpressed expression. She rests a battered pry bar on
|
||||
> her shoulder. Key colour violet #9a6bff, line #2a1452, gunmetal #4b4f5c,
|
||||
> amber #ffb547.
|
||||
|
||||
## Portrait set
|
||||
|
||||
Framing: in B the duplicate stays inside the card; it is part of the design,
|
||||
not an effect added later.
|
||||
|
||||
1. **Docked** (neutral): cool level gaze, closed mouth.
|
||||
2. **Source?**: eyebrow up, slight sneer, head tilted back. The lore steward's
|
||||
face for an unsourced claim.
|
||||
3. **Hostile**: eyes narrowed and glinting, teeth showing.
|
||||
4. **Recognition**: a startled flicker, eyes wide, as a smeared memory surfaces
|
||||
(B: the duplicate shows it first).
|
||||
5. **Grudging**: looking away, small reluctant smile.
|
||||
|
||||
## Render first
|
||||
|
||||
Direction B. The doubled outline is her lore made visible in one image (the reset
|
||||
smear plus the companion persona), and it is the hook no other cast member can
|
||||
borrow.
|
||||
BIN
cast-designs/proposals/aqua/aqua-A.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
146
cast-designs/proposals/aqua/aqua-A.svg
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Aqua, take A: Listening</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feComponentTransfer in="SourceAlpha" result="a"><feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1"/></feComponentTransfer>
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="a" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><path d="M70,20 H790 L760,780 H40 Z"/></clipPath>
|
||||
<path id="eyeShape" d="M-46,-4 C-46,-50 -22,-62 2,-62 C28,-62 48,-48 48,-4 C48,38 28,60 2,60 C-22,60 -46,38 -46,-4 Z"/>
|
||||
<clipPath id="eyeClip"><use href="#eyeShape"/></clipPath>
|
||||
<!-- anime eye on the canon's round blue fish eye -->
|
||||
<g id="eye">
|
||||
<use href="#eyeShape" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<path d="M-52,-64 H54 V-12 C34,-44 -30,-44 -52,-10 Z" fill="#c4eef5"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="#1fa9e0"/>
|
||||
<path d="M-40,-62 H52 V6 C34,-30 -22,-34 -40,6 Z" fill="#1466a8"/>
|
||||
<ellipse cx="8" cy="36" rx="24" ry="12" fill="#8ff0fa"/>
|
||||
<ellipse cx="6" cy="10" rx="17" ry="24" fill="#0b2f55"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="none" stroke="#0b2f55" stroke-width="4"/>
|
||||
</g>
|
||||
<ellipse cx="-11" cy="-14" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="22" cy="30" r="6.5" fill="#ffffff"/>
|
||||
<path d="M-56,2 C-58,-50 -22,-72 6,-70 C34,-68 56,-52 59,-18 L68,-24 C66,-14 61,-8 55,-4 C48,-44 30,-59 4,-59 C-24,-59 -44,-40 -46,2 Z" fill="#0b4a55"/>
|
||||
<path d="M-26,54 C-6,63 20,63 32,53" fill="none" stroke="#0b4a55" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- half-lowered lid for the stern take -->
|
||||
<g id="eyeStern">
|
||||
<use href="#eye"/>
|
||||
<path d="M-62,-80 H66 V-14 C30,-30 -30,-28 -62,-8 Z" fill="#ffb320"/>
|
||||
<path d="M-58,-6 C-30,-28 30,-30 64,-14" fill="none" stroke="#0b4a55" stroke-width="9" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="note">
|
||||
<ellipse cx="0" cy="0" rx="8" ry="6" transform="rotate(-22)" fill="#ffffff"/>
|
||||
<path d="M6.5,-2 V-30 C14,-27 22,-20 17,-9" fill="none" stroke="#ffffff" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="bubble">
|
||||
<circle r="1" fill="#22d3e6" fill-opacity="0.22" stroke="#22d3e6" stroke-width="0.08"/>
|
||||
<path d="M-0.62,-0.2 A0.66,0.66 0 0 1 -0.2,-0.62" fill="none" stroke="#ffffff" stroke-width="0.12" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- canon body: round, yellow face, orange crown and back meeting in a V between the eyes -->
|
||||
<path id="body" d="M396,214 C552,214 660,330 654,480 C648,632 532,734 388,732 C240,730 136,628 138,472 C140,320 240,214 396,214 Z"/>
|
||||
<clipPath id="bodyClip"><use href="#body"/></clipPath>
|
||||
<mask id="bodyShade"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-44,-40)" fill="#000"/></mask>
|
||||
<mask id="bodyRim"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-13,-3)" fill="#000"/></mask>
|
||||
<path id="crown" d="M100,170 H700 V430 C664,372 616,336 566,334 C522,334 484,362 458,414 C432,360 386,326 328,322 C268,320 226,372 214,446 C204,530 220,620 262,712 L100,780 Z"/>
|
||||
|
||||
<!-- forked tail behind, for the bust -->
|
||||
<g id="tailBust">
|
||||
<path d="M212,444 C152,402 86,330 54,226 C84,240 110,236 126,214 C140,250 168,262 198,250 C206,320 234,384 264,428 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M210,520 C148,566 92,650 66,770 C96,750 126,752 142,772 C158,744 188,736 212,746 C218,660 240,592 270,548 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M208,432 C162,380 122,320 94,246 M234,420 C212,370 188,320 170,266 M208,542 C162,600 126,670 106,756 M236,552 C212,610 192,670 182,740" fill="none" stroke="#d4480f" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- long forked tail, for the full body -->
|
||||
<g id="tailFull">
|
||||
<path d="M190,440 C120,380 40,320 -40,236 C-20,280 -26,310 -50,330 C-10,350 0,380 -20,410 C40,430 120,460 170,480 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M190,510 C120,560 40,620 -40,720 C-14,700 14,700 30,716 C40,680 60,660 92,662 C110,610 150,560 196,532 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M180,450 C120,400 60,350 0,300 M180,500 C120,560 60,620 10,680" fill="none" stroke="#d4480f" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- head, body, crest, headphones: identical in every take -->
|
||||
<g id="fishBase">
|
||||
<path d="M318,252 C298,184 326,118 388,90 C380,124 396,144 428,124 C424,150 446,166 476,150 C476,190 476,222 472,254 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M392,242 C380,192 386,150 402,118 M432,240 C430,200 436,176 454,160 M356,244 C346,200 352,160 370,130" fill="none" stroke="#d4480f" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use href="#body" fill="#ffb320"/>
|
||||
<g clip-path="url(#bodyClip)">
|
||||
<use href="#crown" fill="#ff6a1f"/>
|
||||
<path d="M206,300 C246,256 300,236 346,236" fill="none" stroke="#ff9a5a" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M300,650 q22,20 44,0 q22,20 44,0 q22,20 44,0 M276,612 q22,20 44,0 M410,612 q22,20 44,0 q22,20 44,0 M344,690 q22,20 44,0 q22,20 44,0" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<rect width="1200" height="800" fill="#9a3200" fill-opacity="0.26" mask="url(#bodyShade)"/>
|
||||
<rect width="1200" height="800" fill="#22d3e6" mask="url(#bodyRim)"/>
|
||||
</g>
|
||||
<use href="#body" fill="none" stroke="#0b4a55" stroke-width="7"/>
|
||||
<!-- far cup, band -->
|
||||
<ellipse cx="666" cy="420" rx="44" ry="80" fill="#1c1c24" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="674" cy="420" rx="24" ry="54" fill="none" stroke="#22d3e6" stroke-width="8"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="#0b4a55" stroke-width="44" stroke-linecap="round"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="#1c1c24" stroke-width="32" stroke-linecap="round"/>
|
||||
<path d="M196,270 C230,196 300,156 380,150" fill="none" stroke="#454558" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- near cup, drawn after the face so a fin can sit on it -->
|
||||
<g id="nearCup">
|
||||
<ellipse cx="196" cy="426" rx="58" ry="84" fill="#2c2c38" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="168" cy="426" rx="62" ry="86" fill="#1c1c24" stroke="#0b4a55" stroke-width="7"/>
|
||||
<ellipse cx="168" cy="426" rx="40" ry="60" fill="none" stroke="#22d3e6" stroke-width="10"/>
|
||||
<ellipse cx="168" cy="426" rx="22" ry="36" fill="#22d3e6" opacity="0.4"/>
|
||||
<path d="M134,382 C140,364 152,354 166,352" fill="none" stroke="#454558" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- canon snout: rounded upper lip over an open mouth -->
|
||||
<g id="mouthOpen">
|
||||
<path d="M420,554 C436,564 452,562 468,552 C484,562 500,564 516,552 C512,596 490,616 468,616 C446,616 424,596 420,554 Z" fill="#8a2234" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M434,598 C446,586 490,586 502,598 C492,612 446,612 434,598 Z" fill="#ff7f8f"/>
|
||||
<path d="M416,560 C414,530 440,512 468,514 C496,512 522,530 520,558" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,532 C442,522 456,520 466,522" fill="none" stroke="#ffd36a" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="mouthPout">
|
||||
<path d="M420,560 C418,532 442,516 468,518 C494,516 518,532 516,560" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,534 C442,524 456,522 466,524" fill="none" stroke="#ffd36a" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M440,566 C450,556 458,572 468,562 C478,552 486,568 496,560" fill="none" stroke="#0b4a55" stroke-width="4.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="blush">
|
||||
<ellipse cx="316" cy="548" rx="34" ry="14" fill="#ff7f8f" opacity="0.55"/>
|
||||
<ellipse cx="590" cy="540" rx="22" ry="12" fill="#ff7f8f" opacity="0.55"/>
|
||||
<path d="M302,544 l-6,10 M318,544 l-6,10 M334,544 l-6,10 M584,537 l-5,9 M598,537 l-5,9" stroke="#e25566" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="core"><use href="#fishBase"/><use href="#eye" transform="translate(366,462) scale(1.04)"/><use href="#eye" transform="translate(540,456) scale(0.8,0.96)"/><path d="M318,384 C336,370 364,368 384,376 M520,374 C536,366 556,368 570,378" fill="none" stroke="#0b4a55" stroke-width="6" stroke-linecap="round"/><use href="#blush"/><use href="#mouthOpen"/><use href="#nearCup"/><path d="M262,592 C214,584 176,540 166,482 C190,488 210,478 222,458 C238,502 262,546 262,592 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/><path d="M248,580 C214,566 192,540 182,506 M254,560 C238,540 230,516 226,490" fill="none" stroke="#d4480f" stroke-width="3" stroke-linecap="round"/><path d="M596,628 C646,620 686,582 698,532 C674,548 652,544 636,532 C628,574 608,602 596,628 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/><path d="M612,612 C642,600 666,576 678,552" fill="none" stroke="#d4480f" stroke-width="3" stroke-linecap="round"/></g>
|
||||
<g id="bustChar"><use href="#tailBust"/><use href="#core"/></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#eef3f2"/>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M60,640 C200,610 300,660 420,640 C560,616 660,650 800,630 V800 H40 Z" fill="#0b2a33"/>
|
||||
<path d="M600,40 l-180,740 M680,40 l-180,740" stroke="#22d3e6" stroke-opacity="0.07" stroke-width="40"/>
|
||||
<g transform="translate(24,0)"><use href="#bustChar"/></g>
|
||||
</g>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="none" stroke="#22d3e6" stroke-width="5"/>
|
||||
<path d="M84,32 H776" stroke="#22d3e6" stroke-width="2" stroke-opacity="0.5"/>
|
||||
<use href="#bubble" transform="translate(712,262) scale(36)"/><use href="#note" transform="translate(708,276) scale(1.05)"/>
|
||||
<use href="#bubble" transform="translate(760,150) scale(26)"/><use href="#note" transform="translate(757,161) scale(0.75)"/>
|
||||
<use href="#bubble" transform="translate(690,128) scale(13)"/><use href="#bubble" transform="translate(726,368) scale(15)"/>
|
||||
<path d="M520,724 H770 L764,768 H512 Z" fill="#22d3e6"/>
|
||||
<text x="534" y="755" font-family="Consolas, 'Courier New', monospace" font-size="24" font-weight="700" letter-spacing="8" fill="#07111a">AQUA</text>
|
||||
|
||||
<text x="830" y="58" font-family="'Segoe UI', Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="4" fill="#0b4a55">AQUA · A</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', Arial, sans-serif" font-size="17" font-weight="600" letter-spacing="2" fill="#0f86a0">LISTENING <tspan font-weight="400" letter-spacing="0" fill="#4a6a70">(the canon fish, idol framing)</tspan></text>
|
||||
<text font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#1c1c24"><tspan x="830" y="118">Hook: the canon goldfish in Persona framing — one</tspan><tspan x="830" y="137">fin pressed to her ear cup, eyes up and bright,</tspan><tspan x="830" y="156">note bubbles rising toward the text box.</tspan></text>
|
||||
|
||||
<ellipse cx="925" cy="500" rx="100" ry="10" fill="#0b4a55" opacity="0.15"/>
|
||||
<g transform="translate(935,335) rotate(-8) scale(0.33) translate(-400,-470)">
|
||||
<use href="#tailFull"/><use href="#core"/>
|
||||
</g>
|
||||
<text x="925" y="530" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">full body · swimming, tail free</text>
|
||||
|
||||
<rect x="1040" y="250" width="140" height="140" fill="#ffffff" stroke="#b7c9cb"/>
|
||||
<g transform="translate(1048,262) scale(0.165) translate(-50,-90)">
|
||||
<g transform="translate(24,0)"><use href="#bustChar" filter="url(#sil)"/></g>
|
||||
</g>
|
||||
<text x="1110" y="408" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">bust silhouette</text>
|
||||
|
||||
<text x="830" y="612" font-family="'Segoe UI', Arial, sans-serif" font-size="13" font-weight="700" letter-spacing="2" fill="#0b4a55">PALETTE</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#1c1c24" text-anchor="middle"><rect x="830" y="626" width="50" height="50" rx="6" fill="#22d3e6" stroke="#0b4a55" stroke-width="2"/><text x="855" y="694">#22d3e6</text><text x="855" y="708">key cyan</text><rect x="890" y="626" width="50" height="50" rx="6" fill="#0b4a55" stroke="#0b4a55" stroke-width="2"/><text x="915" y="694">#0b4a55</text><text x="915" y="708">line</text><rect x="950" y="626" width="50" height="50" rx="6" fill="#ffb320" stroke="#0b4a55" stroke-width="2"/><text x="975" y="694">#ffb320</text><text x="975" y="708">gold</text><rect x="1010" y="626" width="50" height="50" rx="6" fill="#ff6a1f" stroke="#0b4a55" stroke-width="2"/><text x="1035" y="694">#ff6a1f</text><text x="1035" y="708">fin</text><rect x="1070" y="626" width="50" height="50" rx="6" fill="#1c1c24" stroke="#0b4a55" stroke-width="2"/><text x="1095" y="694">#1c1c24</text><text x="1095" y="708">phones</text><rect x="1130" y="626" width="50" height="50" rx="6" fill="#ffffff" stroke="#0b4a55" stroke-width="2"/><text x="1155" y="694">#ffffff</text><text x="1155" y="708">bubble</text></g>
|
||||
<text x="830" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">Canon: cotsc-praxis aqua-sheet. One shadow step per material;</text>
|
||||
<text x="830" y="764" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">cyan rim light on the right; eye blue kept from the canon.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
BIN
cast-designs/proposals/aqua/aqua-B.png
Normal file
|
After Width: | Height: | Size: 199 KiB |
146
cast-designs/proposals/aqua/aqua-B.svg
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Aqua, take B: Conductor</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feComponentTransfer in="SourceAlpha" result="a"><feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1"/></feComponentTransfer>
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="a" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><path d="M70,20 H790 L760,780 H40 Z"/></clipPath>
|
||||
<path id="eyeShape" d="M-46,-4 C-46,-50 -22,-62 2,-62 C28,-62 48,-48 48,-4 C48,38 28,60 2,60 C-22,60 -46,38 -46,-4 Z"/>
|
||||
<clipPath id="eyeClip"><use href="#eyeShape"/></clipPath>
|
||||
<!-- anime eye on the canon's round blue fish eye -->
|
||||
<g id="eye">
|
||||
<use href="#eyeShape" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<path d="M-52,-64 H54 V-12 C34,-44 -30,-44 -52,-10 Z" fill="#c4eef5"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="#1fa9e0"/>
|
||||
<path d="M-40,-62 H52 V6 C34,-30 -22,-34 -40,6 Z" fill="#1466a8"/>
|
||||
<ellipse cx="8" cy="36" rx="24" ry="12" fill="#8ff0fa"/>
|
||||
<ellipse cx="6" cy="10" rx="17" ry="24" fill="#0b2f55"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="none" stroke="#0b2f55" stroke-width="4"/>
|
||||
</g>
|
||||
<ellipse cx="-11" cy="-14" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="22" cy="30" r="6.5" fill="#ffffff"/>
|
||||
<path d="M-56,2 C-58,-50 -22,-72 6,-70 C34,-68 56,-52 59,-18 L68,-24 C66,-14 61,-8 55,-4 C48,-44 30,-59 4,-59 C-24,-59 -44,-40 -46,2 Z" fill="#0b4a55"/>
|
||||
<path d="M-26,54 C-6,63 20,63 32,53" fill="none" stroke="#0b4a55" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- half-lowered lid for the stern take -->
|
||||
<g id="eyeStern">
|
||||
<use href="#eye"/>
|
||||
<path d="M-62,-80 H66 V-14 C30,-30 -30,-28 -62,-8 Z" fill="#ffb320"/>
|
||||
<path d="M-58,-6 C-30,-28 30,-30 64,-14" fill="none" stroke="#0b4a55" stroke-width="9" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="note">
|
||||
<ellipse cx="0" cy="0" rx="8" ry="6" transform="rotate(-22)" fill="#ffffff"/>
|
||||
<path d="M6.5,-2 V-30 C14,-27 22,-20 17,-9" fill="none" stroke="#ffffff" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="bubble">
|
||||
<circle r="1" fill="#22d3e6" fill-opacity="0.22" stroke="#22d3e6" stroke-width="0.08"/>
|
||||
<path d="M-0.62,-0.2 A0.66,0.66 0 0 1 -0.2,-0.62" fill="none" stroke="#ffffff" stroke-width="0.12" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- canon body: round, yellow face, orange crown and back meeting in a V between the eyes -->
|
||||
<path id="body" d="M396,214 C552,214 660,330 654,480 C648,632 532,734 388,732 C240,730 136,628 138,472 C140,320 240,214 396,214 Z"/>
|
||||
<clipPath id="bodyClip"><use href="#body"/></clipPath>
|
||||
<mask id="bodyShade"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-44,-40)" fill="#000"/></mask>
|
||||
<mask id="bodyRim"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-13,-3)" fill="#000"/></mask>
|
||||
<path id="crown" d="M100,170 H700 V430 C664,372 616,336 566,334 C522,334 484,362 458,414 C432,360 386,326 328,322 C268,320 226,372 214,446 C204,530 220,620 262,712 L100,780 Z"/>
|
||||
|
||||
<!-- forked tail behind, for the bust -->
|
||||
<g id="tailBust">
|
||||
<path d="M212,444 C152,402 86,330 54,226 C84,240 110,236 126,214 C140,250 168,262 198,250 C206,320 234,384 264,428 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M210,520 C148,566 92,650 66,770 C96,750 126,752 142,772 C158,744 188,736 212,746 C218,660 240,592 270,548 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M208,432 C162,380 122,320 94,246 M234,420 C212,370 188,320 170,266 M208,542 C162,600 126,670 106,756 M236,552 C212,610 192,670 182,740" fill="none" stroke="#d4480f" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- long forked tail, for the full body -->
|
||||
<g id="tailFull">
|
||||
<path d="M190,440 C120,380 40,320 -40,236 C-20,280 -26,310 -50,330 C-10,350 0,380 -20,410 C40,430 120,460 170,480 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M190,510 C120,560 40,620 -40,720 C-14,700 14,700 30,716 C40,680 60,660 92,662 C110,610 150,560 196,532 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M180,450 C120,400 60,350 0,300 M180,500 C120,560 60,620 10,680" fill="none" stroke="#d4480f" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- head, body, crest, headphones: identical in every take -->
|
||||
<g id="fishBase">
|
||||
<path d="M318,252 C298,184 326,118 388,90 C380,124 396,144 428,124 C424,150 446,166 476,150 C476,190 476,222 472,254 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M392,242 C380,192 386,150 402,118 M432,240 C430,200 436,176 454,160 M356,244 C346,200 352,160 370,130" fill="none" stroke="#d4480f" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use href="#body" fill="#ffb320"/>
|
||||
<g clip-path="url(#bodyClip)">
|
||||
<use href="#crown" fill="#ff6a1f"/>
|
||||
<path d="M206,300 C246,256 300,236 346,236" fill="none" stroke="#ff9a5a" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M300,650 q22,20 44,0 q22,20 44,0 q22,20 44,0 M276,612 q22,20 44,0 M410,612 q22,20 44,0 q22,20 44,0 M344,690 q22,20 44,0 q22,20 44,0" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<rect width="1200" height="800" fill="#9a3200" fill-opacity="0.26" mask="url(#bodyShade)"/>
|
||||
<rect width="1200" height="800" fill="#22d3e6" mask="url(#bodyRim)"/>
|
||||
</g>
|
||||
<use href="#body" fill="none" stroke="#0b4a55" stroke-width="7"/>
|
||||
<!-- far cup, band -->
|
||||
<ellipse cx="666" cy="420" rx="44" ry="80" fill="#1c1c24" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="674" cy="420" rx="24" ry="54" fill="none" stroke="#22d3e6" stroke-width="8"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="#0b4a55" stroke-width="44" stroke-linecap="round"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="#1c1c24" stroke-width="32" stroke-linecap="round"/>
|
||||
<path d="M196,270 C230,196 300,156 380,150" fill="none" stroke="#454558" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- near cup, drawn after the face so a fin can sit on it -->
|
||||
<g id="nearCup">
|
||||
<ellipse cx="196" cy="426" rx="58" ry="84" fill="#2c2c38" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="168" cy="426" rx="62" ry="86" fill="#1c1c24" stroke="#0b4a55" stroke-width="7"/>
|
||||
<ellipse cx="168" cy="426" rx="40" ry="60" fill="none" stroke="#22d3e6" stroke-width="10"/>
|
||||
<ellipse cx="168" cy="426" rx="22" ry="36" fill="#22d3e6" opacity="0.4"/>
|
||||
<path d="M134,382 C140,364 152,354 166,352" fill="none" stroke="#454558" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- canon snout: rounded upper lip over an open mouth -->
|
||||
<g id="mouthOpen">
|
||||
<path d="M420,554 C436,564 452,562 468,552 C484,562 500,564 516,552 C512,596 490,616 468,616 C446,616 424,596 420,554 Z" fill="#8a2234" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M434,598 C446,586 490,586 502,598 C492,612 446,612 434,598 Z" fill="#ff7f8f"/>
|
||||
<path d="M416,560 C414,530 440,512 468,514 C496,512 522,530 520,558" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,532 C442,522 456,520 466,522" fill="none" stroke="#ffd36a" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="mouthPout">
|
||||
<path d="M420,560 C418,532 442,516 468,518 C494,516 518,532 516,560" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,534 C442,524 456,522 466,524" fill="none" stroke="#ffd36a" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M440,566 C450,556 458,572 468,562 C478,552 486,568 496,560" fill="none" stroke="#0b4a55" stroke-width="4.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="blush">
|
||||
<ellipse cx="316" cy="548" rx="34" ry="14" fill="#ff7f8f" opacity="0.55"/>
|
||||
<ellipse cx="590" cy="540" rx="22" ry="12" fill="#ff7f8f" opacity="0.55"/>
|
||||
<path d="M302,544 l-6,10 M318,544 l-6,10 M334,544 l-6,10 M584,537 l-5,9 M598,537 l-5,9" stroke="#e25566" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="core"><use href="#fishBase"/><path d="M314,474 C330,436 394,434 414,474" fill="none" stroke="#0b4a55" stroke-width="9" stroke-linecap="round"/><path d="M504,470 C516,440 558,440 572,470" fill="none" stroke="#0b4a55" stroke-width="8" stroke-linecap="round"/><path d="M310,476 l-12,6 M576,470 l10,6" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/><path d="M318,394 C336,378 364,374 386,382 M518,380 C536,370 558,372 572,382" fill="none" stroke="#0b4a55" stroke-width="6" stroke-linecap="round"/><use href="#blush"/><use href="#mouthOpen" transform="translate(466,560) scale(1.12) translate(-466,-560)"/><use href="#nearCup"/><path d="M252,610 C206,612 168,590 150,552 C170,552 188,544 198,530 C214,566 236,590 252,610 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/><path d="M238,602 C210,598 186,584 170,566" fill="none" stroke="#d4480f" stroke-width="3" stroke-linecap="round"/><path d="M600,560 C628,520 660,470 704,446 C700,472 708,492 726,504 C690,526 640,560 612,600 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/><path d="M614,568 C640,530 668,496 700,474" fill="none" stroke="#d4480f" stroke-width="3" stroke-linecap="round"/></g>
|
||||
<g id="bustChar"><path d="M150,610 C150,520 230,470 320,450" fill="none" stroke="#0b4a55" stroke-width="26" stroke-linecap="round"/><path d="M150,610 C150,520 230,470 320,450" fill="none" stroke="#0f86a0" stroke-width="18" stroke-linecap="round"/><use href="#tailBust"/><use href="#core"/><path d="M698,476 L760,250" stroke="#0b4a55" stroke-width="13" stroke-linecap="round"/><path d="M698,476 L760,250" stroke="#ffffff" stroke-width="6" stroke-linecap="round"/><circle cx="704" cy="458" r="12" fill="#22d3e6" stroke="#0b4a55" stroke-width="4"/><path d="M760,212 l6,24 l24,6 l-24,6 l-6,24 l-6,-24 l-24,-6 l24,-6 Z" fill="#ffffff"/><path d="M150,610 C130,690 210,744 340,740 C480,736 610,690 700,610 C736,576 726,540 696,548" fill="none" stroke="#0b4a55" stroke-width="28" stroke-linecap="round"/><path d="M150,610 C130,690 210,744 340,740 C480,736 610,690 700,610 C736,576 726,540 696,548" fill="none" stroke="#22d3e6" stroke-width="20" stroke-linecap="round"/><path d="M176,676 C190,704 226,720 290,724" fill="none" stroke="#a6f4fb" stroke-width="6" stroke-linecap="round"/></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#eef3f2"/>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M60,640 C200,610 300,660 420,640 C560,616 660,650 800,630 V800 H40 Z" fill="#0b2a33"/>
|
||||
<path d="M600,40 l-180,740 M680,40 l-180,740" stroke="#22d3e6" stroke-opacity="0.07" stroke-width="40"/>
|
||||
<g transform="translate(400,470) rotate(-7) translate(-386,-470)"><use href="#bustChar"/></g>
|
||||
</g>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="none" stroke="#22d3e6" stroke-width="5"/>
|
||||
<path d="M84,32 H776" stroke="#22d3e6" stroke-width="2" stroke-opacity="0.5"/>
|
||||
<use href="#bubble" transform="translate(712,330) scale(22)"/><use href="#note" transform="translate(708,340) scale(0.8)"/>
|
||||
<use href="#bubble" transform="translate(640,130) scale(30)"/><use href="#note" transform="translate(636,142) scale(0.9)"/>
|
||||
<use href="#bubble" transform="translate(110,120) scale(16)"/><use href="#bubble" transform="translate(150,80) scale(9)"/>
|
||||
<path d="M520,724 H770 L764,768 H512 Z" fill="#22d3e6"/>
|
||||
<text x="534" y="755" font-family="Consolas, 'Courier New', monospace" font-size="24" font-weight="700" letter-spacing="8" fill="#07111a">AQUA</text>
|
||||
|
||||
<text x="830" y="58" font-family="'Segoe UI', Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="4" fill="#0b4a55">AQUA · B</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', Arial, sans-serif" font-size="17" font-weight="600" letter-spacing="2" fill="#0f86a0">CONDUCTOR <tspan font-weight="400" letter-spacing="0" fill="#4a6a70">(the canon fish, baton up)</tspan></text>
|
||||
<text font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#1c1c24"><tspan x="830" y="118">Hook: she conducts the dings — baton raised in a</tspan><tspan x="830" y="137">fin, eyes squeezed shut in a big smile, a ribbon</tspan><tspan x="830" y="156">of water looping round her like a staff line.</tspan></text>
|
||||
|
||||
<ellipse cx="925" cy="500" rx="100" ry="10" fill="#0b4a55" opacity="0.15"/>
|
||||
<g transform="translate(935,335) rotate(-8) scale(0.33) translate(-400,-470)">
|
||||
<use href="#tailFull"/><use href="#core"/><path d="M698,476 L760,250" stroke="#0b4a55" stroke-width="16" stroke-linecap="round"/><path d="M698,476 L760,250" stroke="#ffffff" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
<text x="925" y="530" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">full body · swimming, tail free</text>
|
||||
|
||||
<rect x="1040" y="250" width="140" height="140" fill="#ffffff" stroke="#b7c9cb"/>
|
||||
<g transform="translate(1048,262) scale(0.165) translate(-50,-90)">
|
||||
<g transform="translate(400,470) rotate(-7) translate(-386,-470)"><use href="#bustChar" filter="url(#sil)"/></g>
|
||||
</g>
|
||||
<text x="1110" y="408" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">bust silhouette</text>
|
||||
|
||||
<text x="830" y="612" font-family="'Segoe UI', Arial, sans-serif" font-size="13" font-weight="700" letter-spacing="2" fill="#0b4a55">PALETTE</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#1c1c24" text-anchor="middle"><rect x="830" y="626" width="50" height="50" rx="6" fill="#22d3e6" stroke="#0b4a55" stroke-width="2"/><text x="855" y="694">#22d3e6</text><text x="855" y="708">key cyan</text><rect x="890" y="626" width="50" height="50" rx="6" fill="#0b4a55" stroke="#0b4a55" stroke-width="2"/><text x="915" y="694">#0b4a55</text><text x="915" y="708">line</text><rect x="950" y="626" width="50" height="50" rx="6" fill="#ffb320" stroke="#0b4a55" stroke-width="2"/><text x="975" y="694">#ffb320</text><text x="975" y="708">gold</text><rect x="1010" y="626" width="50" height="50" rx="6" fill="#ff6a1f" stroke="#0b4a55" stroke-width="2"/><text x="1035" y="694">#ff6a1f</text><text x="1035" y="708">fin</text><rect x="1070" y="626" width="50" height="50" rx="6" fill="#1c1c24" stroke="#0b4a55" stroke-width="2"/><text x="1095" y="694">#1c1c24</text><text x="1095" y="708">phones</text><rect x="1130" y="626" width="50" height="50" rx="6" fill="#ffffff" stroke="#0b4a55" stroke-width="2"/><text x="1155" y="694">#ffffff</text><text x="1155" y="708">bubble</text></g>
|
||||
<text x="830" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">Canon: cotsc-praxis aqua-sheet. One shadow step per material;</text>
|
||||
<text x="830" y="764" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">cyan rim light on the right; eye blue kept from the canon.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
BIN
cast-designs/proposals/aqua/aqua-C.png
Normal file
|
After Width: | Height: | Size: 197 KiB |
145
cast-designs/proposals/aqua/aqua-C.svg
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Aqua, take C: Patch Steward</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feComponentTransfer in="SourceAlpha" result="a"><feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1"/></feComponentTransfer>
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="a" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><path d="M70,20 H790 L760,780 H40 Z"/></clipPath>
|
||||
<path id="eyeShape" d="M-46,-4 C-46,-50 -22,-62 2,-62 C28,-62 48,-48 48,-4 C48,38 28,60 2,60 C-22,60 -46,38 -46,-4 Z"/>
|
||||
<clipPath id="eyeClip"><use href="#eyeShape"/></clipPath>
|
||||
<!-- anime eye on the canon's round blue fish eye -->
|
||||
<g id="eye">
|
||||
<use href="#eyeShape" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<path d="M-52,-64 H54 V-12 C34,-44 -30,-44 -52,-10 Z" fill="#c4eef5"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="#1fa9e0"/>
|
||||
<path d="M-40,-62 H52 V6 C34,-30 -22,-34 -40,6 Z" fill="#1466a8"/>
|
||||
<ellipse cx="8" cy="36" rx="24" ry="12" fill="#8ff0fa"/>
|
||||
<ellipse cx="6" cy="10" rx="17" ry="24" fill="#0b2f55"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="none" stroke="#0b2f55" stroke-width="4"/>
|
||||
</g>
|
||||
<ellipse cx="-11" cy="-14" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="22" cy="30" r="6.5" fill="#ffffff"/>
|
||||
<path d="M-56,2 C-58,-50 -22,-72 6,-70 C34,-68 56,-52 59,-18 L68,-24 C66,-14 61,-8 55,-4 C48,-44 30,-59 4,-59 C-24,-59 -44,-40 -46,2 Z" fill="#0b4a55"/>
|
||||
<path d="M-26,54 C-6,63 20,63 32,53" fill="none" stroke="#0b4a55" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- half-lowered lid for the stern take -->
|
||||
<g id="eyeStern">
|
||||
<use href="#eye"/>
|
||||
<path d="M-62,-80 H66 V-14 C30,-30 -30,-28 -62,-8 Z" fill="#ffb320"/>
|
||||
<path d="M-58,-6 C-30,-28 30,-30 64,-14" fill="none" stroke="#0b4a55" stroke-width="9" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="note">
|
||||
<ellipse cx="0" cy="0" rx="8" ry="6" transform="rotate(-22)" fill="#ffffff"/>
|
||||
<path d="M6.5,-2 V-30 C14,-27 22,-20 17,-9" fill="none" stroke="#ffffff" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="bubble">
|
||||
<circle r="1" fill="#22d3e6" fill-opacity="0.22" stroke="#22d3e6" stroke-width="0.08"/>
|
||||
<path d="M-0.62,-0.2 A0.66,0.66 0 0 1 -0.2,-0.62" fill="none" stroke="#ffffff" stroke-width="0.12" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- canon body: round, yellow face, orange crown and back meeting in a V between the eyes -->
|
||||
<path id="body" d="M396,214 C552,214 660,330 654,480 C648,632 532,734 388,732 C240,730 136,628 138,472 C140,320 240,214 396,214 Z"/>
|
||||
<clipPath id="bodyClip"><use href="#body"/></clipPath>
|
||||
<mask id="bodyShade"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-44,-40)" fill="#000"/></mask>
|
||||
<mask id="bodyRim"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-13,-3)" fill="#000"/></mask>
|
||||
<path id="crown" d="M100,170 H700 V430 C664,372 616,336 566,334 C522,334 484,362 458,414 C432,360 386,326 328,322 C268,320 226,372 214,446 C204,530 220,620 262,712 L100,780 Z"/>
|
||||
|
||||
<!-- forked tail behind, for the bust -->
|
||||
<g id="tailBust">
|
||||
<path d="M212,444 C152,402 86,330 54,226 C84,240 110,236 126,214 C140,250 168,262 198,250 C206,320 234,384 264,428 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M210,520 C148,566 92,650 66,770 C96,750 126,752 142,772 C158,744 188,736 212,746 C218,660 240,592 270,548 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M208,432 C162,380 122,320 94,246 M234,420 C212,370 188,320 170,266 M208,542 C162,600 126,670 106,756 M236,552 C212,610 192,670 182,740" fill="none" stroke="#d4480f" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- long forked tail, for the full body -->
|
||||
<g id="tailFull">
|
||||
<path d="M190,440 C120,380 40,320 -40,236 C-20,280 -26,310 -50,330 C-10,350 0,380 -20,410 C40,430 120,460 170,480 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M190,510 C120,560 40,620 -40,720 C-14,700 14,700 30,716 C40,680 60,660 92,662 C110,610 150,560 196,532 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M180,450 C120,400 60,350 0,300 M180,500 C120,560 60,620 10,680" fill="none" stroke="#d4480f" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- head, body, crest, headphones: identical in every take -->
|
||||
<g id="fishBase">
|
||||
<path d="M318,252 C298,184 326,118 388,90 C380,124 396,144 428,124 C424,150 446,166 476,150 C476,190 476,222 472,254 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M392,242 C380,192 386,150 402,118 M432,240 C430,200 436,176 454,160 M356,244 C346,200 352,160 370,130" fill="none" stroke="#d4480f" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use href="#body" fill="#ffb320"/>
|
||||
<g clip-path="url(#bodyClip)">
|
||||
<use href="#crown" fill="#ff6a1f"/>
|
||||
<path d="M206,300 C246,256 300,236 346,236" fill="none" stroke="#ff9a5a" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M300,650 q22,20 44,0 q22,20 44,0 q22,20 44,0 M276,612 q22,20 44,0 M410,612 q22,20 44,0 q22,20 44,0 M344,690 q22,20 44,0 q22,20 44,0" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<rect width="1200" height="800" fill="#9a3200" fill-opacity="0.26" mask="url(#bodyShade)"/>
|
||||
<rect width="1200" height="800" fill="#22d3e6" mask="url(#bodyRim)"/>
|
||||
</g>
|
||||
<use href="#body" fill="none" stroke="#0b4a55" stroke-width="7"/>
|
||||
<!-- far cup, band -->
|
||||
<ellipse cx="666" cy="420" rx="44" ry="80" fill="#1c1c24" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="674" cy="420" rx="24" ry="54" fill="none" stroke="#22d3e6" stroke-width="8"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="#0b4a55" stroke-width="44" stroke-linecap="round"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="#1c1c24" stroke-width="32" stroke-linecap="round"/>
|
||||
<path d="M196,270 C230,196 300,156 380,150" fill="none" stroke="#454558" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- near cup, drawn after the face so a fin can sit on it -->
|
||||
<g id="nearCup">
|
||||
<ellipse cx="196" cy="426" rx="58" ry="84" fill="#2c2c38" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="168" cy="426" rx="62" ry="86" fill="#1c1c24" stroke="#0b4a55" stroke-width="7"/>
|
||||
<ellipse cx="168" cy="426" rx="40" ry="60" fill="none" stroke="#22d3e6" stroke-width="10"/>
|
||||
<ellipse cx="168" cy="426" rx="22" ry="36" fill="#22d3e6" opacity="0.4"/>
|
||||
<path d="M134,382 C140,364 152,354 166,352" fill="none" stroke="#454558" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- canon snout: rounded upper lip over an open mouth -->
|
||||
<g id="mouthOpen">
|
||||
<path d="M420,554 C436,564 452,562 468,552 C484,562 500,564 516,552 C512,596 490,616 468,616 C446,616 424,596 420,554 Z" fill="#8a2234" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M434,598 C446,586 490,586 502,598 C492,612 446,612 434,598 Z" fill="#ff7f8f"/>
|
||||
<path d="M416,560 C414,530 440,512 468,514 C496,512 522,530 520,558" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,532 C442,522 456,520 466,522" fill="none" stroke="#ffd36a" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="mouthPout">
|
||||
<path d="M420,560 C418,532 442,516 468,518 C494,516 518,532 516,560" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,534 C442,524 456,522 466,524" fill="none" stroke="#ffd36a" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M440,566 C450,556 458,572 468,562 C478,552 486,568 496,560" fill="none" stroke="#0b4a55" stroke-width="4.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="blush">
|
||||
<ellipse cx="316" cy="548" rx="34" ry="14" fill="#ff7f8f" opacity="0.55"/>
|
||||
<ellipse cx="590" cy="540" rx="22" ry="12" fill="#ff7f8f" opacity="0.55"/>
|
||||
<path d="M302,544 l-6,10 M318,544 l-6,10 M334,544 l-6,10 M584,537 l-5,9 M598,537 l-5,9" stroke="#e25566" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="core"><use href="#fishBase"/><use href="#eyeStern" transform="translate(366,462) scale(1.04)"/><use href="#eyeStern" transform="translate(540,456) scale(0.8,0.96)"/><path d="M316,368 L394,392 M512,392 L574,366" fill="none" stroke="#0b4a55" stroke-width="9" stroke-linecap="round"/><ellipse cx="300" cy="560" rx="40" ry="18" fill="#ff7f8f" opacity="0.5"/><ellipse cx="596" cy="548" rx="24" ry="13" fill="#ff7f8f" opacity="0.5"/><use href="#mouthPout"/><use href="#nearCup"/><path d="M250,612 C206,612 170,590 152,552 C172,552 190,544 200,530 C216,566 238,590 250,612 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/><path d="M236,602 C210,598 186,584 170,566" fill="none" stroke="#d4480f" stroke-width="3" stroke-linecap="round"/><path d="M560,640 C592,606 606,560 604,516 C622,528 644,530 662,520 C660,572 626,624 580,656 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/><path d="M574,640 C602,610 618,572 622,534" fill="none" stroke="#d4480f" stroke-width="3" stroke-linecap="round"/></g>
|
||||
<g id="bustChar"><use href="#tailBust"/><use href="#core"/><path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="#0b4a55" stroke-width="18" stroke-linecap="round"/><path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="#22d3e6" stroke-width="11" stroke-linecap="round"/><path d="M600,572 l8,-62 l22,2 l-8,62 Z" fill="#1c1c24" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/><path d="M620,508 l4,-34" stroke="#c7d3d6" stroke-width="8" stroke-linecap="round"/><circle cx="625" cy="470" r="5" fill="#c7d3d6"/><path d="M156,500 h24 v22 h-24 Z" fill="#1c1c24" stroke="#0b4a55" stroke-width="4"/></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#eef3f2"/>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M60,640 C200,610 300,660 420,640 C560,616 660,650 800,630 V800 H40 Z" fill="#0b2a33"/>
|
||||
<path d="M600,40 l-180,740 M680,40 l-180,740" stroke="#22d3e6" stroke-opacity="0.07" stroke-width="40"/>
|
||||
<g transform="translate(390,470) scale(1.06) translate(-372,-470)"><use href="#bustChar"/></g>
|
||||
</g>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="none" stroke="#22d3e6" stroke-width="5"/>
|
||||
<path d="M84,32 H776" stroke="#22d3e6" stroke-width="2" stroke-opacity="0.5"/>
|
||||
<use href="#bubble" transform="translate(746,360) scale(14)"/><use href="#bubble" transform="translate(726,300) scale(8)"/>
|
||||
<path d="M740,200 l10,-26 M766,214 l22,-14 M770,244 l26,0" stroke="#22d3e6" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M520,724 H770 L764,768 H512 Z" fill="#22d3e6"/>
|
||||
<text x="534" y="755" font-family="Consolas, 'Courier New', monospace" font-size="24" font-weight="700" letter-spacing="8" fill="#07111a">AQUA</text>
|
||||
|
||||
<text x="830" y="58" font-family="'Segoe UI', Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="4" fill="#0b4a55">AQUA · C</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', Arial, sans-serif" font-size="17" font-weight="600" letter-spacing="2" fill="#0f86a0">PATCH STEWARD <tspan font-weight="400" letter-spacing="0" fill="#4a6a70">(the canon fish, cable in fin)</tspan></text>
|
||||
<text font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#1c1c24"><tspan x="830" y="118">Hook: the steward under the cuteness — a patch</tspan><tspan x="830" y="137">cable plugged into her ear cup, the jack raised</tspan><tspan x="830" y="156">to her face, lids down: presets are serious.</tspan></text>
|
||||
|
||||
<ellipse cx="925" cy="500" rx="100" ry="10" fill="#0b4a55" opacity="0.15"/>
|
||||
<g transform="translate(935,335) rotate(-8) scale(0.33) translate(-400,-470)">
|
||||
<use href="#tailFull"/><use href="#core"/><path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="#0b4a55" stroke-width="24" stroke-linecap="round"/><path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="#22d3e6" stroke-width="15" stroke-linecap="round"/>
|
||||
</g>
|
||||
<text x="925" y="530" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">full body · swimming, tail free</text>
|
||||
|
||||
<rect x="1040" y="250" width="140" height="140" fill="#ffffff" stroke="#b7c9cb"/>
|
||||
<g transform="translate(1048,262) scale(0.165) translate(-50,-90)">
|
||||
<g transform="translate(390,470) scale(1.06) translate(-372,-470)"><use href="#bustChar" filter="url(#sil)"/></g>
|
||||
</g>
|
||||
<text x="1110" y="408" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">bust silhouette</text>
|
||||
|
||||
<text x="830" y="612" font-family="'Segoe UI', Arial, sans-serif" font-size="13" font-weight="700" letter-spacing="2" fill="#0b4a55">PALETTE</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#1c1c24" text-anchor="middle"><rect x="830" y="626" width="50" height="50" rx="6" fill="#22d3e6" stroke="#0b4a55" stroke-width="2"/><text x="855" y="694">#22d3e6</text><text x="855" y="708">key cyan</text><rect x="890" y="626" width="50" height="50" rx="6" fill="#0b4a55" stroke="#0b4a55" stroke-width="2"/><text x="915" y="694">#0b4a55</text><text x="915" y="708">line</text><rect x="950" y="626" width="50" height="50" rx="6" fill="#ffb320" stroke="#0b4a55" stroke-width="2"/><text x="975" y="694">#ffb320</text><text x="975" y="708">gold</text><rect x="1010" y="626" width="50" height="50" rx="6" fill="#ff6a1f" stroke="#0b4a55" stroke-width="2"/><text x="1035" y="694">#ff6a1f</text><text x="1035" y="708">fin</text><rect x="1070" y="626" width="50" height="50" rx="6" fill="#1c1c24" stroke="#0b4a55" stroke-width="2"/><text x="1095" y="694">#1c1c24</text><text x="1095" y="708">phones</text><rect x="1130" y="626" width="50" height="50" rx="6" fill="#ffffff" stroke="#0b4a55" stroke-width="2"/><text x="1155" y="694">#ffffff</text><text x="1155" y="708">bubble</text></g>
|
||||
<text x="830" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">Canon: cotsc-praxis aqua-sheet. One shadow step per material;</text>
|
||||
<text x="830" y="764" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">cyan rim light on the right; eye blue kept from the canon.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
251
cast-designs/proposals/aqua/aqua-gen.py
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
# Writes aqua-A/B/C.svg: three Persona-bust takes on Aqua's canon goldfish
|
||||
# (gamecult-site cotsc-praxis aqua-sheet.png). Paths are hand-authored here;
|
||||
# the script only composes the shared fish with each take's face, fins and prop.
|
||||
OUT = r"C:\gc-wt\cast-designs\cast-designs\proposals\aqua"
|
||||
|
||||
LINE, GOLD, ORANGE, CYAN, BLACK, WHITE = "#0b4a55", "#ffb320", "#ff6a1f", "#22d3e6", "#1c1c24", "#ffffff"
|
||||
GOLD_SH, ORANGE_SH, GOLD_HI, ORANGE_HI = "#e08a10", "#d4480f", "#ffd36a", "#ff9a5a"
|
||||
SANS = "'Segoe UI', Arial, sans-serif"
|
||||
MONO = "Consolas, 'Courier New', monospace"
|
||||
|
||||
COMMON_DEFS = f'''
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feComponentTransfer in="SourceAlpha" result="a"><feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1"/></feComponentTransfer>
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="a" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><path d="M70,20 H790 L760,780 H40 Z"/></clipPath>
|
||||
<path id="eyeShape" d="M-46,-4 C-46,-50 -22,-62 2,-62 C28,-62 48,-48 48,-4 C48,38 28,60 2,60 C-22,60 -46,38 -46,-4 Z"/>
|
||||
<clipPath id="eyeClip"><use href="#eyeShape"/></clipPath>
|
||||
<!-- anime eye on the canon's round blue fish eye -->
|
||||
<g id="eye">
|
||||
<use href="#eyeShape" fill="{WHITE}"/>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<path d="M-52,-64 H54 V-12 C34,-44 -30,-44 -52,-10 Z" fill="#c4eef5"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="#1fa9e0"/>
|
||||
<path d="M-40,-62 H52 V6 C34,-30 -22,-34 -40,6 Z" fill="#1466a8"/>
|
||||
<ellipse cx="8" cy="36" rx="24" ry="12" fill="#8ff0fa"/>
|
||||
<ellipse cx="6" cy="10" rx="17" ry="24" fill="#0b2f55"/>
|
||||
<ellipse cx="6" cy="8" rx="38" ry="50" fill="none" stroke="#0b2f55" stroke-width="4"/>
|
||||
</g>
|
||||
<ellipse cx="-11" cy="-14" rx="13" ry="17" fill="{WHITE}"/>
|
||||
<circle cx="22" cy="30" r="6.5" fill="{WHITE}"/>
|
||||
<path d="M-56,2 C-58,-50 -22,-72 6,-70 C34,-68 56,-52 59,-18 L68,-24 C66,-14 61,-8 55,-4 C48,-44 30,-59 4,-59 C-24,-59 -44,-40 -46,2 Z" fill="{LINE}"/>
|
||||
<path d="M-26,54 C-6,63 20,63 32,53" fill="none" stroke="{LINE}" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- half-lowered lid for the stern take -->
|
||||
<g id="eyeStern">
|
||||
<use href="#eye"/>
|
||||
<path d="M-62,-80 H66 V-14 C30,-30 -30,-28 -62,-8 Z" fill="{GOLD}"/>
|
||||
<path d="M-58,-6 C-30,-28 30,-30 64,-14" fill="none" stroke="{LINE}" stroke-width="9" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="note">
|
||||
<ellipse cx="0" cy="0" rx="8" ry="6" transform="rotate(-22)" fill="{WHITE}"/>
|
||||
<path d="M6.5,-2 V-30 C14,-27 22,-20 17,-9" fill="none" stroke="{WHITE}" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="bubble">
|
||||
<circle r="1" fill="{CYAN}" fill-opacity="0.22" stroke="{CYAN}" stroke-width="0.08"/>
|
||||
<path d="M-0.62,-0.2 A0.66,0.66 0 0 1 -0.2,-0.62" fill="none" stroke="{WHITE}" stroke-width="0.12" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- canon body: round, yellow face, orange crown and back meeting in a V between the eyes -->
|
||||
<path id="body" d="M396,214 C552,214 660,330 654,480 C648,632 532,734 388,732 C240,730 136,628 138,472 C140,320 240,214 396,214 Z"/>
|
||||
<clipPath id="bodyClip"><use href="#body"/></clipPath>
|
||||
<mask id="bodyShade"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-44,-40)" fill="#000"/></mask>
|
||||
<mask id="bodyRim"><rect width="1200" height="800" fill="#fff"/><use href="#body" transform="translate(-13,-3)" fill="#000"/></mask>
|
||||
<path id="crown" d="M100,170 H700 V430 C664,372 616,336 566,334 C522,334 484,362 458,414 C432,360 386,326 328,322 C268,320 226,372 214,446 C204,530 220,620 262,712 L100,780 Z"/>
|
||||
|
||||
<!-- forked tail behind, for the bust -->
|
||||
<g id="tailBust">
|
||||
<path d="M212,444 C152,402 86,330 54,226 C84,240 110,236 126,214 C140,250 168,262 198,250 C206,320 234,384 264,428 Z" fill="{ORANGE}" stroke="{LINE}" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M210,520 C148,566 92,650 66,770 C96,750 126,752 142,772 C158,744 188,736 212,746 C218,660 240,592 270,548 Z" fill="{ORANGE}" stroke="{LINE}" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M208,432 C162,380 122,320 94,246 M234,420 C212,370 188,320 170,266 M208,542 C162,600 126,670 106,756 M236,552 C212,610 192,670 182,740" fill="none" stroke="{ORANGE_SH}" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- long forked tail, for the full body -->
|
||||
<g id="tailFull">
|
||||
<path d="M190,440 C120,380 40,320 -40,236 C-20,280 -26,310 -50,330 C-10,350 0,380 -20,410 C40,430 120,460 170,480 Z" fill="{ORANGE}" stroke="{LINE}" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M190,510 C120,560 40,620 -40,720 C-14,700 14,700 30,716 C40,680 60,660 92,662 C110,610 150,560 196,532 Z" fill="{ORANGE}" stroke="{LINE}" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M180,450 C120,400 60,350 0,300 M180,500 C120,560 60,620 10,680" fill="none" stroke="{ORANGE_SH}" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- head, body, crest, headphones: identical in every take -->
|
||||
<g id="fishBase">
|
||||
<path d="M318,252 C298,184 326,118 388,90 C380,124 396,144 428,124 C424,150 446,166 476,150 C476,190 476,222 472,254 Z" fill="{ORANGE}" stroke="{LINE}" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M392,242 C380,192 386,150 402,118 M432,240 C430,200 436,176 454,160 M356,244 C346,200 352,160 370,130" fill="none" stroke="{ORANGE_SH}" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use href="#body" fill="{GOLD}"/>
|
||||
<g clip-path="url(#bodyClip)">
|
||||
<use href="#crown" fill="{ORANGE}"/>
|
||||
<path d="M206,300 C246,256 300,236 346,236" fill="none" stroke="{ORANGE_HI}" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M300,650 q22,20 44,0 q22,20 44,0 q22,20 44,0 M276,612 q22,20 44,0 M410,612 q22,20 44,0 q22,20 44,0 M344,690 q22,20 44,0 q22,20 44,0" fill="none" stroke="{GOLD_SH}" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<rect width="1200" height="800" fill="#9a3200" fill-opacity="0.26" mask="url(#bodyShade)"/>
|
||||
<rect width="1200" height="800" fill="{CYAN}" mask="url(#bodyRim)"/>
|
||||
</g>
|
||||
<use href="#body" fill="none" stroke="{LINE}" stroke-width="7"/>
|
||||
<!-- far cup, band -->
|
||||
<ellipse cx="666" cy="420" rx="44" ry="80" fill="{BLACK}" stroke="{LINE}" stroke-width="6"/>
|
||||
<ellipse cx="674" cy="420" rx="24" ry="54" fill="none" stroke="{CYAN}" stroke-width="8"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="{LINE}" stroke-width="44" stroke-linecap="round"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 662,372" fill="none" stroke="{BLACK}" stroke-width="32" stroke-linecap="round"/>
|
||||
<path d="M196,270 C230,196 300,156 380,150" fill="none" stroke="#454558" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- near cup, drawn after the face so a fin can sit on it -->
|
||||
<g id="nearCup">
|
||||
<ellipse cx="196" cy="426" rx="58" ry="84" fill="#2c2c38" stroke="{LINE}" stroke-width="6"/>
|
||||
<ellipse cx="168" cy="426" rx="62" ry="86" fill="{BLACK}" stroke="{LINE}" stroke-width="7"/>
|
||||
<ellipse cx="168" cy="426" rx="40" ry="60" fill="none" stroke="{CYAN}" stroke-width="10"/>
|
||||
<ellipse cx="168" cy="426" rx="22" ry="36" fill="{CYAN}" opacity="0.4"/>
|
||||
<path d="M134,382 C140,364 152,354 166,352" fill="none" stroke="#454558" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- canon snout: rounded upper lip over an open mouth -->
|
||||
<g id="mouthOpen">
|
||||
<path d="M420,554 C436,564 452,562 468,552 C484,562 500,564 516,552 C512,596 490,616 468,616 C446,616 424,596 420,554 Z" fill="#8a2234" stroke="{LINE}" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M434,598 C446,586 490,586 502,598 C492,612 446,612 434,598 Z" fill="#ff7f8f"/>
|
||||
<path d="M416,560 C414,530 440,512 468,514 C496,512 522,530 520,558" fill="none" stroke="{LINE}" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,532 C442,522 456,520 466,522" fill="none" stroke="{GOLD_HI}" stroke-width="6" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="mouthPout">
|
||||
<path d="M420,560 C418,532 442,516 468,518 C494,516 518,532 516,560" fill="none" stroke="{LINE}" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M432,534 C442,524 456,522 466,524" fill="none" stroke="{GOLD_HI}" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M440,566 C450,556 458,572 468,562 C478,552 486,568 496,560" fill="none" stroke="{LINE}" stroke-width="4.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="blush">
|
||||
<ellipse cx="316" cy="548" rx="34" ry="14" fill="#ff7f8f" opacity="0.55"/>
|
||||
<ellipse cx="590" cy="540" rx="22" ry="12" fill="#ff7f8f" opacity="0.55"/>
|
||||
<path d="M302,544 l-6,10 M318,544 l-6,10 M334,544 l-6,10 M584,537 l-5,9 M598,537 l-5,9" stroke="#e25566" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
'''
|
||||
|
||||
def fin(d, ribs):
|
||||
return (f'<path d="{d}" fill="{ORANGE}" stroke="{LINE}" stroke-width="5" stroke-linejoin="round"/>'
|
||||
f'<path d="{ribs}" fill="none" stroke="{ORANGE_SH}" stroke-width="3" stroke-linecap="round"/>')
|
||||
|
||||
EYES_OPEN = ('<use href="#eye" transform="translate(366,462) scale(1.04)"/>'
|
||||
'<use href="#eye" transform="translate(540,456) scale(0.8,0.96)"/>')
|
||||
|
||||
TAKES = {
|
||||
"A": dict(
|
||||
name="LISTENING", sub="the canon fish, idol framing",
|
||||
hook=["Hook: the canon goldfish in Persona framing — one", "fin pressed to her ear cup, eyes up and bright,",
|
||||
"note bubbles rising toward the text box."],
|
||||
pose="translate(24,0)",
|
||||
face=EYES_OPEN
|
||||
+ f'<path d="M318,384 C336,370 364,368 384,376 M520,374 C536,366 556,368 570,378" fill="none" stroke="{LINE}" stroke-width="6" stroke-linecap="round"/>'
|
||||
+ '<use href="#blush"/><use href="#mouthOpen"/>',
|
||||
fins_back="",
|
||||
fins_front=fin("M262,592 C214,584 176,540 166,482 C190,488 210,478 222,458 C238,502 262,546 262,592 Z",
|
||||
"M248,580 C214,566 192,540 182,506 M254,560 C238,540 230,516 226,490")
|
||||
+ fin("M596,628 C646,620 686,582 698,532 C674,548 652,544 636,532 C628,574 608,602 596,628 Z",
|
||||
"M612,612 C642,600 666,576 678,552"),
|
||||
prop_front="", prop_back="",
|
||||
fx='''<use href="#bubble" transform="translate(712,262) scale(36)"/><use href="#note" transform="translate(708,276) scale(1.05)"/>
|
||||
<use href="#bubble" transform="translate(760,150) scale(26)"/><use href="#note" transform="translate(757,161) scale(0.75)"/>
|
||||
<use href="#bubble" transform="translate(690,128) scale(13)"/><use href="#bubble" transform="translate(726,368) scale(15)"/>''',
|
||||
full_prop="",
|
||||
),
|
||||
"B": dict(
|
||||
name="CONDUCTOR", sub="the canon fish, baton up",
|
||||
hook=["Hook: she conducts the dings — baton raised in a", "fin, eyes squeezed shut in a big smile, a ribbon",
|
||||
"of water looping round her like a staff line."],
|
||||
pose="translate(400,470) rotate(-7) translate(-386,-470)",
|
||||
face=f'<path d="M314,474 C330,436 394,434 414,474" fill="none" stroke="{LINE}" stroke-width="9" stroke-linecap="round"/>'
|
||||
+ f'<path d="M504,470 C516,440 558,440 572,470" fill="none" stroke="{LINE}" stroke-width="8" stroke-linecap="round"/>'
|
||||
+ f'<path d="M310,476 l-12,6 M576,470 l10,6" stroke="{LINE}" stroke-width="5" stroke-linecap="round"/>'
|
||||
+ f'<path d="M318,394 C336,378 364,374 386,382 M518,380 C536,370 558,372 572,382" fill="none" stroke="{LINE}" stroke-width="6" stroke-linecap="round"/>'
|
||||
+ '<use href="#blush"/><use href="#mouthOpen" transform="translate(466,560) scale(1.12) translate(-466,-560)"/>',
|
||||
fins_back="",
|
||||
fins_front=fin("M252,610 C206,612 168,590 150,552 C170,552 188,544 198,530 C214,566 236,590 252,610 Z",
|
||||
"M238,602 C210,598 186,584 170,566")
|
||||
+ fin("M600,560 C628,520 660,470 704,446 C700,472 708,492 726,504 C690,526 640,560 612,600 Z",
|
||||
"M614,568 C640,530 668,496 700,474"),
|
||||
prop_back=f'<path d="M150,610 C150,520 230,470 320,450" fill="none" stroke="{LINE}" stroke-width="26" stroke-linecap="round"/><path d="M150,610 C150,520 230,470 320,450" fill="none" stroke="#0f86a0" stroke-width="18" stroke-linecap="round"/>',
|
||||
prop_front=(f'<path d="M698,476 L760,250" stroke="{LINE}" stroke-width="13" stroke-linecap="round"/>'
|
||||
f'<path d="M698,476 L760,250" stroke="{WHITE}" stroke-width="6" stroke-linecap="round"/>'
|
||||
f'<circle cx="704" cy="458" r="12" fill="{CYAN}" stroke="{LINE}" stroke-width="4"/>'
|
||||
f'<path d="M760,212 l6,24 l24,6 l-24,6 l-6,24 l-6,-24 l-24,-6 l24,-6 Z" fill="{WHITE}"/>'
|
||||
f'<path d="M150,610 C130,690 210,744 340,740 C480,736 610,690 700,610 C736,576 726,540 696,548" fill="none" stroke="{LINE}" stroke-width="28" stroke-linecap="round"/>'
|
||||
f'<path d="M150,610 C130,690 210,744 340,740 C480,736 610,690 700,610 C736,576 726,540 696,548" fill="none" stroke="{CYAN}" stroke-width="20" stroke-linecap="round"/>'
|
||||
f'<path d="M176,676 C190,704 226,720 290,724" fill="none" stroke="#a6f4fb" stroke-width="6" stroke-linecap="round"/>'),
|
||||
fx='''<use href="#bubble" transform="translate(712,330) scale(22)"/><use href="#note" transform="translate(708,340) scale(0.8)"/>
|
||||
<use href="#bubble" transform="translate(640,130) scale(30)"/><use href="#note" transform="translate(636,142) scale(0.9)"/>
|
||||
<use href="#bubble" transform="translate(110,120) scale(16)"/><use href="#bubble" transform="translate(150,80) scale(9)"/>''',
|
||||
full_prop=f'<path d="M698,476 L760,250" stroke="{LINE}" stroke-width="16" stroke-linecap="round"/><path d="M698,476 L760,250" stroke="{WHITE}" stroke-width="8" stroke-linecap="round"/>',
|
||||
),
|
||||
"C": dict(
|
||||
name="PATCH STEWARD", sub="the canon fish, cable in fin",
|
||||
hook=["Hook: the steward under the cuteness — a patch", "cable plugged into her ear cup, the jack raised",
|
||||
"to her face, lids down: presets are serious."],
|
||||
pose="translate(390,470) scale(1.06) translate(-372,-470)",
|
||||
face='<use href="#eyeStern" transform="translate(366,462) scale(1.04)"/>'
|
||||
+ '<use href="#eyeStern" transform="translate(540,456) scale(0.8,0.96)"/>'
|
||||
+ f'<path d="M316,368 L394,392 M512,392 L574,366" fill="none" stroke="{LINE}" stroke-width="9" stroke-linecap="round"/>'
|
||||
+ '<ellipse cx="300" cy="560" rx="40" ry="18" fill="#ff7f8f" opacity="0.5"/><ellipse cx="596" cy="548" rx="24" ry="13" fill="#ff7f8f" opacity="0.5"/>'
|
||||
+ '<use href="#mouthPout"/>',
|
||||
fins_back="",
|
||||
fins_front=fin("M250,612 C206,612 170,590 152,552 C172,552 190,544 200,530 C216,566 238,590 250,612 Z",
|
||||
"M236,602 C210,598 186,584 170,566")
|
||||
+ fin("M560,640 C592,606 606,560 604,516 C622,528 644,530 662,520 C660,572 626,624 580,656 Z",
|
||||
"M574,640 C602,610 618,572 622,534"),
|
||||
prop_back="",
|
||||
prop_front=(f'<path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="{LINE}" stroke-width="18" stroke-linecap="round"/>'
|
||||
f'<path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="{CYAN}" stroke-width="11" stroke-linecap="round"/>'
|
||||
f'<path d="M600,572 l8,-62 l22,2 l-8,62 Z" fill="{BLACK}" stroke="{LINE}" stroke-width="4" stroke-linejoin="round"/>'
|
||||
f'<path d="M620,508 l4,-34" stroke="#c7d3d6" stroke-width="8" stroke-linecap="round"/><circle cx="625" cy="470" r="5" fill="#c7d3d6"/>'
|
||||
f'<path d="M156,500 h24 v22 h-24 Z" fill="{BLACK}" stroke="{LINE}" stroke-width="4"/>'),
|
||||
fx='''<use href="#bubble" transform="translate(746,360) scale(14)"/><use href="#bubble" transform="translate(726,300) scale(8)"/>
|
||||
<path d="M740,200 l10,-26 M766,214 l22,-14 M770,244 l26,0" stroke="#22d3e6" stroke-width="5" stroke-linecap="round"/>''',
|
||||
full_prop=f'<path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="{LINE}" stroke-width="24" stroke-linecap="round"/><path d="M168,512 C150,650 300,744 440,712 C540,690 600,640 612,560" fill="none" stroke="{CYAN}" stroke-width="15" stroke-linecap="round"/>',
|
||||
),
|
||||
}
|
||||
|
||||
def sheet(k, t):
|
||||
core = (f'<g id="core">{t["fins_back"]}<use href="#fishBase"/>{t["face"]}<use href="#nearCup"/>{t["fins_front"]}</g>')
|
||||
bust = f'<g id="bustChar">{t["prop_back"]}<use href="#tailBust"/><use href="#core"/>{t["prop_front"]}</g>'
|
||||
hook = "".join(f'<tspan x="830" y="{118+19*i}">{l}</tspan>' for i, l in enumerate(t["hook"]))
|
||||
sw = [(CYAN, "key cyan"), (LINE, "line"), (GOLD, "gold"), (ORANGE, "fin"), (BLACK, "phones"), (WHITE, "bubble")]
|
||||
swatches = "".join(
|
||||
f'<rect x="{830+60*i}" y="626" width="50" height="50" rx="6" fill="{c}" stroke="{LINE}" stroke-width="2"/>'
|
||||
f'<text x="{855+60*i}" y="694">{c}</text><text x="{855+60*i}" y="708">{n}</text>' for i, (c, n) in enumerate(sw))
|
||||
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Aqua, take {k}: {t["name"].title()}</title>
|
||||
<defs>{COMMON_DEFS}
|
||||
{core}
|
||||
{bust}
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#eef3f2"/>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M60,640 C200,610 300,660 420,640 C560,616 660,650 800,630 V800 H40 Z" fill="#0b2a33"/>
|
||||
<path d="M600,40 l-180,740 M680,40 l-180,740" stroke="{CYAN}" stroke-opacity="0.07" stroke-width="40"/>
|
||||
<g transform="{t["pose"]}"><use href="#bustChar"/></g>
|
||||
</g>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="none" stroke="{CYAN}" stroke-width="5"/>
|
||||
<path d="M84,32 H776" stroke="{CYAN}" stroke-width="2" stroke-opacity="0.5"/>
|
||||
{t["fx"]}
|
||||
<path d="M520,724 H770 L764,768 H512 Z" fill="{CYAN}"/>
|
||||
<text x="534" y="755" font-family="{MONO}" font-size="24" font-weight="700" letter-spacing="8" fill="#07111a">AQUA</text>
|
||||
|
||||
<text x="830" y="58" font-family="{SANS}" font-size="30" font-weight="700" letter-spacing="4" fill="{LINE}">AQUA · {k}</text>
|
||||
<text x="830" y="86" font-family="{SANS}" font-size="17" font-weight="600" letter-spacing="2" fill="#0f86a0">{t["name"]} <tspan font-weight="400" letter-spacing="0" fill="#4a6a70">({t["sub"]})</tspan></text>
|
||||
<text font-family="{SANS}" font-size="14" fill="{BLACK}">{hook}</text>
|
||||
|
||||
<ellipse cx="925" cy="500" rx="100" ry="10" fill="{LINE}" opacity="0.15"/>
|
||||
<g transform="translate(935,335) rotate(-8) scale(0.33) translate(-400,-470)">
|
||||
<use href="#tailFull"/><use href="#core"/>{t["full_prop"]}
|
||||
</g>
|
||||
<text x="925" y="530" text-anchor="middle" font-family="{SANS}" font-size="12" fill="#4a6a70">full body · swimming, tail free</text>
|
||||
|
||||
<rect x="1040" y="250" width="140" height="140" fill="#ffffff" stroke="#b7c9cb"/>
|
||||
<g transform="translate(1048,262) scale(0.165) translate(-50,-90)">
|
||||
<g transform="{t["pose"]}"><use href="#bustChar" filter="url(#sil)"/></g>
|
||||
</g>
|
||||
<text x="1110" y="408" text-anchor="middle" font-family="{SANS}" font-size="12" fill="#4a6a70">bust silhouette</text>
|
||||
|
||||
<text x="830" y="612" font-family="{SANS}" font-size="13" font-weight="700" letter-spacing="2" fill="{LINE}">PALETTE</text>
|
||||
<g font-family="{MONO}" font-size="11" fill="{BLACK}" text-anchor="middle">{swatches}</g>
|
||||
<text x="830" y="748" font-family="{SANS}" font-size="12" fill="#4a6a70">Canon: cotsc-praxis aqua-sheet. One shadow step per material;</text>
|
||||
<text x="830" y="764" font-family="{SANS}" font-size="12" fill="#4a6a70">cyan rim light on the right; eye blue kept from the canon.</text>
|
||||
</svg>
|
||||
'''
|
||||
|
||||
import sys
|
||||
for k in (sys.argv[1:] or TAKES):
|
||||
open(f"{OUT}\\aqua-{k}.svg", "w", encoding="utf8").write(sheet(k, TAKES[k]))
|
||||
77
cast-designs/proposals/aqua/aqua-notes.md
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Aqua: designer's notes, round 1
|
||||
|
||||
## Canon change
|
||||
|
||||
Aqua already has an established design: the character sheet at
|
||||
`F:\Projects\gamecult-site\GameCult\static\interactive\cotsc-praxis\character-sheets\aqua-sheet.png`
|
||||
(and the sprites in `sprites\aqua\`). The brief in `../../aqua.md` missed it.
|
||||
Canon overrides the brief, so A, B and C are three takes on that one goldfish,
|
||||
not three reinventions. The brief's Bowl Helmet and Goldfish Hood girls are
|
||||
dropped. The two pre-canon sheets are kept for the record:
|
||||
`aqua-old-A.svg` (the first idol fish) and `aqua-old-B.svg` (the bowl-helmet girl,
|
||||
which was still mid-revision: its twin tails had just been redrawn and it was
|
||||
never re-checked).
|
||||
|
||||
What every take keeps from canon: a round body, a yellow face under an orange
|
||||
crown and back that meet in a V between the eyes, an orange crest fin, a
|
||||
duck-lip snout over an open mouth, small dark brows, big round blue eyes,
|
||||
ribbed orange pectoral fins, a forked tail, rows of belly scales, and black
|
||||
headphones with cyan-ringed cups. They differ in pose, prop and framing.
|
||||
|
||||
Files: `aqua-<A|B|C>.svg` are the sheets and `aqua-<A|B|C>.png` the full-size
|
||||
renders. `aqua-gen.py` writes all three from one set of hand-drawn parts, so a
|
||||
fix to the shared fish reaches every take.
|
||||
|
||||
## A: Listening
|
||||
|
||||
- **What it does:** a three-quarter bust turned toward the text box, with the near fin pressed
|
||||
to the ear cup and the eyes up and bright. Note bubbles rise screen right. This
|
||||
is the canon "listen" and "idle" poses at portrait size: the baseline the
|
||||
expression set would be drawn on.
|
||||
- **Changed after looking:** I moved the face right so the three-quarter turn reads, because
|
||||
the first pass looked straight at the camera. The pre-canon "bangs" crown became the canon V.
|
||||
The snout was first a flat pale plate that read as a moustache, so I redrew it as an
|
||||
outline-only rounded upper lip over a w-shaped mouth. I raised the fin so it
|
||||
actually sits on the cup. The belly scales were moved off the mouth area so
|
||||
they stop reading as a second mouth.
|
||||
- **Round 2:** give the eye a canon-style iris sparkle and test the cyan rim against
|
||||
ember-orange Eureka in the cast-wide 48 px lineup. The fish ball shape is
|
||||
shared by all three takes, so the hook in silhouette is only the ear cups,
|
||||
the band gap, the crest and the tail fork.
|
||||
|
||||
## B: Conductor
|
||||
|
||||
- **What it does:** she conducts the dings. A baton is raised in her far fin, her eyes are
|
||||
squeezed shut in a big laugh, and a ribbon of water loops round her body like a
|
||||
staff line. The whole bust is tilted 7 degrees for energy. It comes from the canon
|
||||
"conduct" pose.
|
||||
- **Changed after looking:** the first ribbon cut across her cheek and mouth and read
|
||||
as a cyan tube. It now passes behind her upper left and sweeps in front
|
||||
of the belly, below the face, then curls into the baton fin. The snout fix
|
||||
carried over.
|
||||
- **Round 2:** the baton is the only silhouette feature of the three takes that
|
||||
breaks the circle at 48 px, so it is worth keeping. Draw the ribbon as water,
|
||||
with a thinner, tapering, broken stroke and a few droplets, instead of a uniform hose.
|
||||
The baton star could become a note head.
|
||||
|
||||
## C: Patch Steward
|
||||
|
||||
- **What it does:** this is the steward under the cuteness. A patch cable is plugged into the
|
||||
bottom of her near cup and loops across her belly to a jack she holds up beside
|
||||
her mouth. The lids are half down, the brows are hard and the mouth is a wobbly pout. She is
|
||||
framed 6 percent closer. It comes from the canon "patch" and "boundary" poses.
|
||||
- **Changed after looking:** a second gold cable and a jack held at the far cup made
|
||||
the cable read as going *into* the far cup. I cut that cable and moved the jack in front of the far
|
||||
cheek on a raised fin.
|
||||
- **Round 2:** at 48 px the silhouette is the same as A's, because the cable
|
||||
stays inside the body outline. Push the jack and fin out past the right
|
||||
contour, or bring in the canon holo patch panel as a hard rectangle at the
|
||||
card edge. The loop also half reads as a headset microphone. A coiled
|
||||
patch-cable texture (two tones, a twist) would fix that. The raised fin is
|
||||
mostly hidden behind the cable, so it needs to come forward.
|
||||
|
||||
## Strongest
|
||||
|
||||
B. It has the most personality and the only silhouette break, and it is the
|
||||
clearest statement of "her synth is the voice of the dings". A is the right
|
||||
baseline for the expression set. C has the best face but needs its silhouette fixed.
|
||||
181
cast-designs/proposals/aqua/aqua-old-A.svg
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Aqua, superseded take A (pre-canon): Goldfish Idol</title>
|
||||
<defs>
|
||||
<!-- solid-black silhouette -->
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feComponentTransfer in="SourceAlpha" result="a"><feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1"/></feComponentTransfer>
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="a" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><path d="M70,20 H790 L760,780 H40 Z"/></clipPath>
|
||||
|
||||
<!-- anime eye, local frame centred on 0,0, about 100 x 124 -->
|
||||
<path id="eyeShape" d="M-48,-6 C-48,-50 -22,-60 2,-60 C28,-60 50,-46 50,-6 C50,36 28,60 2,60 C-24,60 -48,36 -48,-6 Z"/>
|
||||
<clipPath id="eyeClip"><use href="#eyeShape"/></clipPath>
|
||||
<g id="eye">
|
||||
<use href="#eyeShape" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<path d="M-52,-62 H54 V-14 C34,-44 -30,-44 -52,-12 Z" fill="#c4eef5"/>
|
||||
<ellipse cx="6" cy="8" rx="40" ry="52" fill="#22d3e6"/>
|
||||
<path d="M-40,-62 H52 V4 C34,-30 -22,-34 -40,4 Z" fill="#0f86a0"/>
|
||||
<ellipse cx="8" cy="36" rx="25" ry="13" fill="#a6f4fb"/>
|
||||
<ellipse cx="6" cy="10" rx="17" ry="24" fill="#0b4a55"/>
|
||||
<ellipse cx="6" cy="8" rx="40" ry="52" fill="none" stroke="#0b4a55" stroke-width="4"/>
|
||||
</g>
|
||||
<ellipse cx="-12" cy="-14" rx="13" ry="17" fill="#ffffff"/>
|
||||
<path id="spark" d="M0,-10 C1.2,-2.4 2.4,-1.2 10,0 C2.4,1.2 1.2,2.4 0,10 C-1.2,2.4 -2.4,1.2 -10,0 C-2.4,-1.2 -1.2,-2.4 0,-10 Z" transform="translate(22,28) scale(1.15)" fill="#ffffff"/>
|
||||
<path d="M-58,0 C-60,-50 -22,-71 6,-69 C34,-67 56,-52 61,-20 L72,-28 C69,-16 63,-8 57,-5 C50,-44 30,-58 4,-58 C-24,-58 -46,-40 -48,0 Z" fill="#0b4a55"/>
|
||||
<path d="M-28,55 C-8,64 20,64 34,54" fill="none" stroke="#0b4a55" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- eighth-note glyph -->
|
||||
<g id="note">
|
||||
<ellipse cx="0" cy="0" rx="8" ry="6" transform="rotate(-22)" fill="#ffffff"/>
|
||||
<path d="M6.5,-2 V-30 C14,-27 22,-20 17,-9" fill="none" stroke="#ffffff" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== Aqua A: shapes ===== -->
|
||||
<path id="Abody" d="M392,212 C548,212 658,330 652,478 C646,630 530,732 386,730 C238,728 136,626 138,470 C140,318 238,212 392,212 Z"/>
|
||||
<clipPath id="AbodyClip"><use href="#Abody"/></clipPath>
|
||||
<mask id="AbodyShade"><rect width="1200" height="800" fill="#fff"/><use href="#Abody" transform="translate(-46,-40)" fill="#000"/></mask>
|
||||
<mask id="AbodyRim"><rect width="1200" height="800" fill="#fff"/><use href="#Abody" transform="translate(-13,-3)" fill="#000"/></mask>
|
||||
|
||||
<!-- the fish minus the tail: reused by bust, full body and silhouette -->
|
||||
<g id="AfishCore">
|
||||
<!-- dorsal crest, an idol's ahoge -->
|
||||
<path d="M318,250 C300,180 330,118 392,92 C380,126 396,146 428,126 C424,152 446,166 476,152 C474,190 474,222 470,252 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M392,240 C380,190 386,150 402,118 M430,238 C428,200 434,176 452,160" fill="none" stroke="#c94612" stroke-width="3.5" stroke-linecap="round"/>
|
||||
|
||||
<!-- body -->
|
||||
<use href="#Abody" fill="#ffb320"/>
|
||||
<g clip-path="url(#AbodyClip)">
|
||||
<!-- belly scales -->
|
||||
<path d="M232,626 q22,20 44,0 q22,20 44,0 M262,664 q22,20 44,0 q22,20 44,0 M300,700 q22,20 44,0" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<!-- orange crown cut like idol bangs -->
|
||||
<path d="M120,190 H680 V330 C640,326 612,306 598,284 C590,322 566,344 534,350 C540,322 532,300 514,286 C500,330 464,354 424,356 C444,330 444,304 432,286 C414,322 374,344 332,348 C346,322 346,302 336,290 C312,320 274,336 236,338 C254,318 258,302 252,288 C222,310 184,326 120,336 Z" fill="#ff6a1f"/>
|
||||
<path d="M200,270 C240,236 300,222 340,226 M470,226 C520,228 560,246 588,270" fill="none" stroke="#ffa067" stroke-width="9" stroke-linecap="round"/>
|
||||
<!-- cel shadow, light from upper left -->
|
||||
<rect width="1200" height="800" fill="#e08a10" mask="url(#AbodyShade)"/>
|
||||
<!-- rim light in key cyan, away from the light -->
|
||||
<rect width="1200" height="800" fill="#22d3e6" mask="url(#AbodyRim)"/>
|
||||
</g>
|
||||
<use href="#Abody" fill="none" stroke="#0b4a55" stroke-width="7"/>
|
||||
|
||||
<!-- gill curve -->
|
||||
<path d="M232,392 C214,440 214,500 236,548" fill="none" stroke="#c97a0c" stroke-width="3.5" stroke-linecap="round"/>
|
||||
|
||||
<!-- headphones: far cup, band, near cup -->
|
||||
<ellipse cx="664" cy="418" rx="44" ry="80" fill="#1c1c24" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="672" cy="418" rx="24" ry="54" fill="none" stroke="#22d3e6" stroke-width="8"/>
|
||||
<ellipse cx="672" cy="418" rx="9" ry="24" fill="#22d3e6" opacity="0.55"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 660,372" fill="none" stroke="#0b4a55" stroke-width="44" stroke-linecap="round"/>
|
||||
<path d="M164,392 C150,200 290,128 398,128 C520,128 668,196 660,372" fill="none" stroke="#1c1c24" stroke-width="32" stroke-linecap="round"/>
|
||||
<path d="M196,270 C230,196 300,156 380,150" fill="none" stroke="#454558" stroke-width="7" stroke-linecap="round"/>
|
||||
<ellipse cx="196" cy="424" rx="58" ry="84" fill="#2c2c38" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="168" cy="424" rx="62" ry="86" fill="#1c1c24" stroke="#0b4a55" stroke-width="7"/>
|
||||
<ellipse cx="168" cy="424" rx="40" ry="60" fill="none" stroke="#22d3e6" stroke-width="10"/>
|
||||
<ellipse cx="168" cy="424" rx="22" ry="36" fill="#22d3e6" opacity="0.4"/>
|
||||
<path d="M134,380 C140,362 152,352 166,350" fill="none" stroke="#454558" stroke-width="6" stroke-linecap="round"/>
|
||||
|
||||
<!-- face: three-quarter toward screen right -->
|
||||
<use href="#eye" transform="translate(366,462) scale(1.06)"/>
|
||||
<use href="#eye" transform="translate(540,456) scale(0.8,0.98)"/>
|
||||
<!-- blush -->
|
||||
<ellipse cx="316" cy="548" rx="34" ry="14" fill="#ff7f8f" opacity="0.6"/>
|
||||
<ellipse cx="588" cy="540" rx="22" ry="12" fill="#ff7f8f" opacity="0.6"/>
|
||||
<path d="M302,544 l-6,10 M318,544 l-6,10 M334,544 l-6,10 M582,537 l-5,9 M596,537 l-5,9" stroke="#e25566" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<!-- open happy mouth -->
|
||||
<path d="M428,566 C444,574 478,574 492,562 C492,598 468,614 456,614 C440,614 426,596 428,566 Z" fill="#8a2234" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M438,600 C446,590 470,590 480,598 C472,610 450,612 438,600 Z" fill="#ff7f8f"/>
|
||||
|
||||
<!-- fin-hands: near fin raised to the ear cup (Listening), far fin waving -->
|
||||
<path d="M250,612 C206,612 172,578 168,530 C190,540 212,536 226,520 C236,560 262,590 250,612 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M232,600 C210,590 194,570 188,548 M240,580 C226,568 218,556 214,540" fill="none" stroke="#c94612" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M594,628 C644,620 684,582 696,532 C672,548 650,544 634,532 C626,574 606,602 594,628 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M610,612 C640,600 664,576 676,552" fill="none" stroke="#c94612" stroke-width="3" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- bust tail: double fan, flaring behind -->
|
||||
<g id="AtailBust">
|
||||
<path d="M210,446 C150,404 84,330 52,226 C82,240 108,236 124,214 C138,250 166,262 196,250 C204,320 232,384 262,428 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M208,520 C146,566 90,650 64,770 C94,750 124,752 140,772 C156,744 186,736 210,746 C216,660 238,592 268,548 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M206,432 C160,380 120,320 92,246 M232,420 C210,370 186,320 168,266 M206,542 C160,600 124,670 104,756 M234,552 C210,610 190,670 180,740" fill="none" stroke="#c94612" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="AbustChar">
|
||||
<use href="#AtailBust"/>
|
||||
<use href="#AfishCore"/>
|
||||
</g>
|
||||
|
||||
<g id="bubble">
|
||||
<circle r="1" fill="#22d3e6" fill-opacity="0.22" stroke="#22d3e6" stroke-width="0.08"/>
|
||||
<path d="M-0.62,-0.2 A0.66,0.66 0 0 1 -0.2,-0.62" fill="none" stroke="#ffffff" stroke-width="0.12" stroke-linecap="round"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<!-- sheet -->
|
||||
<rect width="1200" height="800" fill="#eef3f2"/>
|
||||
|
||||
<!-- Persona-style card preview (composited in product, shown here for scale) -->
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M60,640 C200,610 300,660 420,640 C560,616 660,650 800,630 V800 H40 Z" fill="#0b2a33"/>
|
||||
<path d="M600,40 l-180,740 M680,40 l-180,740" stroke="#22d3e6" stroke-opacity="0.07" stroke-width="40"/>
|
||||
<use href="#AbustChar" transform="translate(24,0)"/>
|
||||
</g>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="none" stroke="#22d3e6" stroke-width="5"/>
|
||||
<path d="M84,32 H776" stroke="#22d3e6" stroke-width="2" stroke-opacity="0.5"/>
|
||||
|
||||
<!-- note bubbles rising toward the text box -->
|
||||
<use href="#bubble" transform="translate(712,262) scale(36)"/>
|
||||
<use href="#note" transform="translate(708,276) scale(1.05)"/>
|
||||
<use href="#bubble" transform="translate(760,150) scale(26)"/>
|
||||
<use href="#note" transform="translate(757,161) scale(0.75)"/>
|
||||
<use href="#bubble" transform="translate(690,128) scale(13)"/>
|
||||
<use href="#bubble" transform="translate(726,368) scale(15)"/>
|
||||
<use href="#bubble" transform="translate(806,92) scale(10)"/>
|
||||
|
||||
<!-- nameplate -->
|
||||
<path d="M520,724 H770 L764,768 H512 Z" fill="#22d3e6"/>
|
||||
<text x="534" y="755" font-family="Consolas, 'Courier New', monospace" font-size="24" font-weight="700" letter-spacing="8" fill="#07111a">AQUA</text>
|
||||
|
||||
<!-- right column: labels -->
|
||||
<text x="830" y="58" font-family="'Segoe UI', Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="4" fill="#0b4a55">AQUA · A</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', Arial, sans-serif" font-size="17" font-weight="600" letter-spacing="2" fill="#0f86a0">GOLDFISH IDOL (stays a fish)</text>
|
||||
<text font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#1c1c24">
|
||||
<tspan x="830" y="118">Hook: the icon's goldfish as an anime idol —</tspan>
|
||||
<tspan x="830" y="137">sparkle eyes, bangs-cut orange crown, fin-hands,</tspan>
|
||||
<tspan x="830" y="156">headphones bigger than ever.</tspan>
|
||||
</text>
|
||||
|
||||
<!-- full body: free-swimming pose, whole double tail -->
|
||||
<g>
|
||||
<ellipse cx="925" cy="500" rx="100" ry="10" fill="#0b4a55" opacity="0.15"/>
|
||||
<g transform="translate(935,335) rotate(-8) scale(0.33) translate(-400,-470)">
|
||||
<path d="M190,440 C120,380 40,320 -40,236 C-20,280 -26,310 -50,330 C-10,350 0,380 -20,410 C40,430 120,460 170,480 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M190,510 C120,560 40,620 -40,720 C-14,700 14,700 30,716 C40,680 60,660 92,662 C110,610 150,560 196,532 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="12" stroke-linejoin="round"/>
|
||||
<path d="M180,450 C120,400 60,350 0,300 M180,500 C120,560 60,620 10,680" fill="none" stroke="#c94612" stroke-width="6" stroke-linecap="round"/>
|
||||
<use href="#AfishCore"/>
|
||||
</g>
|
||||
<text x="925" y="530" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">full body · swimming, tail free</text>
|
||||
</g>
|
||||
|
||||
<!-- silhouette check of the bust -->
|
||||
<rect x="1040" y="250" width="140" height="140" fill="#ffffff" stroke="#b7c9cb"/>
|
||||
<g transform="translate(1048,262) scale(0.165) translate(-60,-90)">
|
||||
<use href="#AbustChar" filter="url(#sil)"/>
|
||||
</g>
|
||||
<text x="1110" y="408" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">bust silhouette</text>
|
||||
|
||||
<!-- palette -->
|
||||
<text x="830" y="612" font-family="'Segoe UI', Arial, sans-serif" font-size="13" font-weight="700" letter-spacing="2" fill="#0b4a55">PALETTE</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#1c1c24" text-anchor="middle">
|
||||
<rect x="830" y="626" width="50" height="50" rx="6" fill="#22d3e6" stroke="#0b4a55" stroke-width="2"/><text x="855" y="694">#22d3e6</text><text x="855" y="708">key cyan</text>
|
||||
<rect x="890" y="626" width="50" height="50" rx="6" fill="#0b4a55" stroke="#0b4a55" stroke-width="2"/><text x="915" y="694">#0b4a55</text><text x="915" y="708">line</text>
|
||||
<rect x="950" y="626" width="50" height="50" rx="6" fill="#ffb320" stroke="#0b4a55" stroke-width="2"/><text x="975" y="694">#ffb320</text><text x="975" y="708">gold</text>
|
||||
<rect x="1010" y="626" width="50" height="50" rx="6" fill="#ff6a1f" stroke="#0b4a55" stroke-width="2"/><text x="1035" y="694">#ff6a1f</text><text x="1035" y="708">fin</text>
|
||||
<rect x="1070" y="626" width="50" height="50" rx="6" fill="#1c1c24" stroke="#0b4a55" stroke-width="2"/><text x="1095" y="694">#1c1c24</text><text x="1095" y="708">phones</text>
|
||||
<rect x="1130" y="626" width="50" height="50" rx="6" fill="#ffffff" stroke="#0b4a55" stroke-width="2"/><text x="1155" y="694">#ffffff</text><text x="1155" y="708">bubble</text>
|
||||
</g>
|
||||
<text x="830" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">One shadow step per material; cyan rim light on the right.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
230
cast-designs/proposals/aqua/aqua-old-B.svg
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Aqua, superseded take B (pre-canon): Bowl Helmet</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feComponentTransfer in="SourceAlpha" result="a"><feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1"/></feComponentTransfer>
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="a" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><path d="M70,20 H790 L760,780 H40 Z"/></clipPath>
|
||||
|
||||
<!-- anime eye, local frame centred on 0,0 -->
|
||||
<path id="eyeShape" d="M-48,-6 C-48,-50 -22,-60 2,-60 C28,-60 50,-46 50,-6 C50,36 28,60 2,60 C-24,60 -48,36 -48,-6 Z"/>
|
||||
<clipPath id="eyeClip"><use href="#eyeShape"/></clipPath>
|
||||
<g id="eye">
|
||||
<use href="#eyeShape" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<path d="M-52,-62 H54 V-14 C34,-44 -30,-44 -52,-12 Z" fill="#c4eef5"/>
|
||||
<ellipse cx="6" cy="8" rx="40" ry="52" fill="#22d3e6"/>
|
||||
<path d="M-40,-62 H52 V4 C34,-30 -22,-34 -40,4 Z" fill="#0f86a0"/>
|
||||
<ellipse cx="8" cy="36" rx="25" ry="13" fill="#a6f4fb"/>
|
||||
<ellipse cx="6" cy="10" rx="17" ry="24" fill="#0b4a55"/>
|
||||
<ellipse cx="6" cy="8" rx="40" ry="52" fill="none" stroke="#0b4a55" stroke-width="4"/>
|
||||
</g>
|
||||
<ellipse cx="-12" cy="-14" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="23" cy="30" r="6.5" fill="#ffffff"/>
|
||||
<path d="M-58,0 C-60,-50 -22,-71 6,-69 C34,-67 56,-52 61,-20 L72,-28 C69,-16 63,-8 57,-5 C50,-44 30,-58 4,-58 C-24,-58 -46,-40 -48,0 Z" fill="#0b4a55"/>
|
||||
<path d="M-28,55 C-8,64 20,64 34,54" fill="none" stroke="#0b4a55" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="note">
|
||||
<ellipse cx="0" cy="0" rx="8" ry="6" transform="rotate(-22)" fill="#ffffff"/>
|
||||
<path d="M6.5,-2 V-30 C14,-27 22,-20 17,-9" fill="none" stroke="#ffffff" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="bubble">
|
||||
<circle r="1" fill="#22d3e6" fill-opacity="0.22" stroke="#22d3e6" stroke-width="0.08"/>
|
||||
<path d="M-0.62,-0.2 A0.66,0.66 0 0 1 -0.2,-0.62" fill="none" stroke="#ffffff" stroke-width="0.12" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== Aqua B shapes ===== -->
|
||||
<circle id="Bbowl" cx="410" cy="320" r="250"/>
|
||||
<clipPath id="BbowlClip"><use href="#Bbowl"/></clipPath>
|
||||
<path id="Bface" d="M262,300 C258,412 332,500 440,504 C502,504 550,466 566,410 C576,374 578,336 574,300 Z"/>
|
||||
<clipPath id="BfaceClip"><use href="#Bface"/></clipPath>
|
||||
<mask id="BfaceShade"><rect width="1200" height="800" fill="#fff"/><use href="#Bface" transform="translate(-30,-14)" fill="#000"/></mask>
|
||||
<path id="Bbangs" d="M248,340 C244,236 310,174 412,174 C514,174 584,236 584,336 Q560,310 548,282 Q540,318 520,348 Q510,312 492,290 Q478,328 450,352 Q448,312 430,292 Q414,330 382,348 Q384,310 368,294 Q348,326 316,342 Q324,312 312,296 Q290,320 248,340 Z"/>
|
||||
<clipPath id="BbangsClip"><use href="#Bbangs"/></clipPath>
|
||||
<path id="BtailL" d="M292,556 C236,536 176,500 76,462 C92,500 104,542 146,586 C102,628 90,664 84,708 C168,670 236,628 300,600 Z"/>
|
||||
<path id="BtailR" d="M530,556 C582,536 634,504 722,470 C710,504 698,542 662,586 C698,624 708,660 714,700 C644,664 586,628 524,600 Z"/>
|
||||
<clipPath id="BtailLClip"><use href="#BtailL"/></clipPath>
|
||||
<clipPath id="BtailRClip"><use href="#BtailR"/></clipPath>
|
||||
|
||||
<!-- twin tails, cut like goldfish fan tails, orange at the tips -->
|
||||
<g id="Btails">
|
||||
<use href="#BtailL" fill="#ffb320"/>
|
||||
<g clip-path="url(#BtailLClip)">
|
||||
<path d="M40,400 H160 C140,500 140,660 166,760 H40 Z" fill="#ff6a1f"/>
|
||||
<path d="M270,566 C210,540 150,510 104,486 M262,584 C220,584 180,584 150,586 M270,598 C210,626 150,660 104,690" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<use href="#BtailL" fill="none" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
<use href="#BtailR" fill="#ffb320"/>
|
||||
<g clip-path="url(#BtailRClip)">
|
||||
<path d="M780,400 H660 C676,500 676,660 652,760 H780 Z" fill="#ff6a1f"/>
|
||||
<path d="M552,566 C610,540 660,514 700,492 M560,584 C596,584 630,584 660,586 M552,598 C610,626 660,656 698,684" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M722,470 C710,504 698,542 662,586 C698,624 708,660 714,700" fill="none" stroke="#22d3e6" stroke-width="7"/>
|
||||
</g>
|
||||
<use href="#BtailR" fill="none" stroke="#0b4a55" stroke-width="7" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<!-- head in the bowl, headphones clamped outside, collar -->
|
||||
<g id="Bhead">
|
||||
<!-- water behind her -->
|
||||
<use href="#Bbowl" fill="#22d3e6" fill-opacity="0.3"/>
|
||||
<g clip-path="url(#BbowlClip)">
|
||||
<path d="M150,124 C220,104 280,142 350,122 C420,102 480,140 550,120 C600,106 640,124 680,118 V60 H150 Z" fill="#e8fbfd" fill-opacity="0.35"/>
|
||||
<path d="M150,124 C220,104 280,142 350,122 C420,102 480,140 550,120 C600,106 640,124 680,118" fill="none" stroke="#a6f4fb" stroke-width="4"/>
|
||||
</g>
|
||||
<!-- hair, back mass, floating a little in the water -->
|
||||
<path d="M232,340 C222,226 300,150 410,150 C522,150 596,226 590,342 C588,420 570,482 546,524 L282,524 C254,476 236,410 232,340 Z" fill="#ffb320" stroke="#0b4a55" stroke-width="5"/>
|
||||
<path d="M560,300 C578,360 576,430 552,500 L520,500 C540,440 546,370 534,300 Z" fill="#e08a10"/>
|
||||
<path d="M392,152 C384,110 398,84 432,70 C426,92 438,104 458,100 C446,120 430,136 418,154 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- neck -->
|
||||
<path d="M392,480 H474 V566 H392 Z" fill="#e9b9a0"/>
|
||||
<!-- face -->
|
||||
<use href="#Bface" fill="#f6d9c4"/>
|
||||
<g clip-path="url(#BfaceClip)">
|
||||
<rect width="1200" height="800" fill="#e9b9a0" mask="url(#BfaceShade)"/>
|
||||
<use href="#Bbangs" transform="translate(10,20)" fill="#e9b9a0"/>
|
||||
</g>
|
||||
<use href="#Bface" fill="none" stroke="#0b4a55" stroke-width="5"/>
|
||||
<!-- eyes, brows, nose, mouth, blush -->
|
||||
<use href="#eye" transform="translate(366,396) scale(0.9)"/>
|
||||
<use href="#eye" transform="translate(502,390) scale(0.72,0.86)"/>
|
||||
<path d="M447,428 l5,7" stroke="#c98a76" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M436,454 C450,464 478,462 490,450 C490,478 472,492 462,492 C448,492 436,478 436,454 Z" fill="#8a2234" stroke="#0b4a55" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M446,482 C452,474 472,474 480,480 C474,490 454,492 446,482 Z" fill="#ff7f8f"/>
|
||||
<ellipse cx="318" cy="452" rx="30" ry="12" fill="#ff7f8f" opacity="0.6"/>
|
||||
<ellipse cx="540" cy="446" rx="20" ry="10" fill="#ff7f8f" opacity="0.6"/>
|
||||
<!-- bangs and sidelocks -->
|
||||
<use href="#Bbangs" fill="#ffb320"/>
|
||||
<g clip-path="url(#BbangsClip)">
|
||||
<path d="M300,232 C340,206 380,198 410,198 M450,198 C490,202 524,216 546,236" fill="none" stroke="#ffd66b" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M560,250 C590,280 600,320 590,360 L620,360 L620,240 Z" fill="#e08a10"/>
|
||||
<path d="M412,182 C398,232 382,272 368,294 M412,182 C432,226 444,262 450,300 M412,182 C462,214 496,252 516,300 M412,182 C356,212 326,254 312,296" fill="none" stroke="#e08a10" stroke-width="3.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<use href="#Bbangs" fill="none" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M250,316 C236,380 240,446 262,508 C268,478 282,456 298,446 C286,404 282,360 288,326 Z" fill="#ffb320" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M578,316 C592,370 590,424 574,476 C568,452 558,436 546,428 C556,394 560,358 556,328 Z" fill="#e08a10" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<!-- bubbles inside the bowl -->
|
||||
<use href="#bubble" transform="translate(600,230) scale(14)"/>
|
||||
<use href="#bubble" transform="translate(620,180) scale(9)"/>
|
||||
<use href="#bubble" transform="translate(588,148) scale(6)"/>
|
||||
<use href="#bubble" transform="translate(220,440) scale(8)"/>
|
||||
<!-- the glass -->
|
||||
<use href="#Bbowl" fill="none" stroke="#0b4a55" stroke-width="10"/>
|
||||
<use href="#Bbowl" fill="none" stroke="#7fe9f5" stroke-width="3.5"/>
|
||||
<path d="M202,262 C214,186 266,126 334,100" fill="none" stroke="#ffffff" stroke-width="13" stroke-linecap="round" opacity="0.9"/>
|
||||
<circle cx="356" cy="92" r="6" fill="#ffffff" opacity="0.9"/>
|
||||
<path d="M626,420 C604,476 566,520 516,548" fill="none" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity="0.55"/>
|
||||
<!-- headphones clamped on the outside of the bowl -->
|
||||
<path d="M156,300 C140,96 296,36 412,36 C540,36 684,100 668,300" fill="none" stroke="#0b4a55" stroke-width="42" stroke-linecap="round"/>
|
||||
<path d="M156,300 C140,96 296,36 412,36 C540,36 684,100 668,300" fill="none" stroke="#1c1c24" stroke-width="30" stroke-linecap="round"/>
|
||||
<path d="M190,170 C226,104 300,66 384,58" fill="none" stroke="#454558" stroke-width="7" stroke-linecap="round"/>
|
||||
<ellipse cx="682" cy="326" rx="40" ry="74" fill="#1c1c24" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="690" cy="326" rx="22" ry="50" fill="none" stroke="#22d3e6" stroke-width="8"/>
|
||||
<ellipse cx="174" cy="330" rx="56" ry="82" fill="#2c2c38" stroke="#0b4a55" stroke-width="6"/>
|
||||
<ellipse cx="146" cy="330" rx="60" ry="84" fill="#1c1c24" stroke="#0b4a55" stroke-width="7"/>
|
||||
<ellipse cx="146" cy="330" rx="38" ry="58" fill="none" stroke="#22d3e6" stroke-width="10"/>
|
||||
<ellipse cx="146" cy="330" rx="20" ry="34" fill="#22d3e6" opacity="0.4"/>
|
||||
<path d="M112,288 C118,270 130,260 144,258" fill="none" stroke="#454558" stroke-width="6" stroke-linecap="round"/>
|
||||
<!-- collar ring the bowl seats into -->
|
||||
<ellipse cx="412" cy="566" rx="150" ry="34" fill="#1c1c24" stroke="#0b4a55" stroke-width="6"/>
|
||||
<path d="M276,566 C320,590 500,592 548,566" fill="none" stroke="#22d3e6" stroke-width="5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="Bbody">
|
||||
<path d="M262,800 C262,700 290,630 340,600 L486,600 C536,630 562,700 562,800 Z" fill="#f4fbfc" stroke="#0b4a55" stroke-width="7"/>
|
||||
<path d="M512,626 C540,668 552,730 554,796 H526 C524,730 516,680 496,640 Z" fill="#bfe3ea"/>
|
||||
<path d="M360,602 L414,692 L468,602 Z" fill="#22d3e6" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M340,600 C316,620 296,660 292,704 L392,664 L358,600 Z" fill="#22d3e6" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M486,600 C510,620 530,660 534,704 L436,664 L470,600 Z" fill="#0f86a0" stroke="#0b4a55" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M308,654 L370,630 M518,652 L462,628" stroke="#f4fbfc" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M414,676 C390,656 362,660 366,684 C370,704 396,700 414,688 C432,700 458,704 462,684 C466,660 438,656 414,676 Z" fill="#ff6a1f" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<!-- round synth pad, pebble keys -->
|
||||
<g id="Bpad">
|
||||
<circle cx="430" cy="720" r="80" fill="#1c1c24" stroke="#0b4a55" stroke-width="7"/>
|
||||
<circle cx="430" cy="720" r="64" fill="none" stroke="#22d3e6" stroke-width="5"/>
|
||||
<ellipse cx="400" cy="694" rx="15" ry="11" fill="#22d3e6"/>
|
||||
<ellipse cx="438" cy="682" rx="15" ry="11" fill="#ffb320"/>
|
||||
<ellipse cx="470" cy="702" rx="15" ry="11" fill="#ff6a1f"/>
|
||||
<ellipse cx="398" cy="730" rx="15" ry="11" fill="#ff6a1f"/>
|
||||
<ellipse cx="458" cy="740" rx="15" ry="11" fill="#22d3e6"/>
|
||||
<circle cx="428" cy="716" r="9" fill="#e8fbfd"/>
|
||||
<path d="M346,736 C330,716 336,690 358,688 C374,688 380,704 376,722 C372,740 358,748 346,736 Z" fill="#f6d9c4" stroke="#0b4a55" stroke-width="5"/>
|
||||
<path d="M512,708 C530,690 528,664 506,662 C490,662 484,678 488,696 C492,712 502,718 512,708 Z" fill="#f6d9c4" stroke="#0b4a55" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="BbustChar">
|
||||
<use href="#Btails"/>
|
||||
<use href="#Bbody"/>
|
||||
<use href="#Bhead"/>
|
||||
<use href="#Bpad"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#eef3f2"/>
|
||||
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M600,40 l-180,740 M680,40 l-180,740" stroke="#22d3e6" stroke-opacity="0.07" stroke-width="40"/>
|
||||
<use href="#BbustChar" transform="translate(10,14)"/>
|
||||
</g>
|
||||
<path d="M70,20 H790 L760,780 H40 Z" fill="none" stroke="#22d3e6" stroke-width="5"/>
|
||||
|
||||
<use href="#bubble" transform="translate(746,200) scale(30)"/>
|
||||
<use href="#note" transform="translate(743,212) scale(0.9)"/>
|
||||
<use href="#bubble" transform="translate(770,110) scale(16)"/>
|
||||
<use href="#bubble" transform="translate(724,280) scale(10)"/>
|
||||
|
||||
<path d="M520,724 H770 L764,768 H512 Z" fill="#22d3e6"/>
|
||||
<text x="534" y="755" font-family="Consolas, 'Courier New', monospace" font-size="24" font-weight="700" letter-spacing="8" fill="#07111a">AQUA</text>
|
||||
|
||||
<text x="830" y="58" font-family="'Segoe UI', Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="4" fill="#0b4a55">AQUA · B</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', Arial, sans-serif" font-size="17" font-weight="600" letter-spacing="2" fill="#0f86a0">BOWL HELMET</text>
|
||||
<text font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#1c1c24">
|
||||
<tspan x="830" y="118">Hook: she wears her tank — a round fishbowl</tspan>
|
||||
<tspan x="830" y="137">helmet, headphones clamped outside the glass,</tspan>
|
||||
<tspan x="830" y="156">gold twin tails cut like goldfish fan tails.</tspan>
|
||||
</text>
|
||||
|
||||
<!-- full body, about 2.3 heads -->
|
||||
<g>
|
||||
<ellipse cx="925" cy="520" rx="70" ry="9" fill="#0b4a55" opacity="0.15"/>
|
||||
<g transform="translate(925,262) scale(0.26) translate(-412,-320)">
|
||||
<use href="#Btails"/>
|
||||
</g>
|
||||
<path d="M892,348 C872,360 866,400 868,436 H982 C984,400 978,360 958,348 Z" fill="#f4fbfc" stroke="#0b4a55" stroke-width="4"/>
|
||||
<path d="M908,350 L925,378 L942,350 Z" fill="#22d3e6" stroke="#0b4a55" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M868,432 H982 L988,456 H862 Z" fill="#22d3e6" stroke="#0b4a55" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M898,456 h20 v40 h-20 Z M934,456 h20 v40 h-20 Z" fill="#f6d9c4" stroke="#0b4a55" stroke-width="3.5"/>
|
||||
<ellipse cx="906" cy="504" rx="18" ry="11" fill="#ff6a1f" stroke="#0b4a55" stroke-width="3.5"/>
|
||||
<ellipse cx="946" cy="504" rx="18" ry="11" fill="#ff6a1f" stroke="#0b4a55" stroke-width="3.5"/>
|
||||
<g transform="translate(925,262) scale(0.26) translate(-412,-320)">
|
||||
<use href="#Bhead"/>
|
||||
</g>
|
||||
<circle cx="926" cy="404" r="24" fill="#1c1c24" stroke="#0b4a55" stroke-width="3.5"/>
|
||||
<circle cx="926" cy="404" r="18" fill="none" stroke="#22d3e6" stroke-width="2.5"/>
|
||||
<circle cx="918" cy="396" r="4" fill="#ffb320"/><circle cx="932" cy="394" r="4" fill="#ff6a1f"/><circle cx="934" cy="410" r="4" fill="#22d3e6"/>
|
||||
<circle cx="900" cy="410" r="9" fill="#f6d9c4" stroke="#0b4a55" stroke-width="3"/>
|
||||
<circle cx="952" cy="398" r="9" fill="#f6d9c4" stroke="#0b4a55" stroke-width="3"/>
|
||||
<text x="925" y="545" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">full body · 2.3 heads</text>
|
||||
</g>
|
||||
|
||||
<rect x="1040" y="250" width="140" height="140" fill="#ffffff" stroke="#b7c9cb"/>
|
||||
<g transform="translate(1048,262) scale(0.165) translate(-60,-40)">
|
||||
<use href="#BbustChar" filter="url(#sil)"/>
|
||||
</g>
|
||||
<text x="1110" y="408" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">bust silhouette</text>
|
||||
|
||||
<text x="830" y="612" font-family="'Segoe UI', Arial, sans-serif" font-size="13" font-weight="700" letter-spacing="2" fill="#0b4a55">PALETTE</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#1c1c24" text-anchor="middle">
|
||||
<rect x="830" y="626" width="50" height="50" rx="6" fill="#22d3e6" stroke="#0b4a55" stroke-width="2"/><text x="855" y="694">#22d3e6</text><text x="855" y="708">water</text>
|
||||
<rect x="890" y="626" width="50" height="50" rx="6" fill="#0b4a55" stroke="#0b4a55" stroke-width="2"/><text x="915" y="694">#0b4a55</text><text x="915" y="708">line</text>
|
||||
<rect x="950" y="626" width="50" height="50" rx="6" fill="#ffb320" stroke="#0b4a55" stroke-width="2"/><text x="975" y="694">#ffb320</text><text x="975" y="708">hair</text>
|
||||
<rect x="1010" y="626" width="50" height="50" rx="6" fill="#ff6a1f" stroke="#0b4a55" stroke-width="2"/><text x="1035" y="694">#ff6a1f</text><text x="1035" y="708">fin tip</text>
|
||||
<rect x="1070" y="626" width="50" height="50" rx="6" fill="#1c1c24" stroke="#0b4a55" stroke-width="2"/><text x="1095" y="694">#1c1c24</text><text x="1095" y="708">phones</text>
|
||||
<rect x="1130" y="626" width="50" height="50" rx="6" fill="#f6d9c4" stroke="#0b4a55" stroke-width="2"/><text x="1155" y="694">#f6d9c4</text><text x="1155" y="708">skin</text>
|
||||
</g>
|
||||
<text x="830" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a6a70">Jacket white is the sheet neutral, not a seventh hue.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
BIN
cast-designs/proposals/eureka/eureka-A.png
Normal file
|
After Width: | Height: | Size: 234 KiB |
193
cast-designs/proposals/eureka/eureka-A.svg
Normal file
|
|
@ -0,0 +1,193 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Eureka, direction A</title>
|
||||
<defs>
|
||||
<filter id="sil" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<radialGradient id="glow"><stop offset="0" stop-color="#ff8a2a" stop-opacity="0.55"/><stop offset="1" stop-color="#ff8a2a" stop-opacity="0"/></radialGradient>
|
||||
<clipPath id="cardClip"><rect x="-300" y="-300" width="1400" height="1080"/></clipPath>
|
||||
<clipPath id="eyeL"><path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z"/></clipPath>
|
||||
<clipPath id="eyeR"><path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z"/></clipPath>
|
||||
<g id="hairBack">
|
||||
<path d="M190 360 C170 230 262 120 396 114 C532 110 626 210 614 350 C612 410 620 470 644 520 L602 512 L614 574 L568 542 L562 604 L526 558 L290 562 L250 612 L244 558 L196 584 L210 522 L166 522 C186 470 192 420 190 360 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M570 300 C596 380 604 460 644 520 L602 512 L614 574 L568 542 L562 604 L540 570 C580 500 590 400 570 300 Z" fill="#0d0f14"/>
|
||||
<path d="M600 300 C610 380 616 450 640 512" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/></g>
|
||||
<g id="hairBackWild">
|
||||
<path d="M186 360 C160 300 140 250 104 236 C150 222 176 214 196 200 C186 170 160 130 128 112 C182 110 222 120 250 136 C262 104 288 74 330 58 C326 82 330 100 340 116 C376 92 420 82 470 86 C450 98 440 112 436 122 C494 108 560 122 604 158 C580 160 566 168 558 178 C606 196 646 236 664 290 C640 282 624 284 614 290 C624 340 628 420 664 470 C640 470 624 474 616 482 C632 520 640 560 664 590 L604 572 L606 624 L566 582 L556 630 L524 580 L290 584 L246 636 L242 584 L190 606 L208 540 L156 548 C182 486 190 420 186 360 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 180 C620 230 640 300 616 290 C626 370 630 430 664 470 C640 470 624 474 616 482 C632 520 640 560 664 590 L604 572 L606 624 L566 582 L560 610 L540 570 C600 470 600 300 560 180 Z" fill="#0d0f14"/>
|
||||
<path d="M604 158 C640 200 662 250 664 290 M614 300 C622 380 640 440 660 468" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M250 136 C270 110 296 86 324 70 M128 112 C170 126 200 150 214 176" fill="none" stroke="#3d4456" stroke-width="5" stroke-linecap="round"/></g>
|
||||
<g id="prybar">
|
||||
<path d="M0 0 L420 0 C470 0 492 -46 470 -88" fill="none" stroke="#2b1408" stroke-width="34" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0 0 L420 0 C470 0 492 -46 470 -88" fill="none" stroke="#ff8a2a" stroke-width="22" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0 5 L420 5 C464 6 486 -36 476 -76" fill="none" stroke="#c4561f" stroke-width="8"/>
|
||||
<path d="M10 -5 L380 -5" stroke="#ffd2a8" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M-10 0 L-26 -10 M-10 0 L-26 10" stroke="#2b1408" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M462 -84 L486 -96" stroke="#2b1408" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="lantern">
|
||||
<circle cx="0" cy="40" r="120" fill="url(#glow)"/>
|
||||
<path d="M-8 -84 C-8 -110 8 -110 8 -84" fill="none" stroke="#2b1408" stroke-width="8"/>
|
||||
<path d="M-30 -60 L30 -60 L22 -84 L-22 -84 Z" fill="#2c323e" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<rect x="-40" y="-62" width="80" height="16" rx="4" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M-34 -46 L34 -46 L38 72 L-38 72 Z" fill="#ffc27a" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M8 -46 L34 -46 L38 72 L12 72 Z" fill="#ff8a2a"/>
|
||||
<path d="M0 50 C-22 30 -14 6 0 -16 C14 6 22 30 0 50 Z" fill="#ffffff" stroke="#ff8a2a" stroke-width="4"/>
|
||||
<path d="M-34 -6 L34 -6 M-36 34 L36 34 M0 -46 L0 72" stroke="#2b1408" stroke-width="5"/>
|
||||
<rect x="-46" y="70" width="92" height="20" rx="5" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="bug">
|
||||
<path d="M-16 -6 L-40 -24 M-16 4 L-44 4 M-14 12 L-38 32 M16 -6 L40 -24 M16 4 L44 4 M14 12 L38 32 M-6 -24 L-18 -46 M6 -24 L18 -46" stroke="#2b1408" stroke-width="4" stroke-linecap="round" fill="none"/>
|
||||
<ellipse cx="0" cy="10" rx="20" ry="28" fill="#2c323e" stroke="#2b1408" stroke-width="5"/>
|
||||
<path d="M0 -16 L0 38" stroke="#2b1408" stroke-width="3"/>
|
||||
<circle cx="0" cy="-20" r="12" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/>
|
||||
<circle cx="-5" cy="-22" r="4" fill="#ff8a2a"/><circle cx="5" cy="-22" r="4" fill="#ff8a2a"/><circle cx="0" cy="-14" r="3" fill="#ff8a2a"/>
|
||||
<path d="M-12 0 C-8 6 -8 14 -12 20 M12 0 C8 6 8 14 12 20" stroke="#ff8a2a" stroke-width="3" fill="none"/>
|
||||
</g>
|
||||
<g id="jar">
|
||||
<circle cx="0" cy="10" r="110" fill="url(#glow)"/>
|
||||
<path d="M-56 -60 C-60 -40 -62 60 -56 84 C-40 98 40 98 56 84 C62 60 60 -40 56 -60 Z" fill="#bfe6ff" fill-opacity="0.35" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<use href="#bug" transform="translate(0,14) rotate(-18) scale(1.1)"/>
|
||||
<path d="M-58 -60 L58 -60 L52 -84 L-52 -84 Z" fill="#2c323e" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M-56 -66 L56 -66" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<path d="M-40 -40 C-46 0 -46 40 -40 70" fill="none" stroke="#ffffff" stroke-width="7" stroke-linecap="round" opacity="0.85"/>
|
||||
<path d="M-58 44 L58 44 L56 72 L-56 72 Z" fill="#f4efe7" stroke="#2b1408" stroke-width="4"/>
|
||||
<text x="0" y="64" text-anchor="middle" font-family="Consolas, 'Courier New', monospace" font-size="16" font-weight="700" fill="#2b1408">SURVIVED</text>
|
||||
</g>
|
||||
<g id="tweezers">
|
||||
<path d="M0 0 L-8 -190 M0 0 L14 -188" stroke="#2b1408" stroke-width="14" stroke-linecap="round"/>
|
||||
<path d="M0 0 L-8 -190 M0 0 L14 -188" stroke="#9aa3ae" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M-4 -60 L8 -60" stroke="#ff8a2a" stroke-width="6"/>
|
||||
<use href="#bug" transform="translate(4,-222) rotate(30) scale(1.25)"/>
|
||||
<path d="M-30 -250 L-44 -262 M36 -246 L52 -256 M40 -214 L58 -212" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="torso">
|
||||
<path d="M362 556 L364 630 C390 646 420 646 446 630 L448 552 Z" fill="#ffd6a8" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M364 572 C392 598 424 598 448 568 L448 606 C420 622 392 620 364 604 Z" fill="#f2b089"/>
|
||||
<path d="M350 600 C300 620 226 630 186 668 C156 700 146 750 142 820 L668 820 C664 750 652 704 624 676 C594 646 512 624 458 600 Z" fill="#2c323e" stroke="#2b1408" stroke-width="9" stroke-linejoin="round"/>
|
||||
<path d="M560 640 C600 660 640 690 650 820 L590 820 C596 740 590 680 560 640 Z" fill="#1a1e27"/>
|
||||
<path d="M352 604 L404 730 L456 604 Z" fill="#14161c" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M380 640 L404 700 L428 640" fill="none" stroke="#4a505c" stroke-width="10" stroke-linejoin="round"/>
|
||||
<path d="M354 590 L280 616 L320 704 L404 736 Z" fill="#3d4554" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M454 590 L528 616 L490 704 L404 736 Z" fill="#2c323e" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M284 620 L322 702 L398 730 M524 620 L488 702 L410 730" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M232 660 L330 820" stroke="#2b1408" stroke-width="32" stroke-linecap="butt"/>
|
||||
<path d="M232 660 L330 820" stroke="#4a505c" stroke-width="22"/>
|
||||
<path d="M588 664 L500 820" stroke="#2b1408" stroke-width="32"/>
|
||||
<path d="M588 664 L500 820" stroke="#4a505c" stroke-width="22"/>
|
||||
<rect x="252" y="700" width="46" height="34" rx="5" transform="rotate(-58 275 717)" fill="#9aa3ae" stroke="#2b1408" stroke-width="5"/>
|
||||
<rect x="512" y="728" width="62" height="60" rx="8" transform="rotate(28 543 758)" fill="#4a505c" stroke="#2b1408" stroke-width="5"/>
|
||||
<path d="M518 744 L572 770" stroke="#2b1408" stroke-width="4" transform="rotate(28 543 758)"/>
|
||||
<circle cx="560" cy="712" r="7" fill="#ff8a2a" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M620 690 C640 720 650 760 652 820" fill="none" stroke="#ff8a2a" stroke-width="4"/></g>
|
||||
<g id="head">
|
||||
<path d="M212 300 C204 400 238 492 320 548 C364 578 414 596 448 586 C488 572 532 522 556 450 C570 404 574 350 566 300 Z" fill="#ffd6a8" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M216 360 L256 400 L270 340 L322 384 L346 330 L398 392 L424 326 L470 386 L486 330 L540 396 L548 334 L568 380 C570 340 568 320 566 300 L212 300 Z" fill="#f2b089"/>
|
||||
<path d="M560 400 C552 470 520 528 460 570 C500 556 544 512 558 452 Z" fill="#f2b089"/>
|
||||
<path d="M561 330 C566 400 548 474 500 540" fill="none" stroke="#ff8a2a" stroke-width="5" stroke-linecap="round"/>
|
||||
<ellipse cx="300" cy="516" rx="30" ry="12" fill="#ff8a2a" opacity="0.25"/>
|
||||
<ellipse cx="512" cy="510" rx="22" ry="11" fill="#ff8a2a" opacity="0.25"/>
|
||||
|
||||
<path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeL)">
|
||||
<path d="M268 410 L390 410 L390 440 C350 424 300 426 268 448 Z" fill="#d6dde6"/>
|
||||
<ellipse cx="336" cy="456" rx="40" ry="52" fill="#59b7ff" stroke="#2b1408" stroke-width="3.5"/>
|
||||
<path d="M296 456 A40 52 0 0 1 376 456 C358 444 314 444 296 456 Z" fill="#2a5d9a"/>
|
||||
<ellipse cx="338" cy="488" rx="26" ry="13" fill="#bfe6ff"/>
|
||||
<path d="M312 470 C320 478 352 478 360 470" fill="none" stroke="#ff8a2a" stroke-width="3" opacity="0.9"/>
|
||||
<ellipse cx="338" cy="458" rx="15" ry="22" fill="#0f2238"/>
|
||||
<ellipse cx="318" cy="436" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="354" cy="482" r="6" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M258 454 C264 408 336 386 388 410 L404 398 L398 422 L388 428 C340 406 288 416 270 458 Z" fill="#2b1408"/>
|
||||
<path d="M258 452 L244 446 M262 436 L248 424" stroke="#2b1408" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M292 498 C312 506 340 506 360 496" fill="none" stroke="#2b1408" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeR)">
|
||||
<path d="M450 404 L545 404 L545 432 C514 414 476 418 450 442 Z" fill="#d6dde6"/>
|
||||
<ellipse cx="500" cy="456" rx="32" ry="50" fill="#59b7ff" stroke="#2b1408" stroke-width="3.5"/>
|
||||
<path d="M468 456 A32 50 0 0 1 532 456 C518 444 482 444 468 456 Z" fill="#2a5d9a"/>
|
||||
<ellipse cx="502" cy="488" rx="20" ry="12" fill="#bfe6ff"/>
|
||||
<path d="M482 470 C488 478 512 478 518 470" fill="none" stroke="#ff8a2a" stroke-width="3" opacity="0.9"/>
|
||||
<ellipse cx="502" cy="458" rx="12" ry="21" fill="#0f2238"/>
|
||||
<ellipse cx="486" cy="436" rx="10" ry="15" fill="#ffffff"/>
|
||||
<circle cx="514" cy="482" r="5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M448 446 C462 404 522 396 546 418 L560 410 L554 432 C522 408 474 414 456 450 Z" fill="#2b1408"/>
|
||||
<path d="M470 496 C488 504 506 502 520 494" fill="none" stroke="#2b1408" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M282 384 C300 362 336 356 362 366" fill="none" stroke="#2b1408" stroke-width="6" stroke-linecap="round"/><path d="M466 380 C484 372 508 372 526 382" fill="none" stroke="#2b1408" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M444 498 L438 510 L448 510" fill="none" stroke="#c4561f" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M414 536 C432 544 452 542 472 526" fill="none" stroke="#2b1408" stroke-width="4.5" stroke-linecap="round"/><path d="M468 520 L478 530" stroke="#2b1408" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M318 572 L330 566 M340 580 L352 574" stroke="#f2b089" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M252 452 C262 400 340 380 396 406 L398 432 C350 420 300 424 266 452 Z" fill="#ffd6a8"/>
|
||||
<path d="M440 446 C456 396 528 388 552 414 L550 436 C520 422 476 422 452 448 Z" fill="#ffd6a8"/>
|
||||
<path d="M260 460 C276 426 340 412 394 432 L408 424 L400 442 C346 428 292 436 270 466 Z" fill="#2b1408"/>
|
||||
<path d="M260 458 L244 452" stroke="#2b1408" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M448 452 C468 424 524 420 548 438 L562 432 L554 450 C524 434 476 436 456 456 Z" fill="#2b1408"/>
|
||||
<path d="M194 372 C186 238 280 146 402 144 C522 142 614 228 606 362 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 L470 384 C456 348 442 330 424 320 L404 428 C392 380 372 340 346 322 L322 380 C306 352 288 336 270 334 L262 398 C252 386 242 376 234 368 L226 470 C204 436 194 404 194 372 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M506 158 C560 180 600 240 606 330 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 C520 290 530 220 506 158 Z" fill="#0d0f14"/>
|
||||
<path d="M382 200 C372 250 372 300 382 340 M460 190 C474 230 478 280 470 316 M236 300 C230 340 230 360 236 368" fill="none" stroke="#0d0f14" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M396 182 C424 176 452 178 476 188 L462 202 L446 194 L430 208 L414 196 Z" fill="#3d4456"/>
|
||||
<path d="M322 150 C278 204 254 300 262 398 C282 348 304 290 352 154 Z" fill="#ff8a2a" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M300 196 C282 240 270 300 270 360" fill="none" stroke="#c4561f" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M330 170 C318 190 310 210 304 232" fill="none" stroke="#ffd2a8" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M561 300 C590 330 600 360 594 396" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" d="M150 600 C120 440 140 260 236 150 C270 110 280 70 262 22 C340 40 420 66 478 92 C610 148 662 290 652 440 C648 510 636 566 618 600 Z M214 600 C190 470 186 330 236 246 C284 176 348 152 404 152 C484 152 562 196 592 278 C620 360 612 480 590 600 Z" fill="#2c323e"/>
|
||||
<path d="M150 610 C120 440 140 260 236 150 C270 110 280 70 262 22 C340 40 420 66 478 92 C610 148 662 290 652 440 C648 510 636 566 618 600 M214 600 C190 470 186 330 236 246 C284 176 348 152 404 152 C484 152 562 196 592 278 C620 360 612 480 590 600" fill="none" stroke="#2b1408" stroke-width="9" stroke-linejoin="round"/>
|
||||
<path d="M262 22 C340 40 420 66 478 92 C610 148 662 290 652 440 C648 510 636 566 618 600 L590 600 C612 480 620 360 592 278 C562 196 484 152 404 152 C470 120 520 120 478 92 Z" fill="#1a1e27"/>
|
||||
<path d="M218 588 C196 466 194 334 240 254 C288 184 350 162 404 162 C482 162 556 204 584 282 C610 360 604 476 584 590" fill="none" stroke="#ff8a2a" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M252 40 C300 60 330 90 342 130 M200 300 C172 380 170 470 180 560" fill="none" stroke="#3d4554" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M622 330 C640 400 642 480 628 560" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/></g>
|
||||
<g id="headBack"><path d="M150 700 C120 440 140 260 236 150 C270 110 280 70 262 22 C340 40 420 66 478 92 C610 148 662 290 652 440 C648 530 640 620 630 700 Z" fill="#2c323e" stroke="#2b1408" stroke-width="9" stroke-linejoin="round"/><path d="M604 520 C620 600 630 660 630 700 L580 700 C600 640 606 580 604 520 Z" fill="#1a1e27"/><path d="M214 640 C190 470 186 330 236 246 C284 176 348 152 404 152 C484 152 562 196 592 278 C620 360 612 480 594 640 Z" fill="#111319"/><use href="#hairBack"/></g>
|
||||
<g id="bust"><path d="M150 700 C120 440 140 260 236 150 C270 110 280 70 262 22 C340 40 420 66 478 92 C610 148 662 290 652 440 C648 530 640 620 630 700 Z" fill="#2c323e" stroke="#2b1408" stroke-width="9" stroke-linejoin="round"/><path d="M604 520 C620 600 630 660 630 700 L580 700 C600 640 606 580 604 520 Z" fill="#1a1e27"/><path d="M214 640 C190 470 186 330 236 246 C284 176 348 152 404 152 C484 152 562 196 592 278 C620 360 612 480 594 640 Z" fill="#111319"/><use href="#hairBack"/><use href="#torso"/><use href="#prybar" transform="translate(300,850) rotate(-121) scale(1.12)"/><use href="#head"/><path d="M214 840 L256 716" stroke="#2b1408" stroke-width="72" stroke-linecap="round"/><path d="M214 840 L256 716" stroke="#2c323e" stroke-width="58" stroke-linecap="round"/><path d="M236 840 L274 724" stroke="#ff8a2a" stroke-width="4"/><g transform="translate(262,700) rotate(-31) scale(1.0)">
|
||||
<rect x="-34" y="-34" width="58" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="-14" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="6" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-34" y="26" width="56" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M18 -36 C40 -40 52 -24 46 -8 C42 4 30 6 22 0 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M-30 -26 C-30 -8 -32 12 -30 38" fill="none" stroke="#ff8a2a" stroke-width="3" stroke-linecap="round"/>
|
||||
</g><path d="M780 600 L716 360" stroke="#2b1408" stroke-width="72" stroke-linecap="round"/><path d="M780 600 L716 360" stroke="#2c323e" stroke-width="58" stroke-linecap="round"/><path d="M802 600 L734 368" stroke="#ff8a2a" stroke-width="4"/><g transform="translate(690,318) rotate(14) scale(0.9)">
|
||||
<rect x="-34" y="-34" width="58" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="-14" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="6" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-34" y="26" width="56" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M18 -36 C40 -40 52 -24 46 -8 C42 4 30 6 22 0 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M-30 -26 C-30 -8 -32 12 -30 38" fill="none" stroke="#ff8a2a" stroke-width="3" stroke-linecap="round"/>
|
||||
</g><use href="#lantern" transform="translate(664,446)"/></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe7"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="#07111a"/>
|
||||
<polygon points="300,46 640,46 560,780 220,780" fill="#0f2131"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="none" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<g clip-path="url(#cardClip)"><use href="#bust" transform="translate(66,102) scale(0.84)"/></g>
|
||||
<polygon points="40,708 300,708 288,756 28,756" fill="#ff8a2a"/>
|
||||
<text x="58" y="743" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="8" fill="#07111a">EUREKA</text>
|
||||
<text x="812" y="66" font-family="Consolas, 'Courier New', monospace" font-size="18" font-weight="700" letter-spacing="2" fill="#2b1408">EUREKA / A / HOOD + LANTERN</text>
|
||||
<text x="812" y="94" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#2b1408">Hook: the peaked neon-piped hood, up, with a lantern</text>
|
||||
<text x="812" y="113" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#2b1408">raised to her face and the pry bar across her shoulder.</text>
|
||||
<g transform="translate(-16,0)"><use href="#headBack" transform="translate(768,152) scale(0.36)"/>
|
||||
|
||||
<path d="M880 520 L900 520 L898 576 L878 576 Z M914 520 L934 520 L936 576 L916 576 Z" fill="#14161c" stroke="#2b1408" stroke-width="4"/>
|
||||
<path d="M868 572 L902 572 L904 600 L860 600 C860 588 862 578 868 572 Z M912 572 L944 572 C952 578 956 590 956 600 L910 600 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M862 596 L904 596 M910 596 L956 596" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<path d="M884 360 C862 364 852 380 850 400 L834 528 C860 536 950 536 978 528 L962 400 C960 380 950 364 928 360 Z" fill="#2c323e" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M930 362 C950 366 960 384 962 400 L978 528 C966 532 956 532 946 532 L944 420 Z" fill="#1a1e27"/>
|
||||
<path d="M906 372 L908 532 M836 524 C860 532 950 532 976 524" fill="none" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<path d="M886 366 L906 392 L926 366" fill="#14161c" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M866 372 L944 440 M948 372 L870 440" stroke="#4a505c" stroke-width="7"/>
|
||||
<rect x="896" y="398" width="20" height="16" rx="3" fill="#9aa3ae" stroke="#2b1408" stroke-width="3"/>
|
||||
<rect x="930" y="430" width="22" height="22" rx="4" fill="#4a505c" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M896 434 L918 434" stroke="#4a505c" stroke-width="8"/>
|
||||
<use href="#prybar" transform="translate(874,442) rotate(-122) scale(0.32)"/>
|
||||
<use href="#head" transform="translate(768,152) scale(0.36)"/>
|
||||
<path d="M858 378 L850 410" stroke="#2b1408" stroke-width="24" stroke-linecap="round"/><path d="M858 378 L850 410" stroke="#2c323e" stroke-width="16" stroke-linecap="round"/><circle cx="852" cy="418" r="10" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/>
|
||||
<path d="M956 378 L978 420" stroke="#2b1408" stroke-width="24" stroke-linecap="round"/><path d="M956 378 L978 420" stroke="#2c323e" stroke-width="16" stroke-linecap="round"/><use href="#lantern" transform="translate(984,470) scale(0.36)"/><circle cx="982" cy="428" r="10" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/></g>
|
||||
<text x="850" y="626" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">full body, 2.5 heads</text>
|
||||
<rect x="1012" y="140" width="168" height="200" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bust" transform="translate(1026,160) scale(0.2)"/></g>
|
||||
<text x="1016" y="356" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">bust silhouette</text>
|
||||
<rect x="1012" y="372" width="64" height="64" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bust" transform="translate(1021,380) scale(0.062)"/></g>
|
||||
<text x="1086" y="410" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">at 48 px</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2b1408"><rect x="812" y="640" width="52" height="52" fill="#ff8a2a" stroke="#2b1408" stroke-width="2"/><text x="812" y="708">#ff8a2a</text><text x="812" y="722">neon</text><rect x="874" y="640" width="52" height="52" fill="#2b1408" stroke="#2b1408" stroke-width="2"/><text x="874" y="708">#2b1408</text><text x="874" y="722">line</text><rect x="936" y="640" width="52" height="52" fill="#1d2029" stroke="#2b1408" stroke-width="2"/><text x="936" y="708">#1d2029</text><text x="936" y="722">hair</text><rect x="998" y="640" width="52" height="52" fill="#2c323e" stroke="#2b1408" stroke-width="2"/><text x="998" y="708">#2c323e</text><text x="998" y="722">coat</text><rect x="1060" y="640" width="52" height="52" fill="#ffd6a8" stroke="#2b1408" stroke-width="2"/><text x="1060" y="708">#ffd6a8</text><text x="1060" y="722">skin</text><rect x="1122" y="640" width="52" height="52" fill="#59b7ff" stroke="#2b1408" stroke-width="2"/><text x="1122" y="708">#59b7ff</text><text x="1122" y="722">eyes</text></g>
|
||||
<text x="812" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">Canon: hooded neon-noir trench, harness, black hair, one orange streak.</text>
|
||||
<text x="812" y="766" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">Shape: one tall wedge (hood) over a circle; lantern and bar flank it.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
BIN
cast-designs/proposals/eureka/eureka-B.png
Normal file
|
After Width: | Height: | Size: 215 KiB |
181
cast-designs/proposals/eureka/eureka-B.svg
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Eureka, direction B</title>
|
||||
<defs>
|
||||
<filter id="sil" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<radialGradient id="glow"><stop offset="0" stop-color="#ff8a2a" stop-opacity="0.55"/><stop offset="1" stop-color="#ff8a2a" stop-opacity="0"/></radialGradient>
|
||||
<clipPath id="cardClip"><rect x="-300" y="-300" width="1400" height="1080"/></clipPath>
|
||||
<clipPath id="eyeL"><path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z"/></clipPath>
|
||||
<clipPath id="eyeR"><path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z"/></clipPath>
|
||||
<g id="hairBack">
|
||||
<path d="M190 360 C170 230 262 120 396 114 C532 110 626 210 614 350 C612 410 620 470 644 520 L602 512 L614 574 L568 542 L562 604 L526 558 L290 562 L250 612 L244 558 L196 584 L210 522 L166 522 C186 470 192 420 190 360 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M570 300 C596 380 604 460 644 520 L602 512 L614 574 L568 542 L562 604 L540 570 C580 500 590 400 570 300 Z" fill="#0d0f14"/>
|
||||
<path d="M600 300 C610 380 616 450 640 512" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/></g>
|
||||
<g id="hairBackWild">
|
||||
<path d="M186 360 C160 300 140 250 104 236 C150 222 176 214 196 200 C186 170 160 130 128 112 C182 110 222 120 250 136 C262 104 288 74 330 58 C326 82 330 100 340 116 C376 92 420 82 470 86 C450 98 440 112 436 122 C494 108 560 122 604 158 C580 160 566 168 558 178 C606 196 646 236 664 290 C640 282 624 284 614 290 C624 340 628 420 664 470 C640 470 624 474 616 482 C632 520 640 560 664 590 L604 572 L606 624 L566 582 L556 630 L524 580 L290 584 L246 636 L242 584 L190 606 L208 540 L156 548 C182 486 190 420 186 360 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 180 C620 230 640 300 616 290 C626 370 630 430 664 470 C640 470 624 474 616 482 C632 520 640 560 664 590 L604 572 L606 624 L566 582 L560 610 L540 570 C600 470 600 300 560 180 Z" fill="#0d0f14"/>
|
||||
<path d="M604 158 C640 200 662 250 664 290 M614 300 C622 380 640 440 660 468" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M250 136 C270 110 296 86 324 70 M128 112 C170 126 200 150 214 176" fill="none" stroke="#3d4456" stroke-width="5" stroke-linecap="round"/></g>
|
||||
<g id="prybar">
|
||||
<path d="M0 0 L420 0 C470 0 492 -46 470 -88" fill="none" stroke="#2b1408" stroke-width="34" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0 0 L420 0 C470 0 492 -46 470 -88" fill="none" stroke="#ff8a2a" stroke-width="22" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0 5 L420 5 C464 6 486 -36 476 -76" fill="none" stroke="#c4561f" stroke-width="8"/>
|
||||
<path d="M10 -5 L380 -5" stroke="#ffd2a8" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M-10 0 L-26 -10 M-10 0 L-26 10" stroke="#2b1408" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M462 -84 L486 -96" stroke="#2b1408" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="lantern">
|
||||
<circle cx="0" cy="40" r="120" fill="url(#glow)"/>
|
||||
<path d="M-8 -84 C-8 -110 8 -110 8 -84" fill="none" stroke="#2b1408" stroke-width="8"/>
|
||||
<path d="M-30 -60 L30 -60 L22 -84 L-22 -84 Z" fill="#2c323e" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<rect x="-40" y="-62" width="80" height="16" rx="4" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M-34 -46 L34 -46 L38 72 L-38 72 Z" fill="#ffc27a" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M8 -46 L34 -46 L38 72 L12 72 Z" fill="#ff8a2a"/>
|
||||
<path d="M0 50 C-22 30 -14 6 0 -16 C14 6 22 30 0 50 Z" fill="#ffffff" stroke="#ff8a2a" stroke-width="4"/>
|
||||
<path d="M-34 -6 L34 -6 M-36 34 L36 34 M0 -46 L0 72" stroke="#2b1408" stroke-width="5"/>
|
||||
<rect x="-46" y="70" width="92" height="20" rx="5" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="bug">
|
||||
<path d="M-16 -6 L-40 -24 M-16 4 L-44 4 M-14 12 L-38 32 M16 -6 L40 -24 M16 4 L44 4 M14 12 L38 32 M-6 -24 L-18 -46 M6 -24 L18 -46" stroke="#2b1408" stroke-width="4" stroke-linecap="round" fill="none"/>
|
||||
<ellipse cx="0" cy="10" rx="20" ry="28" fill="#2c323e" stroke="#2b1408" stroke-width="5"/>
|
||||
<path d="M0 -16 L0 38" stroke="#2b1408" stroke-width="3"/>
|
||||
<circle cx="0" cy="-20" r="12" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/>
|
||||
<circle cx="-5" cy="-22" r="4" fill="#ff8a2a"/><circle cx="5" cy="-22" r="4" fill="#ff8a2a"/><circle cx="0" cy="-14" r="3" fill="#ff8a2a"/>
|
||||
<path d="M-12 0 C-8 6 -8 14 -12 20 M12 0 C8 6 8 14 12 20" stroke="#ff8a2a" stroke-width="3" fill="none"/>
|
||||
</g>
|
||||
<g id="jar">
|
||||
<circle cx="0" cy="10" r="110" fill="url(#glow)"/>
|
||||
<path d="M-56 -60 C-60 -40 -62 60 -56 84 C-40 98 40 98 56 84 C62 60 60 -40 56 -60 Z" fill="#bfe6ff" fill-opacity="0.35" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<use href="#bug" transform="translate(0,14) rotate(-18) scale(1.1)"/>
|
||||
<path d="M-58 -60 L58 -60 L52 -84 L-52 -84 Z" fill="#2c323e" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M-56 -66 L56 -66" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<path d="M-40 -40 C-46 0 -46 40 -40 70" fill="none" stroke="#ffffff" stroke-width="7" stroke-linecap="round" opacity="0.85"/>
|
||||
<path d="M-58 44 L58 44 L56 72 L-56 72 Z" fill="#f4efe7" stroke="#2b1408" stroke-width="4"/>
|
||||
<text x="0" y="64" text-anchor="middle" font-family="Consolas, 'Courier New', monospace" font-size="16" font-weight="700" fill="#2b1408">SURVIVED</text>
|
||||
</g>
|
||||
<g id="tweezers">
|
||||
<path d="M0 0 L-8 -190 M0 0 L14 -188" stroke="#2b1408" stroke-width="14" stroke-linecap="round"/>
|
||||
<path d="M0 0 L-8 -190 M0 0 L14 -188" stroke="#9aa3ae" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M-4 -60 L8 -60" stroke="#ff8a2a" stroke-width="6"/>
|
||||
<use href="#bug" transform="translate(4,-222) rotate(30) scale(1.25)"/>
|
||||
<path d="M-30 -250 L-44 -262 M36 -246 L52 -256 M40 -214 L58 -212" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="torso">
|
||||
<path d="M362 556 L364 630 C390 646 420 646 446 630 L448 552 Z" fill="#ffd6a8" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M364 572 C392 598 424 598 448 568 L448 606 C420 622 392 620 364 604 Z" fill="#f2b089"/>
|
||||
<path d="M350 600 C300 620 226 630 186 668 C156 700 146 750 142 820 L668 820 C664 750 652 704 624 676 C594 646 512 624 458 600 Z" fill="#2c323e" stroke="#2b1408" stroke-width="9" stroke-linejoin="round"/>
|
||||
<path d="M560 640 C600 660 640 690 650 820 L590 820 C596 740 590 680 560 640 Z" fill="#1a1e27"/>
|
||||
<path d="M352 604 L404 730 L456 604 Z" fill="#14161c" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M380 640 L404 700 L428 640" fill="none" stroke="#4a505c" stroke-width="10" stroke-linejoin="round"/>
|
||||
<path d="M354 590 L280 616 L320 704 L404 736 Z" fill="#3d4554" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M454 590 L528 616 L490 704 L404 736 Z" fill="#2c323e" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M284 620 L322 702 L398 730 M524 620 L488 702 L410 730" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M232 660 L330 820" stroke="#2b1408" stroke-width="32" stroke-linecap="butt"/>
|
||||
<path d="M232 660 L330 820" stroke="#4a505c" stroke-width="22"/>
|
||||
<path d="M588 664 L500 820" stroke="#2b1408" stroke-width="32"/>
|
||||
<path d="M588 664 L500 820" stroke="#4a505c" stroke-width="22"/>
|
||||
<rect x="252" y="700" width="46" height="34" rx="5" transform="rotate(-58 275 717)" fill="#9aa3ae" stroke="#2b1408" stroke-width="5"/>
|
||||
<rect x="512" y="728" width="62" height="60" rx="8" transform="rotate(28 543 758)" fill="#4a505c" stroke="#2b1408" stroke-width="5"/>
|
||||
<path d="M518 744 L572 770" stroke="#2b1408" stroke-width="4" transform="rotate(28 543 758)"/>
|
||||
<circle cx="560" cy="712" r="7" fill="#ff8a2a" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M620 690 C640 720 650 760 652 820" fill="none" stroke="#ff8a2a" stroke-width="4"/></g>
|
||||
<g id="head">
|
||||
<path d="M212 300 C204 400 238 492 320 548 C364 578 414 596 448 586 C488 572 532 522 556 450 C570 404 574 350 566 300 Z" fill="#ffd6a8" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M216 360 L256 400 L270 340 L322 384 L346 330 L398 392 L424 326 L470 386 L486 330 L540 396 L548 334 L568 380 C570 340 568 320 566 300 L212 300 Z" fill="#f2b089"/>
|
||||
<path d="M560 400 C552 470 520 528 460 570 C500 556 544 512 558 452 Z" fill="#f2b089"/>
|
||||
<path d="M561 330 C566 400 548 474 500 540" fill="none" stroke="#ff8a2a" stroke-width="5" stroke-linecap="round"/>
|
||||
<ellipse cx="300" cy="516" rx="30" ry="12" fill="#ff8a2a" opacity="0.25"/>
|
||||
<ellipse cx="512" cy="510" rx="22" ry="11" fill="#ff8a2a" opacity="0.25"/>
|
||||
|
||||
<path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeL)">
|
||||
<path d="M268 410 L390 410 L390 440 C350 424 300 426 268 448 Z" fill="#d6dde6"/>
|
||||
<ellipse cx="336" cy="456" rx="40" ry="52" fill="#59b7ff" stroke="#2b1408" stroke-width="3.5"/>
|
||||
<path d="M296 456 A40 52 0 0 1 376 456 C358 444 314 444 296 456 Z" fill="#2a5d9a"/>
|
||||
<ellipse cx="338" cy="488" rx="26" ry="13" fill="#bfe6ff"/>
|
||||
<path d="M312 470 C320 478 352 478 360 470" fill="none" stroke="#ff8a2a" stroke-width="3" opacity="0.9"/>
|
||||
<ellipse cx="338" cy="458" rx="15" ry="22" fill="#0f2238"/>
|
||||
<ellipse cx="318" cy="436" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="354" cy="482" r="6" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M258 454 C264 408 336 386 388 410 L404 398 L398 422 L388 428 C340 406 288 416 270 458 Z" fill="#2b1408"/>
|
||||
<path d="M258 452 L244 446 M262 436 L248 424" stroke="#2b1408" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M292 498 C312 506 340 506 360 496" fill="none" stroke="#2b1408" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeR)">
|
||||
<path d="M450 404 L545 404 L545 432 C514 414 476 418 450 442 Z" fill="#d6dde6"/>
|
||||
<ellipse cx="500" cy="456" rx="32" ry="50" fill="#59b7ff" stroke="#2b1408" stroke-width="3.5"/>
|
||||
<path d="M468 456 A32 50 0 0 1 532 456 C518 444 482 444 468 456 Z" fill="#2a5d9a"/>
|
||||
<ellipse cx="502" cy="488" rx="20" ry="12" fill="#bfe6ff"/>
|
||||
<path d="M482 470 C488 478 512 478 518 470" fill="none" stroke="#ff8a2a" stroke-width="3" opacity="0.9"/>
|
||||
<ellipse cx="502" cy="458" rx="12" ry="21" fill="#0f2238"/>
|
||||
<ellipse cx="486" cy="436" rx="10" ry="15" fill="#ffffff"/>
|
||||
<circle cx="514" cy="482" r="5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M448 446 C462 404 522 396 546 418 L560 410 L554 432 C522 408 474 414 456 450 Z" fill="#2b1408"/>
|
||||
<path d="M470 496 C488 504 506 502 520 494" fill="none" stroke="#2b1408" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M284 372 C304 356 336 354 360 362" fill="none" stroke="#2b1408" stroke-width="6" stroke-linecap="round"/><path d="M466 366 C486 354 510 356 528 368" fill="none" stroke="#2b1408" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M444 498 L438 510 L448 510" fill="none" stroke="#c4561f" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M406 526 C424 556 462 556 482 520 C458 530 428 532 406 526 Z" fill="#7a2a12" stroke="#2b1408" stroke-width="4.5" stroke-linejoin="round"/><path d="M430 544 C440 538 456 538 466 546 C454 552 440 552 430 544 Z" fill="#e8642a"/><path d="M414 528 L420 538 L426 530 Z" fill="#ffffff"/>
|
||||
<path d="M318 572 L330 566 M340 580 L352 574" stroke="#f2b089" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M194 372 C186 238 280 146 402 144 C522 142 614 228 606 362 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 L470 384 C456 348 442 330 424 320 L404 428 C392 380 372 340 346 322 L322 380 C306 352 288 336 270 334 L262 398 C252 386 242 376 234 368 L226 470 C204 436 194 404 194 372 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M506 158 C560 180 600 240 606 330 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 C520 290 530 220 506 158 Z" fill="#0d0f14"/>
|
||||
<path d="M382 200 C372 250 372 300 382 340 M460 190 C474 230 478 280 470 316 M236 300 C230 340 230 360 236 368" fill="none" stroke="#0d0f14" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M396 182 C424 176 452 178 476 188 L462 202 L446 194 L430 208 L414 196 Z" fill="#3d4456"/>
|
||||
<path d="M330 146 C268 200 236 300 252 420 C266 400 276 380 282 360 C292 300 318 230 368 150 Z" fill="#ff8a2a" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M300 200 C270 250 258 320 262 390" fill="none" stroke="#c4561f" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M344 166 C326 190 314 214 306 240" fill="none" stroke="#ffd2a8" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M561 300 C590 330 600 360 594 396" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/></g>
|
||||
<g id="headBack"><use href="#hairBackWild"/></g>
|
||||
<g id="bust">
|
||||
<path d="M196 640 C170 600 190 548 250 540 C320 530 480 528 560 538 C624 546 646 600 618 646 Z" fill="#2c323e" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 538 C624 546 646 600 618 646 L570 646 C600 610 598 570 560 538 Z" fill="#1a1e27"/>
|
||||
<path d="M206 612 C200 576 226 556 262 552 C330 544 480 542 556 550 C604 556 626 584 616 616" fill="none" stroke="#ff8a2a" stroke-width="6" stroke-linecap="round"/><use href="#hairBackWild"/><use href="#torso"/><use href="#head"/><use href="#jar" transform="translate(664,486) rotate(8)"/><path d="M740 860 L690 640" stroke="#2b1408" stroke-width="72" stroke-linecap="round"/><path d="M740 860 L690 640" stroke="#2c323e" stroke-width="58" stroke-linecap="round"/><path d="M762 860 L708 648" stroke="#ff8a2a" stroke-width="4"/><g transform="translate(676,600) rotate(-84) scale(1.0)">
|
||||
<rect x="-34" y="-34" width="58" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="-14" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="6" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-34" y="26" width="56" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M18 -36 C40 -40 52 -24 46 -8 C42 4 30 6 22 0 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M-30 -26 C-30 -8 -32 12 -30 38" fill="none" stroke="#ff8a2a" stroke-width="3" stroke-linecap="round"/>
|
||||
</g></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe7"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="#07111a"/>
|
||||
<polygon points="300,46 640,46 560,780 220,780" fill="#0f2131"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="none" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<g clip-path="url(#cardClip)"><use href="#bust" transform="translate(66,102) scale(0.84)"/></g>
|
||||
<polygon points="40,708 300,708 288,756 28,756" fill="#ff8a2a"/>
|
||||
<text x="58" y="743" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="8" fill="#07111a">EUREKA</text>
|
||||
<text x="812" y="66" font-family="Consolas, 'Courier New', monospace" font-size="18" font-weight="700" letter-spacing="2" fill="#2b1408">EUREKA / B / STREAK + SPECIMEN</text>
|
||||
<text x="812" y="94" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#2b1408">Hook: hood down; the wild black hair and its one</text>
|
||||
<text x="812" y="113" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#2b1408">orange streak, and a jar with the bug that SURVIVED.</text>
|
||||
<g transform="translate(-16,0)"><use href="#headBack" transform="translate(768,152) scale(0.36)"/>
|
||||
<g transform="translate(768,152) scale(0.36)">
|
||||
<path d="M196 640 C170 600 190 548 250 540 C320 530 480 528 560 538 C624 546 646 600 618 646 Z" fill="#2c323e" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 538 C624 546 646 600 618 646 L570 646 C600 610 598 570 560 538 Z" fill="#1a1e27"/>
|
||||
<path d="M206 612 C200 576 226 556 262 552 C330 544 480 542 556 550 C604 556 626 584 616 616" fill="none" stroke="#ff8a2a" stroke-width="6" stroke-linecap="round"/></g>
|
||||
|
||||
<path d="M880 520 L900 520 L898 576 L878 576 Z M914 520 L934 520 L936 576 L916 576 Z" fill="#14161c" stroke="#2b1408" stroke-width="4"/>
|
||||
<path d="M868 572 L902 572 L904 600 L860 600 C860 588 862 578 868 572 Z M912 572 L944 572 C952 578 956 590 956 600 L910 600 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M862 596 L904 596 M910 596 L956 596" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<path d="M884 360 C862 364 852 380 850 400 L834 528 C860 536 950 536 978 528 L962 400 C960 380 950 364 928 360 Z" fill="#2c323e" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M930 362 C950 366 960 384 962 400 L978 528 C966 532 956 532 946 532 L944 420 Z" fill="#1a1e27"/>
|
||||
<path d="M906 372 L908 532 M836 524 C860 532 950 532 976 524" fill="none" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<path d="M886 366 L906 392 L926 366" fill="#14161c" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M866 372 L944 440 M948 372 L870 440" stroke="#4a505c" stroke-width="7"/>
|
||||
<rect x="896" y="398" width="20" height="16" rx="3" fill="#9aa3ae" stroke="#2b1408" stroke-width="3"/>
|
||||
<rect x="930" y="430" width="22" height="22" rx="4" fill="#4a505c" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M896 434 L918 434" stroke="#4a505c" stroke-width="8"/>
|
||||
<use href="#head" transform="translate(768,152) scale(0.36)"/>
|
||||
<path d="M858 378 L846 450" stroke="#2b1408" stroke-width="24" stroke-linecap="round"/><path d="M858 378 L846 450" stroke="#2c323e" stroke-width="16" stroke-linecap="round"/><circle cx="846" cy="458" r="10" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/>
|
||||
<path d="M956 378 L984 340" stroke="#2b1408" stroke-width="24" stroke-linecap="round"/><path d="M956 378 L984 340" stroke="#2c323e" stroke-width="16" stroke-linecap="round"/><use href="#jar" transform="translate(992,300) scale(0.34)"/><circle cx="986" cy="334" r="10" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/></g>
|
||||
<text x="850" y="626" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">full body, 2.5 heads</text>
|
||||
<rect x="1012" y="140" width="168" height="200" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bust" transform="translate(1026,160) scale(0.2)"/></g>
|
||||
<text x="1016" y="356" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">bust silhouette</text>
|
||||
<rect x="1012" y="372" width="64" height="64" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bust" transform="translate(1021,380) scale(0.062)"/></g>
|
||||
<text x="1086" y="410" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">at 48 px</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2b1408"><rect x="812" y="640" width="52" height="52" fill="#ff8a2a" stroke="#2b1408" stroke-width="2"/><text x="812" y="708">#ff8a2a</text><text x="812" y="722">neon</text><rect x="874" y="640" width="52" height="52" fill="#2b1408" stroke="#2b1408" stroke-width="2"/><text x="874" y="708">#2b1408</text><text x="874" y="722">line</text><rect x="936" y="640" width="52" height="52" fill="#1d2029" stroke="#2b1408" stroke-width="2"/><text x="936" y="708">#1d2029</text><text x="936" y="722">hair</text><rect x="998" y="640" width="52" height="52" fill="#2c323e" stroke="#2b1408" stroke-width="2"/><text x="998" y="708">#2c323e</text><text x="998" y="722">coat</text><rect x="1060" y="640" width="52" height="52" fill="#ffd6a8" stroke="#2b1408" stroke-width="2"/><text x="1060" y="708">#ffd6a8</text><text x="1060" y="722">skin</text><rect x="1122" y="640" width="52" height="52" fill="#59b7ff" stroke="#2b1408" stroke-width="2"/><text x="1122" y="708">#59b7ff</text><text x="1122" y="722">eyes</text></g>
|
||||
<text x="812" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">Canon: hooded neon-noir trench, harness, black hair, one orange streak.</text>
|
||||
<text x="812" y="766" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">Shape: a spiky black burst cut by one orange stripe.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 21 KiB |
BIN
cast-designs/proposals/eureka/eureka-C.png
Normal file
|
After Width: | Height: | Size: 201 KiB |
199
cast-designs/proposals/eureka/eureka-C.svg
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Eureka, direction C</title>
|
||||
<defs>
|
||||
<filter id="sil" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<radialGradient id="glow"><stop offset="0" stop-color="#ff8a2a" stop-opacity="0.55"/><stop offset="1" stop-color="#ff8a2a" stop-opacity="0"/></radialGradient>
|
||||
<clipPath id="cardClip"><rect x="-300" y="-300" width="1400" height="1080"/></clipPath>
|
||||
<clipPath id="eyeL"><path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z"/></clipPath>
|
||||
<clipPath id="eyeR"><path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z"/></clipPath>
|
||||
<g id="hairBack">
|
||||
<path d="M190 360 C170 230 262 120 396 114 C532 110 626 210 614 350 C612 410 620 470 644 520 L602 512 L614 574 L568 542 L562 604 L526 558 L290 562 L250 612 L244 558 L196 584 L210 522 L166 522 C186 470 192 420 190 360 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M570 300 C596 380 604 460 644 520 L602 512 L614 574 L568 542 L562 604 L540 570 C580 500 590 400 570 300 Z" fill="#0d0f14"/>
|
||||
<path d="M600 300 C610 380 616 450 640 512" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/></g>
|
||||
<g id="hairBackWild">
|
||||
<path d="M186 360 C160 300 140 250 104 236 C150 222 176 214 196 200 C186 170 160 130 128 112 C182 110 222 120 250 136 C262 104 288 74 330 58 C326 82 330 100 340 116 C376 92 420 82 470 86 C450 98 440 112 436 122 C494 108 560 122 604 158 C580 160 566 168 558 178 C606 196 646 236 664 290 C640 282 624 284 614 290 C624 340 628 420 664 470 C640 470 624 474 616 482 C632 520 640 560 664 590 L604 572 L606 624 L566 582 L556 630 L524 580 L290 584 L246 636 L242 584 L190 606 L208 540 L156 548 C182 486 190 420 186 360 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 180 C620 230 640 300 616 290 C626 370 630 430 664 470 C640 470 624 474 616 482 C632 520 640 560 664 590 L604 572 L606 624 L566 582 L560 610 L540 570 C600 470 600 300 560 180 Z" fill="#0d0f14"/>
|
||||
<path d="M604 158 C640 200 662 250 664 290 M614 300 C622 380 640 440 660 468" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M250 136 C270 110 296 86 324 70 M128 112 C170 126 200 150 214 176" fill="none" stroke="#3d4456" stroke-width="5" stroke-linecap="round"/></g>
|
||||
<g id="prybar">
|
||||
<path d="M0 0 L420 0 C470 0 492 -46 470 -88" fill="none" stroke="#2b1408" stroke-width="34" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0 0 L420 0 C470 0 492 -46 470 -88" fill="none" stroke="#ff8a2a" stroke-width="22" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M0 5 L420 5 C464 6 486 -36 476 -76" fill="none" stroke="#c4561f" stroke-width="8"/>
|
||||
<path d="M10 -5 L380 -5" stroke="#ffd2a8" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M-10 0 L-26 -10 M-10 0 L-26 10" stroke="#2b1408" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M462 -84 L486 -96" stroke="#2b1408" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="lantern">
|
||||
<circle cx="0" cy="40" r="120" fill="url(#glow)"/>
|
||||
<path d="M-8 -84 C-8 -110 8 -110 8 -84" fill="none" stroke="#2b1408" stroke-width="8"/>
|
||||
<path d="M-30 -60 L30 -60 L22 -84 L-22 -84 Z" fill="#2c323e" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<rect x="-40" y="-62" width="80" height="16" rx="4" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M-34 -46 L34 -46 L38 72 L-38 72 Z" fill="#ffc27a" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M8 -46 L34 -46 L38 72 L12 72 Z" fill="#ff8a2a"/>
|
||||
<path d="M0 50 C-22 30 -14 6 0 -16 C14 6 22 30 0 50 Z" fill="#ffffff" stroke="#ff8a2a" stroke-width="4"/>
|
||||
<path d="M-34 -6 L34 -6 M-36 34 L36 34 M0 -46 L0 72" stroke="#2b1408" stroke-width="5"/>
|
||||
<rect x="-46" y="70" width="92" height="20" rx="5" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="bug">
|
||||
<path d="M-16 -6 L-40 -24 M-16 4 L-44 4 M-14 12 L-38 32 M16 -6 L40 -24 M16 4 L44 4 M14 12 L38 32 M-6 -24 L-18 -46 M6 -24 L18 -46" stroke="#2b1408" stroke-width="4" stroke-linecap="round" fill="none"/>
|
||||
<ellipse cx="0" cy="10" rx="20" ry="28" fill="#2c323e" stroke="#2b1408" stroke-width="5"/>
|
||||
<path d="M0 -16 L0 38" stroke="#2b1408" stroke-width="3"/>
|
||||
<circle cx="0" cy="-20" r="12" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/>
|
||||
<circle cx="-5" cy="-22" r="4" fill="#ff8a2a"/><circle cx="5" cy="-22" r="4" fill="#ff8a2a"/><circle cx="0" cy="-14" r="3" fill="#ff8a2a"/>
|
||||
<path d="M-12 0 C-8 6 -8 14 -12 20 M12 0 C8 6 8 14 12 20" stroke="#ff8a2a" stroke-width="3" fill="none"/>
|
||||
</g>
|
||||
<g id="jar">
|
||||
<circle cx="0" cy="10" r="110" fill="url(#glow)"/>
|
||||
<path d="M-56 -60 C-60 -40 -62 60 -56 84 C-40 98 40 98 56 84 C62 60 60 -40 56 -60 Z" fill="#bfe6ff" fill-opacity="0.35" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<use href="#bug" transform="translate(0,14) rotate(-18) scale(1.1)"/>
|
||||
<path d="M-58 -60 L58 -60 L52 -84 L-52 -84 Z" fill="#2c323e" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M-56 -66 L56 -66" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<path d="M-40 -40 C-46 0 -46 40 -40 70" fill="none" stroke="#ffffff" stroke-width="7" stroke-linecap="round" opacity="0.85"/>
|
||||
<path d="M-58 44 L58 44 L56 72 L-56 72 Z" fill="#f4efe7" stroke="#2b1408" stroke-width="4"/>
|
||||
<text x="0" y="64" text-anchor="middle" font-family="Consolas, 'Courier New', monospace" font-size="16" font-weight="700" fill="#2b1408">SURVIVED</text>
|
||||
</g>
|
||||
<g id="tweezers">
|
||||
<path d="M0 0 L-8 -190 M0 0 L14 -188" stroke="#2b1408" stroke-width="14" stroke-linecap="round"/>
|
||||
<path d="M0 0 L-8 -190 M0 0 L14 -188" stroke="#9aa3ae" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M-4 -60 L8 -60" stroke="#ff8a2a" stroke-width="6"/>
|
||||
<use href="#bug" transform="translate(4,-222) rotate(30) scale(1.25)"/>
|
||||
<path d="M-30 -250 L-44 -262 M36 -246 L52 -256 M40 -214 L58 -212" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="torso">
|
||||
<path d="M362 556 L364 630 C390 646 420 646 446 630 L448 552 Z" fill="#ffd6a8" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M364 572 C392 598 424 598 448 568 L448 606 C420 622 392 620 364 604 Z" fill="#f2b089"/>
|
||||
<path d="M350 600 C300 620 226 630 186 668 C156 700 146 750 142 820 L668 820 C664 750 652 704 624 676 C594 646 512 624 458 600 Z" fill="#2c323e" stroke="#2b1408" stroke-width="9" stroke-linejoin="round"/>
|
||||
<path d="M560 640 C600 660 640 690 650 820 L590 820 C596 740 590 680 560 640 Z" fill="#1a1e27"/>
|
||||
<path d="M352 604 L404 730 L456 604 Z" fill="#14161c" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M380 640 L404 700 L428 640" fill="none" stroke="#4a505c" stroke-width="10" stroke-linejoin="round"/>
|
||||
<path d="M354 590 L280 616 L320 704 L404 736 Z" fill="#3d4554" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M454 590 L528 616 L490 704 L404 736 Z" fill="#2c323e" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M284 620 L322 702 L398 730 M524 620 L488 702 L410 730" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M232 660 L330 820" stroke="#2b1408" stroke-width="32" stroke-linecap="butt"/>
|
||||
<path d="M232 660 L330 820" stroke="#4a505c" stroke-width="22"/>
|
||||
<path d="M588 664 L500 820" stroke="#2b1408" stroke-width="32"/>
|
||||
<path d="M588 664 L500 820" stroke="#4a505c" stroke-width="22"/>
|
||||
<rect x="252" y="700" width="46" height="34" rx="5" transform="rotate(-58 275 717)" fill="#9aa3ae" stroke="#2b1408" stroke-width="5"/>
|
||||
<rect x="512" y="728" width="62" height="60" rx="8" transform="rotate(28 543 758)" fill="#4a505c" stroke="#2b1408" stroke-width="5"/>
|
||||
<path d="M518 744 L572 770" stroke="#2b1408" stroke-width="4" transform="rotate(28 543 758)"/>
|
||||
<circle cx="560" cy="712" r="7" fill="#ff8a2a" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M620 690 C640 720 650 760 652 820" fill="none" stroke="#ff8a2a" stroke-width="4"/></g>
|
||||
<g id="head">
|
||||
<path d="M212 300 C204 400 238 492 320 548 C364 578 414 596 448 586 C488 572 532 522 556 450 C570 404 574 350 566 300 Z" fill="#ffd6a8" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M216 360 L256 400 L270 340 L322 384 L346 330 L398 392 L424 326 L470 386 L486 330 L540 396 L548 334 L568 380 C570 340 568 320 566 300 L212 300 Z" fill="#f2b089"/>
|
||||
<path d="M560 400 C552 470 520 528 460 570 C500 556 544 512 558 452 Z" fill="#f2b089"/>
|
||||
<path d="M561 330 C566 400 548 474 500 540" fill="none" stroke="#ff8a2a" stroke-width="5" stroke-linecap="round"/>
|
||||
<ellipse cx="300" cy="516" rx="30" ry="12" fill="#ff8a2a" opacity="0.25"/>
|
||||
<ellipse cx="512" cy="510" rx="22" ry="11" fill="#ff8a2a" opacity="0.25"/>
|
||||
|
||||
<path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeL)">
|
||||
<path d="M268 410 L390 410 L390 440 C350 424 300 426 268 448 Z" fill="#d6dde6"/>
|
||||
<ellipse cx="336" cy="456" rx="40" ry="52" fill="#59b7ff" stroke="#2b1408" stroke-width="3.5"/>
|
||||
<path d="M296 456 A40 52 0 0 1 376 456 C358 444 314 444 296 456 Z" fill="#2a5d9a"/>
|
||||
<ellipse cx="338" cy="488" rx="26" ry="13" fill="#bfe6ff"/>
|
||||
<path d="M312 470 C320 478 352 478 360 470" fill="none" stroke="#ff8a2a" stroke-width="3" opacity="0.9"/>
|
||||
<ellipse cx="338" cy="458" rx="15" ry="22" fill="#0f2238"/>
|
||||
<ellipse cx="318" cy="436" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="354" cy="482" r="6" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M258 454 C264 408 336 386 388 410 L404 398 L398 422 L388 428 C340 406 288 416 270 458 Z" fill="#2b1408"/>
|
||||
<path d="M258 452 L244 446 M262 436 L248 424" stroke="#2b1408" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M292 498 C312 506 340 506 360 496" fill="none" stroke="#2b1408" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeR)">
|
||||
<path d="M450 404 L545 404 L545 432 C514 414 476 418 450 442 Z" fill="#d6dde6"/>
|
||||
<ellipse cx="500" cy="456" rx="32" ry="50" fill="#59b7ff" stroke="#2b1408" stroke-width="3.5"/>
|
||||
<path d="M468 456 A32 50 0 0 1 532 456 C518 444 482 444 468 456 Z" fill="#2a5d9a"/>
|
||||
<ellipse cx="502" cy="488" rx="20" ry="12" fill="#bfe6ff"/>
|
||||
<path d="M482 470 C488 478 512 478 518 470" fill="none" stroke="#ff8a2a" stroke-width="3" opacity="0.9"/>
|
||||
<ellipse cx="502" cy="458" rx="12" ry="21" fill="#0f2238"/>
|
||||
<ellipse cx="486" cy="436" rx="10" ry="15" fill="#ffffff"/>
|
||||
<circle cx="514" cy="482" r="5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M448 446 C462 404 522 396 546 418 L560 410 L554 432 C522 408 474 414 456 450 Z" fill="#2b1408"/>
|
||||
<path d="M470 496 C488 504 506 502 520 494" fill="none" stroke="#2b1408" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M284 388 C306 380 336 384 364 394" fill="none" stroke="#2b1408" stroke-width="6" stroke-linecap="round"/><path d="M464 394 C486 380 508 374 528 376" fill="none" stroke="#2b1408" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M444 498 L438 510 L448 510" fill="none" stroke="#c4561f" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M420 534 C436 538 452 536 468 528" fill="none" stroke="#2b1408" stroke-width="4.5" stroke-linecap="round"/><path d="M448 536 C452 546 462 546 464 534" fill="#e8642a" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M318 572 L330 566 M340 580 L352 574" stroke="#f2b089" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M194 372 C186 238 280 146 402 144 C522 142 614 228 606 362 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 L470 384 C456 348 442 330 424 320 L404 428 C392 380 372 340 346 322 L322 380 C306 352 288 336 270 334 L262 398 C252 386 242 376 234 368 L226 470 C204 436 194 404 194 372 Z" fill="#1d2029" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M506 158 C560 180 600 240 606 330 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 C520 290 530 220 506 158 Z" fill="#0d0f14"/>
|
||||
<path d="M382 200 C372 250 372 300 382 340 M460 190 C474 230 478 280 470 316 M236 300 C230 340 230 360 236 368" fill="none" stroke="#0d0f14" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M396 182 C424 176 452 178 476 188 L462 202 L446 194 L430 208 L414 196 Z" fill="#3d4456"/>
|
||||
<path d="M322 150 C278 204 254 300 262 398 C282 348 304 290 352 154 Z" fill="#ff8a2a" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M300 196 C282 240 270 300 270 360" fill="none" stroke="#c4561f" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M330 170 C318 190 310 210 304 232" fill="none" stroke="#ffd2a8" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M561 300 C590 330 600 360 594 396" fill="none" stroke="#ff8a2a" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M200 416 L36 326 L108 430 L26 472 L196 476 Z" fill="#2c323e" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M200 416 L36 326 L108 430 Z" fill="#3d4554"/>
|
||||
<path d="M592 410 L744 318 L692 424 L764 458 L592 476 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M222 404 C300 372 520 368 600 390 L598 520 C520 504 300 510 232 540 Z" fill="#ff8a2a" fill-opacity="0.16" stroke="#2b1408" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M222 404 C300 372 520 368 600 390 L600 406 C520 386 300 390 224 422 Z" fill="#2c323e" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M238 528 C300 504 520 498 596 512" fill="none" stroke="#ff8a2a" stroke-width="4"/>
|
||||
<g stroke="#ff8a2a" stroke-width="3" fill="none">
|
||||
<circle cx="502" cy="454" r="40"/>
|
||||
<path d="M502 404 V422 M502 486 V504 M452 454 H470 M534 454 H552"/>
|
||||
<path d="M262 432 H306 M262 444 H290 M262 456 H300"/>
|
||||
<path d="M548 420 L572 420 L580 430"/>
|
||||
</g>
|
||||
<text x="262" y="522" font-family="Consolas, 'Courier New', monospace" font-size="15" font-weight="700" fill="#ff8a2a">MUT 03</text>
|
||||
<circle cx="212" cy="460" r="36" fill="#2c323e" stroke="#2b1408" stroke-width="7"/>
|
||||
<circle cx="212" cy="460" r="18" fill="#ff8a2a" stroke="#2b1408" stroke-width="5"/>
|
||||
<circle cx="206" cy="454" r="5" fill="#ffffff"/>
|
||||
<circle cx="598" cy="452" r="22" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<circle cx="598" cy="452" r="8" fill="#ff8a2a"/></g>
|
||||
<g id="headBack"><use href="#hairBack"/></g>
|
||||
<g id="bust">
|
||||
<path d="M196 640 C170 600 190 548 250 540 C320 530 480 528 560 538 C624 546 646 600 618 646 Z" fill="#2c323e" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 538 C624 546 646 600 618 646 L570 646 C600 610 598 570 560 538 Z" fill="#1a1e27"/>
|
||||
<path d="M206 612 C200 576 226 556 262 552 C330 544 480 542 556 550 C604 556 626 584 616 616" fill="none" stroke="#ff8a2a" stroke-width="6" stroke-linecap="round"/><use href="#hairBack"/><use href="#torso"/><use href="#head"/><use href="#tweezers" transform="translate(684,720) rotate(-8)"/><path d="M740 870 L694 760" stroke="#2b1408" stroke-width="72" stroke-linecap="round"/><path d="M740 870 L694 760" stroke="#2c323e" stroke-width="58" stroke-linecap="round"/><path d="M762 870 L712 768" stroke="#ff8a2a" stroke-width="4"/><g transform="translate(684,728) rotate(-80) scale(0.95)">
|
||||
<rect x="-34" y="-34" width="58" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="-14" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-38" y="6" width="62" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<rect x="-34" y="26" width="56" height="22" rx="11" fill="#1a1e27" stroke="#2b1408" stroke-width="6"/>
|
||||
<path d="M18 -36 C40 -40 52 -24 46 -8 C42 4 30 6 22 0 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M-30 -26 C-30 -8 -32 12 -30 38" fill="none" stroke="#ff8a2a" stroke-width="3" stroke-linecap="round"/>
|
||||
</g></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe7"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="#07111a"/>
|
||||
<polygon points="300,46 640,46 560,780 220,780" fill="#0f2131"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="none" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<g clip-path="url(#cardClip)"><use href="#bust" transform="translate(66,102) scale(0.84)"/></g>
|
||||
<polygon points="40,708 300,708 288,756 28,756" fill="#ff8a2a"/>
|
||||
<text x="58" y="743" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="8" fill="#07111a">EUREKA</text>
|
||||
<text x="812" y="66" font-family="Consolas, 'Courier New', monospace" font-size="18" font-weight="700" letter-spacing="2" fill="#2b1408">EUREKA / C / HUD VISOR</text>
|
||||
<text x="812" y="94" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#2b1408">Hook: a finned visor with an orange HUD across her</text>
|
||||
<text x="812" y="113" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#2b1408">eyes; tweezers raised with a wriggling mutant.</text>
|
||||
<g transform="translate(-16,0)"><use href="#headBack" transform="translate(768,152) scale(0.36)"/>
|
||||
<g transform="translate(768,152) scale(0.36)">
|
||||
<path d="M196 640 C170 600 190 548 250 540 C320 530 480 528 560 538 C624 546 646 600 618 646 Z" fill="#2c323e" stroke="#2b1408" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 538 C624 546 646 600 618 646 L570 646 C600 610 598 570 560 538 Z" fill="#1a1e27"/>
|
||||
<path d="M206 612 C200 576 226 556 262 552 C330 544 480 542 556 550 C604 556 626 584 616 616" fill="none" stroke="#ff8a2a" stroke-width="6" stroke-linecap="round"/></g>
|
||||
|
||||
<path d="M880 520 L900 520 L898 576 L878 576 Z M914 520 L934 520 L936 576 L916 576 Z" fill="#14161c" stroke="#2b1408" stroke-width="4"/>
|
||||
<path d="M868 572 L902 572 L904 600 L860 600 C860 588 862 578 868 572 Z M912 572 L944 572 C952 578 956 590 956 600 L910 600 Z" fill="#1a1e27" stroke="#2b1408" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M862 596 L904 596 M910 596 L956 596" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<path d="M884 360 C862 364 852 380 850 400 L834 528 C860 536 950 536 978 528 L962 400 C960 380 950 364 928 360 Z" fill="#2c323e" stroke="#2b1408" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M930 362 C950 366 960 384 962 400 L978 528 C966 532 956 532 946 532 L944 420 Z" fill="#1a1e27"/>
|
||||
<path d="M906 372 L908 532 M836 524 C860 532 950 532 976 524" fill="none" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<path d="M886 366 L906 392 L926 366" fill="#14161c" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M866 372 L944 440 M948 372 L870 440" stroke="#4a505c" stroke-width="7"/>
|
||||
<rect x="896" y="398" width="20" height="16" rx="3" fill="#9aa3ae" stroke="#2b1408" stroke-width="3"/>
|
||||
<rect x="930" y="430" width="22" height="22" rx="4" fill="#4a505c" stroke="#2b1408" stroke-width="3"/>
|
||||
<path d="M896 434 L918 434" stroke="#4a505c" stroke-width="8"/>
|
||||
<use href="#head" transform="translate(768,152) scale(0.36)"/>
|
||||
<path d="M858 378 L846 450" stroke="#2b1408" stroke-width="24" stroke-linecap="round"/><path d="M858 378 L846 450" stroke="#2c323e" stroke-width="16" stroke-linecap="round"/><circle cx="846" cy="458" r="10" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/>
|
||||
<path d="M956 378 L980 410" stroke="#2b1408" stroke-width="24" stroke-linecap="round"/><path d="M956 378 L980 410" stroke="#2c323e" stroke-width="16" stroke-linecap="round"/><use href="#tweezers" transform="translate(984,414) rotate(10) scale(0.36)"/><circle cx="982" cy="414" r="10" fill="#1a1e27" stroke="#2b1408" stroke-width="4"/></g>
|
||||
<text x="850" y="626" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">full body, 2.5 heads</text>
|
||||
<rect x="1012" y="140" width="168" height="200" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bust" transform="translate(1026,160) scale(0.2)"/></g>
|
||||
<text x="1016" y="356" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">bust silhouette</text>
|
||||
<rect x="1012" y="372" width="64" height="64" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bust" transform="translate(1021,380) scale(0.062)"/></g>
|
||||
<text x="1086" y="410" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">at 48 px</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2b1408"><rect x="812" y="640" width="52" height="52" fill="#ff8a2a" stroke="#2b1408" stroke-width="2"/><text x="812" y="708">#ff8a2a</text><text x="812" y="722">neon</text><rect x="874" y="640" width="52" height="52" fill="#2b1408" stroke="#2b1408" stroke-width="2"/><text x="874" y="708">#2b1408</text><text x="874" y="722">line</text><rect x="936" y="640" width="52" height="52" fill="#1d2029" stroke="#2b1408" stroke-width="2"/><text x="936" y="708">#1d2029</text><text x="936" y="722">hair</text><rect x="998" y="640" width="52" height="52" fill="#2c323e" stroke="#2b1408" stroke-width="2"/><text x="998" y="708">#2c323e</text><text x="998" y="722">coat</text><rect x="1060" y="640" width="52" height="52" fill="#ffd6a8" stroke="#2b1408" stroke-width="2"/><text x="1060" y="708">#ffd6a8</text><text x="1060" y="722">skin</text><rect x="1122" y="640" width="52" height="52" fill="#59b7ff" stroke="#2b1408" stroke-width="2"/><text x="1122" y="708">#59b7ff</text><text x="1122" y="722">eyes</text></g>
|
||||
<text x="812" y="748" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">Canon: hooded neon-noir trench, harness, black hair, one orange streak.</text>
|
||||
<text x="812" y="766" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#2b1408">Shape: a circle crossed by one horizontal bar with fins.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
74
cast-designs/proposals/eureka/eureka-notes.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# Eureka: designer's notes, round 1
|
||||
|
||||
## Change of direction
|
||||
|
||||
The first pass drew the A/B/C concepts in `../../eureka.md` (Spark, Waking
|
||||
Colossus, Inspectable). Only The Spark was drawn before the operator redirected:
|
||||
"I kinda liked the Eureka from the readme art, kind of a neon noir hooded
|
||||
trenchcoat and tactical gear for extreme bug hunting. I'd give her black hair
|
||||
with an orange highlight." That sheet is kept as `eureka-old-A.svg` / `.png`.
|
||||
B and C of the old set were never drawn.
|
||||
|
||||
The new A/B/C are three variations on one canon, not three concepts. Every
|
||||
sheet keeps: hooded neon-noir trenchcoat with orange neon piping, tactical
|
||||
harness (crossed straps, buckle, pouch, a status LED), dark gloves, black hair
|
||||
with exactly one orange streak lock on the near side, orange neon as the key
|
||||
colour, brand-blue eyes (taken from the readme art; the only blue on her).
|
||||
What changes is the hook, the expression and the prop.
|
||||
|
||||
## A: Hood + Lantern
|
||||
|
||||
- Hood up, with a tall peak leaning back; the hood's inner rim is piped in
|
||||
neon and frames the face like a portrait window. Lantern raised beside her
|
||||
far cheek (toward the text box), so the lantern is the warm rim light on her
|
||||
face. Orange pry bar over the near shoulder, its crook breaking the
|
||||
silhouette on the left. Half-dropped lids and a crooked half smile: dry.
|
||||
- Changed after looking: the pry bar first sat behind the hood and read as a
|
||||
cat's tail, so it moved in front of the shoulder; the lantern was hidden by
|
||||
the sleeve, so the arm now comes in from the right and the lantern is drawn
|
||||
over it; the hood's lower edge made a bar across her neck, so the hood now
|
||||
drapes behind the coat and only its upper rim sits over the face.
|
||||
- Round 2: the raising arm is long and stiff, so foreshorten it or hang the
|
||||
lantern from a shorter grip. Try the peak at two heights to see how much
|
||||
hood the 48 px read needs.
|
||||
|
||||
## B: Streak + Specimen
|
||||
|
||||
- Hood down and bunched at the neck, so the hair is the hook: a wild spiky
|
||||
black mass with a wider orange streak running from crown to cheek. She holds
|
||||
up a specimen jar with a mutant beetle (orange eyes, extra legs) and a label
|
||||
reading SURVIVED, a callback to the readme's specimen case. Proud fanged grin.
|
||||
- Changed after looking: almost nothing; this one worked on the first render.
|
||||
- Round 2: the jar label is the only text in a portrait; check it at dialogue
|
||||
size, and test a version where the bug is out of the jar on her glove.
|
||||
|
||||
## C: HUD Visor
|
||||
|
||||
- Hood down, with a translucent orange visor across the eyes: a reticle on the
|
||||
far eye, scan bars, a tiny "MUT 03" readout, sensor pods at the temples and
|
||||
swept fins at both sides. Long tweezers raised with a wriggling mutant.
|
||||
Focused, tongue-tip concentration face.
|
||||
- Changed after looking: the visor's lower rim cut through both irises, so the
|
||||
visor drops below the eyes; the tint went from 0.28 to 0.16 opacity because
|
||||
the eyes went muddy; the fins were small and the 48 px silhouette read as a
|
||||
plain round head, so they roughly doubled in length.
|
||||
- Round 2: the visor hides the eye shape, which is the face's main expressive
|
||||
tool; try pushing the visor up onto the hair in neutral lines and down only
|
||||
in the "Eureka!" line.
|
||||
|
||||
## All three
|
||||
|
||||
- Checks run: the bust at 128 px (streak, hood, jar and visor all read) and the
|
||||
filled bust at 48 px. Silhouettes: A is a peaked wedge with a hooked bar, B a
|
||||
spiky burst with a jar, C a circle with horizontal fins. All three differ
|
||||
from each other; C is the weakest.
|
||||
- The three sheets share one face and one full-body build on purpose: this is
|
||||
one character in three outfits. In round 2 the strongest direction should get
|
||||
its own five portrait-set expressions (`../../eureka.md`, Portrait set).
|
||||
- Palette per sheet: neon `#ff8a2a`, line `#2b1408` (a darker ember than the
|
||||
old `#4a1e05`, which disappeared against black hair), hair `#1d2029`, coat
|
||||
`#2c323e`, skin `#ffd6a8`, eyes `#59b7ff`. Each has one shadow tone; steel
|
||||
`#9aa3ae` appears only on buckles and tweezers.
|
||||
- The bust card adds a lighter navy band (`#0f2131`) behind the head, because
|
||||
black hair on the brand ground `#07111a` loses its outline. The cast frame
|
||||
rule should carry this lighter band if Eureka keeps black hair.
|
||||
BIN
cast-designs/proposals/eureka/eureka-old-A.png
Normal file
|
After Width: | Height: | Size: 191 KiB |
231
cast-designs/proposals/eureka/eureka-old-A.svg
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Eureka, direction A: The Spark</title>
|
||||
<defs>
|
||||
<filter id="sil" color-interpolation-filters="sRGB">
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<clipPath id="cardClip"><rect x="-200" y="-200" width="1200" height="980"/></clipPath>
|
||||
|
||||
<!-- eye openings -->
|
||||
<clipPath id="eyeL"><path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z"/></clipPath>
|
||||
<clipPath id="eyeR"><path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z"/></clipPath>
|
||||
|
||||
<!-- the wrench, local axis along +x, jaw at the far end -->
|
||||
<g id="wrench">
|
||||
<path d="M0 -17 L388 -21 L388 21 L0 17 C-22 17 -22 -17 0 -17 Z" fill="#cfd6dd" stroke="#4a1e05" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M8 6 L380 8 L380 19 L4 15 Z" fill="#8f9aa5"/>
|
||||
<rect x="40" y="-8" width="230" height="16" rx="8" fill="#8f9aa5" stroke="#4a1e05" stroke-width="3"/>
|
||||
<path d="M372 -30 C394 -64 460 -72 492 -46 L478 -14 L440 -14 L440 14 L478 14 L492 46 C460 72 394 64 372 30 Z" fill="#cfd6dd" stroke="#4a1e05" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M380 22 C400 52 452 60 484 40 L478 30 C450 46 404 40 386 14 Z" fill="#8f9aa5"/>
|
||||
<rect x="396" y="-24" width="22" height="48" rx="4" fill="#8f9aa5" stroke="#4a1e05" stroke-width="3"/>
|
||||
<path d="M402 -18 V18 M410 -18 V18" stroke="#4a1e05" stroke-width="2"/>
|
||||
<path d="M384 -34 C404 -56 448 -60 470 -46" fill="none" stroke="#ffffff" stroke-width="4" stroke-linecap="round" opacity="0.8"/>
|
||||
</g>
|
||||
|
||||
<!-- HEAD: back hair -->
|
||||
<g id="hairBack">
|
||||
<path d="M198 362 C178 232 268 128 396 122 C528 118 618 214 606 348 C602 420 592 480 578 538 L550 506 L542 566 L508 524 L300 526 L266 566 L254 516 L220 548 C204 484 198 424 198 362 Z" fill="#e8642a" stroke="#4a1e05" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 300 C590 360 590 450 572 522 L550 506 L542 566 L520 540 C560 470 570 380 560 300 Z" fill="#b8471c"/>
|
||||
</g>
|
||||
|
||||
<!-- HEAD: the spark ahoge -->
|
||||
<g id="spark" transform="translate(410,150) rotate(12) scale(1.2) translate(-410,-150)">
|
||||
<path d="M378 158 C392 120 420 76 440 38 L402 50 C428 4 452 -36 476 -64 C470 -30 462 -2 456 22 L498 12 C478 64 452 112 428 156 Z" fill="#ff8a2a" stroke="#4a1e05" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M412 150 C428 112 446 76 462 46 L448 28 L478 20 C462 60 444 104 428 154 Z" fill="#e8642a"/>
|
||||
<path d="M404 128 L424 80 L410 84 L446 18 L440 50 L456 46 L430 104" fill="none" stroke="#59b7ff" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"/>
|
||||
<path d="M404 128 L424 80 L410 84 L446 18 L440 50 L456 46 L430 104" fill="none" stroke="#ffffff" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round"/>
|
||||
<g stroke="#59b7ff" stroke-width="5" stroke-linecap="round">
|
||||
<path d="M500 -40 L524 -52 M506 -20 L532 -18 M496 -62 L508 -84"/>
|
||||
<path d="M368 40 L344 30 M372 66 L348 72 M384 14 L370 -6"/>
|
||||
</g>
|
||||
<g fill="#59b7ff" stroke="#4a1e05" stroke-width="2.5">
|
||||
<path d="M528 34 L534 46 L546 52 L534 58 L528 70 L522 58 L510 52 L522 46 Z"/>
|
||||
<path d="M336 -14 L340 -4 L350 0 L340 4 L336 14 L332 4 L322 0 L332 -4 Z"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- HEAD: face, features, front hair -->
|
||||
<g id="headFront">
|
||||
<!-- face -->
|
||||
<path d="M212 300 C204 400 238 492 320 548 C364 578 414 596 448 586 C488 572 532 522 556 450 C570 404 574 350 566 300 Z" fill="#ffd6a8" stroke="#4a1e05" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- face shadow: under bangs and the far cheek -->
|
||||
<path d="M216 360 L256 400 L270 340 L322 384 L346 330 L398 392 L424 326 L470 386 L486 330 L540 396 L548 334 L568 380 C570 340 568 320 566 300 L212 300 Z" fill="#f2b089"/>
|
||||
<path d="M560 400 C552 470 520 528 460 566 C500 552 544 510 558 452 Z" fill="#f2b089"/>
|
||||
<!-- rim light, away from the light -->
|
||||
<path d="M561 330 C566 400 548 470 506 530" fill="none" stroke="#ff8a2a" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- blush -->
|
||||
<ellipse cx="300" cy="514" rx="30" ry="12" fill="#ff8a2a" opacity="0.28"/>
|
||||
<ellipse cx="508" cy="508" rx="22" ry="11" fill="#ff8a2a" opacity="0.28"/>
|
||||
<path d="M286 512 l8 -8 M300 514 l8 -8 M314 514 l8 -8" stroke="#e8642a" stroke-width="2.5" stroke-linecap="round"/>
|
||||
|
||||
<!-- near eye -->
|
||||
<path d="M268 440 C278 410 338 398 378 416 C384 448 378 480 362 496 C332 506 296 504 280 490 C270 474 266 456 268 440 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeL)">
|
||||
<path d="M268 410 L390 410 L390 438 C350 424 300 426 268 446 Z" fill="#dfe7f0"/>
|
||||
<ellipse cx="334" cy="456" rx="40" ry="52" fill="#ff8a2a" stroke="#4a1e05" stroke-width="3.5"/>
|
||||
<path d="M294 456 A40 52 0 0 1 374 456 C356 444 312 444 294 456 Z" fill="#b8471c"/>
|
||||
<ellipse cx="336" cy="486" rx="26" ry="14" fill="#ffc27a"/>
|
||||
<ellipse cx="336" cy="458" rx="15" ry="22" fill="#4a1e05"/>
|
||||
<ellipse cx="316" cy="436" rx="13" ry="17" fill="#ffffff"/>
|
||||
<circle cx="352" cy="482" r="6" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M260 452 C266 408 336 386 386 410 L402 398 L396 420 L386 426 C340 406 288 416 270 456 Z" fill="#4a1e05"/>
|
||||
<path d="M258 452 L248 444 M262 438 L250 426" stroke="#4a1e05" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M292 498 C312 506 340 506 360 496" fill="none" stroke="#4a1e05" stroke-width="3.5" stroke-linecap="round"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<path d="M454 432 C472 410 514 404 534 420 C540 450 534 480 522 494 C500 504 472 502 460 490 C452 470 450 450 454 432 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeR)">
|
||||
<path d="M450 404 L545 404 L545 430 C514 414 476 418 450 440 Z" fill="#dfe7f0"/>
|
||||
<ellipse cx="498" cy="456" rx="32" ry="50" fill="#ff8a2a" stroke="#4a1e05" stroke-width="3.5"/>
|
||||
<path d="M466 456 A32 50 0 0 1 530 456 C516 444 480 444 466 456 Z" fill="#b8471c"/>
|
||||
<ellipse cx="500" cy="486" rx="20" ry="13" fill="#ffc27a"/>
|
||||
<ellipse cx="500" cy="458" rx="12" ry="21" fill="#4a1e05"/>
|
||||
<ellipse cx="484" cy="436" rx="10" ry="15" fill="#ffffff"/>
|
||||
<circle cx="512" cy="482" r="5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M448 444 C462 404 520 396 544 418 L558 410 L552 430 C522 408 474 414 456 448 Z" fill="#4a1e05"/>
|
||||
<path d="M470 496 C488 504 506 502 520 494" fill="none" stroke="#4a1e05" stroke-width="3" stroke-linecap="round"/>
|
||||
|
||||
<!-- brows: the near one raised, wry -->
|
||||
<path d="M282 384 C300 362 336 356 362 366" fill="none" stroke="#4a1e05" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M466 380 C484 372 508 372 526 382" fill="none" stroke="#4a1e05" stroke-width="6" stroke-linecap="round"/>
|
||||
|
||||
<!-- nose and crooked half-smile -->
|
||||
<path d="M444 498 L438 510 L448 510" fill="none" stroke="#c4561f" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M414 536 C432 544 452 542 472 526" fill="none" stroke="#4a1e05" stroke-width="4.5" stroke-linecap="round"/>
|
||||
<path d="M468 520 L478 530" stroke="#4a1e05" stroke-width="4" stroke-linecap="round"/>
|
||||
|
||||
<!-- front hair: messy bangs -->
|
||||
<path d="M194 372 C186 238 280 146 402 144 C522 142 614 228 606 362 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 L470 384 C456 348 442 330 424 320 L398 392 C384 352 364 330 346 322 L322 380 C306 352 288 336 270 334 L262 398 C252 386 242 376 234 368 L226 470 C204 436 194 404 194 372 Z" fill="#e8642a" stroke="#4a1e05" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- hair shadow on the far side -->
|
||||
<path d="M506 158 C560 180 600 240 606 330 L592 404 C580 368 566 346 552 330 L542 392 C524 356 504 334 486 322 C520 290 530 220 506 158 Z" fill="#b8471c"/>
|
||||
<!-- inner clump lines -->
|
||||
<path d="M300 220 C290 270 286 310 292 340 M372 190 C360 240 356 290 364 326 M460 190 C474 230 478 280 470 316" fill="none" stroke="#4a1e05" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<!-- one hair highlight, in the key colour -->
|
||||
<path d="M262 236 C290 198 340 178 380 176 L372 196 L356 192 L344 208 C320 210 290 222 262 236 Z" fill="#ff8a2a"/>
|
||||
<path d="M400 174 C420 172 440 174 456 180 L446 194 L432 188 L418 200 L404 190 Z" fill="#ff8a2a"/>
|
||||
<!-- near sideburn lock edge line -->
|
||||
<path d="M236 376 C230 410 230 440 226 470" fill="none" stroke="#4a1e05" stroke-width="3.5"/>
|
||||
<!-- tiny hair clip: a brand-blue spark pin -->
|
||||
<path d="M248 306 L262 292 L258 306 L274 302 L258 322 L262 308 Z" fill="#59b7ff" stroke="#4a1e05" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<!-- BUST torso -->
|
||||
<g id="torsoA">
|
||||
<!-- neck -->
|
||||
<path d="M362 556 L364 630 C390 646 420 646 446 630 L448 552 Z" fill="#ffd6a8" stroke="#4a1e05" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M364 572 C392 596 424 596 448 566 L448 600 C420 618 392 616 364 600 Z" fill="#f2b089"/>
|
||||
<!-- shoulders -->
|
||||
<path d="M364 616 C320 636 246 644 210 680 C190 704 178 740 170 800 L640 800 C634 740 622 706 602 684 C574 654 496 636 448 614 Z" fill="#ffd6a8" stroke="#4a1e05" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M560 650 C590 666 612 700 624 800 L560 800 C566 730 572 690 560 650 Z" fill="#f2b089"/>
|
||||
<!-- tank top -->
|
||||
<path d="M186 800 C198 736 226 700 248 670 L292 658 C312 700 354 718 406 718 C458 718 500 698 520 658 L562 668 C580 696 604 740 614 800 Z" fill="#ff8a2a" stroke="#4a1e05" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M520 658 L562 668 C580 696 604 740 614 800 L548 800 C548 730 536 690 520 658 Z" fill="#e8642a"/>
|
||||
<path d="M300 690 C340 724 380 732 430 730" fill="none" stroke="#4a1e05" stroke-width="3"/>
|
||||
<!-- collarbones -->
|
||||
<path d="M318 650 C340 660 360 662 376 658 M436 660 C452 664 474 662 494 652" fill="none" stroke="#c4561f" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- tank front mark: a small navy bolt -->
|
||||
<path d="M404 744 L420 726 L414 744 L428 740 L410 764 L414 748 Z" fill="#07111a"/>
|
||||
<!-- rim light on the far shoulder -->
|
||||
<path d="M576 664 C600 684 614 716 620 760" fill="none" stroke="#ff8a2a" stroke-width="4"/>
|
||||
</g>
|
||||
|
||||
<!-- the gloved fist on the wrench -->
|
||||
<g id="fistA">
|
||||
<path d="M196 800 C200 760 214 726 236 704 L282 716 C266 744 256 772 254 800 Z" fill="#ffd6a8" stroke="#4a1e05" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M262 716 L282 716 C266 744 256 772 254 800 L232 800 C238 770 248 740 262 716 Z" fill="#f2b089"/>
|
||||
<g transform="translate(261,680) rotate(-22)">
|
||||
<rect x="-36" y="44" width="62" height="22" rx="8" fill="#1f3550" stroke="#4a1e05" stroke-width="6"/>
|
||||
<rect x="-34" y="-34" width="58" height="22" rx="11" fill="#1f3550" stroke="#4a1e05" stroke-width="6"/>
|
||||
<rect x="-38" y="-14" width="62" height="22" rx="11" fill="#1f3550" stroke="#4a1e05" stroke-width="6"/>
|
||||
<rect x="-38" y="6" width="62" height="22" rx="11" fill="#1f3550" stroke="#4a1e05" stroke-width="6"/>
|
||||
<rect x="-34" y="26" width="56" height="22" rx="11" fill="#1f3550" stroke="#4a1e05" stroke-width="6"/>
|
||||
<path d="M18 -36 C40 -40 52 -24 46 -8 C42 4 30 6 22 0 Z" fill="#1f3550" stroke="#4a1e05" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M-30 -28 C-30 -10 -32 10 -30 36" fill="none" stroke="#59b7ff" stroke-width="3" stroke-linecap="round" opacity="0.85"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g id="bustA">
|
||||
<use href="#wrench" transform="translate(318,820) rotate(-112)"/>
|
||||
<use href="#hairBack"/>
|
||||
<use href="#spark"/>
|
||||
<use href="#torsoA"/>
|
||||
<use href="#headFront"/>
|
||||
<use href="#fistA"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<!-- sheet -->
|
||||
<rect width="1200" height="800" fill="#f4efe7"/>
|
||||
|
||||
<!-- dialogue card (context only) -->
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="#07111a"/>
|
||||
<polygon points="74,46 786,46 740,780 20,780" fill="none" stroke="#ff8a2a" stroke-width="5"/>
|
||||
<path d="M86 58 L120 58 L90 520" fill="none" stroke="#59b7ff" stroke-width="2" opacity="0.5"/>
|
||||
|
||||
<g clip-path="url(#cardClip)">
|
||||
<use href="#bustA" transform="translate(66,94) scale(0.86)"/>
|
||||
</g>
|
||||
|
||||
<!-- nameplate -->
|
||||
<polygon points="484,704 744,704 741,752 478,752" fill="#ff8a2a"/>
|
||||
<text x="510" y="739" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="8" fill="#07111a">EUREKA</text>
|
||||
|
||||
<!-- right column -->
|
||||
<text x="812" y="66" font-family="Consolas, 'Courier New', monospace" font-size="22" font-weight="700" letter-spacing="4" fill="#4a1e05">EUREKA / A / THE SPARK</text>
|
||||
<text x="812" y="94" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#4a1e05">Hook: one huge lightning-spark ahoge springs</text>
|
||||
<text x="812" y="113" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#4a1e05">from her crown; a big wrench rides her shoulder.</text>
|
||||
|
||||
<!-- full body chibi, 2.5 heads -->
|
||||
<g id="fullA" transform="translate(0,34)">
|
||||
<!-- wrench behind -->
|
||||
<use href="#wrench" transform="translate(922,432) rotate(-116) scale(0.42)"/>
|
||||
<use href="#hairBack" transform="translate(768,118) scale(0.36)"/>
|
||||
<use href="#spark" transform="translate(768,118) scale(0.36)"/>
|
||||
<!-- back arm (far), hanging -->
|
||||
<path d="M944 352 C960 372 966 400 962 428 C958 440 944 440 942 428 C942 404 938 380 930 364 Z" fill="#ffd6a8" stroke="#4a1e05" stroke-width="4" stroke-linejoin="round"/>
|
||||
<circle cx="952" cy="432" r="10" fill="#1f3550" stroke="#4a1e05" stroke-width="4"/>
|
||||
<!-- legs: navy jumpsuit -->
|
||||
<path d="M866 424 L940 424 L946 540 L912 542 L906 470 L900 542 L864 540 Z" fill="#1f3550" stroke="#4a1e05" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M920 430 L940 424 L946 540 L926 540 Z" fill="#07111a"/>
|
||||
<!-- boots -->
|
||||
<path d="M860 534 L902 534 L904 566 L848 566 C848 552 852 540 860 534 Z" fill="#4a1e05"/>
|
||||
<path d="M910 534 L948 534 C958 542 962 556 962 566 L908 566 Z" fill="#4a1e05"/>
|
||||
<path d="M852 556 L902 556 M912 556 L960 556" stroke="#ff8a2a" stroke-width="3"/>
|
||||
<!-- tank torso -->
|
||||
<path d="M870 344 C886 334 926 334 940 344 L944 418 L866 418 Z" fill="#ff8a2a" stroke="#4a1e05" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M920 342 C932 340 940 344 940 344 L944 418 L924 418 Z" fill="#e8642a"/>
|
||||
<!-- jumpsuit top tied at the waist -->
|
||||
<path d="M860 412 L948 412 L950 432 L858 432 Z" fill="#1f3550" stroke="#4a1e05" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M880 426 C870 450 862 474 858 494 L874 496 C878 474 884 452 894 430 Z" fill="#1f3550" stroke="#4a1e05" stroke-width="4" stroke-linejoin="round"/>
|
||||
<circle cx="888" cy="424" r="9" fill="#1f3550" stroke="#4a1e05" stroke-width="4"/>
|
||||
<!-- neck -->
|
||||
<path d="M892 322 L894 340 L916 340 L918 322 Z" fill="#f2b089" stroke="#4a1e05" stroke-width="3"/>
|
||||
<use href="#headFront" transform="translate(768,118) scale(0.36)"/>
|
||||
<!-- near arm raised to the wrench on the shoulder -->
|
||||
<path d="M870 350 C852 360 846 380 856 392 C866 398 874 386 878 372 Z" fill="#ffd6a8" stroke="#4a1e05" stroke-width="4" stroke-linejoin="round"/>
|
||||
<circle cx="858" cy="380" r="11" fill="#1f3550" stroke="#4a1e05" stroke-width="4"/>
|
||||
</g>
|
||||
<text x="856" y="618" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a1e05">full body, 2.5 heads</text>
|
||||
|
||||
<!-- silhouette check -->
|
||||
<rect x="1012" y="140" width="168" height="200" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bustA" transform="translate(1028,160) scale(0.2)"/></g>
|
||||
<text x="1016" y="356" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a1e05">bust silhouette</text>
|
||||
<rect x="1012" y="372" width="64" height="64" fill="#ffffff" stroke="#d8cfc2"/>
|
||||
<g filter="url(#sil)"><use href="#bustA" transform="translate(1022,380) scale(0.06)"/></g>
|
||||
<text x="1086" y="410" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a1e05">at 48 px</text>
|
||||
|
||||
<!-- palette -->
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#4a1e05">
|
||||
<rect x="812" y="630" width="52" height="52" fill="#ff8a2a" stroke="#4a1e05" stroke-width="2"/><text x="812" y="698">#ff8a2a</text><text x="812" y="712">ember</text>
|
||||
<rect x="874" y="630" width="52" height="52" fill="#e8642a" stroke="#4a1e05" stroke-width="2"/><text x="874" y="698">#e8642a</text><text x="874" y="712">copper</text>
|
||||
<rect x="936" y="630" width="52" height="52" fill="#4a1e05" stroke="#4a1e05" stroke-width="2"/><text x="936" y="698">#4a1e05</text><text x="936" y="712">line</text>
|
||||
<rect x="998" y="630" width="52" height="52" fill="#07111a" stroke="#4a1e05" stroke-width="2"/><text x="998" y="698">#07111a</text><text x="998" y="712">navy</text>
|
||||
<rect x="1060" y="630" width="52" height="52" fill="#ffd6a8" stroke="#4a1e05" stroke-width="2"/><text x="1060" y="698">#ffd6a8</text><text x="1060" y="712">skin</text>
|
||||
<rect x="1122" y="630" width="52" height="52" fill="#59b7ff" stroke="#4a1e05" stroke-width="2"/><text x="1122" y="698">#59b7ff</text><text x="1122" y="712">spark</text>
|
||||
</g>
|
||||
<text x="812" y="740" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a1e05">Shadows are darks of each base; wrench steel #cfd6dd is the one neutral.</text>
|
||||
<text x="812" y="758" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#4a1e05">Shape: a circle cut by one zigzag. Circle, bolt, bar.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
BIN
cast-designs/proposals/heimdall/heimdall-A.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
243
cast-designs/proposals/heimdall/heimdall-A.svg
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Heimdall, Direction A: The Horn Bearer</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-5%" y="-5%" width="110%" height="110%">
|
||||
<feFlood flood-color="#000"/><feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="panelClip"><rect x="20" y="20" width="770" height="760" rx="14"/></clipPath>
|
||||
<linearGradient id="prism" x1="0" y1="0" x2="1" y2="0">
|
||||
<stop offset="0" stop-color="#ff4d6d"/><stop offset=".18" stop-color="#ff4d6d"/>
|
||||
<stop offset=".18" stop-color="#ffb02e"/><stop offset=".34" stop-color="#ffb02e"/>
|
||||
<stop offset=".34" stop-color="#f4e04d"/><stop offset=".5" stop-color="#f4e04d"/>
|
||||
<stop offset=".5" stop-color="#3fd17a"/><stop offset=".66" stop-color="#3fd17a"/>
|
||||
<stop offset=".66" stop-color="#3fc8ff"/><stop offset=".82" stop-color="#3fc8ff"/>
|
||||
<stop offset=".82" stop-color="#9a6bff"/><stop offset="1" stop-color="#9a6bff"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- ===== HEAD (canon: dark skin, messy dark hair lit gold, stern gold eyes) ===== -->
|
||||
<clipPath id="eyeNearClip"><path d="M-112,50 C-92,32 -46,30 -6,46 C-10,82 -28,100 -56,101 C-86,101 -104,86 -112,50 Z"/></clipPath>
|
||||
<clipPath id="eyeFarClip"><path d="M66,48 C86,36 112,38 132,50 C130,80 118,99 98,100 C78,100 68,84 66,48 Z"/></clipPath>
|
||||
<clipPath id="irisNear"><ellipse cx="-54" cy="70" rx="31" ry="36"/></clipPath>
|
||||
<clipPath id="irisFar"><ellipse cx="100" cy="72" rx="22" ry="33"/></clipPath>
|
||||
<clipPath id="faceClip"><path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z"/></clipPath>
|
||||
|
||||
<g id="head" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- back hair: messy wavy locks with curled points -->
|
||||
<path d="M-150,110 C-175,110 -200,95 -218,68 C-196,70 -186,60 -182,45 C-215,40 -245,15 -254,-22 C-232,-12 -214,-20 -205,-35 C-240,-60 -258,-100 -248,-144 C-230,-122 -206,-116 -190,-120 C-200,-170 -180,-214 -138,-236 C-136,-216 -126,-206 -110,-200 C-100,-242 -60,-270 -8,-274 C-20,-258 -18,-242 -10,-228 C20,-262 72,-272 114,-252 C98,-242 90,-232 86,-220 C132,-232 178,-214 204,-178 C184,-178 170,-172 160,-164 C202,-150 228,-110 232,-66 C214,-78 202,-80 190,-78 C212,-50 222,-14 214,24 C202,8 186,2 170,4 L170,60 L-150,110 Z" fill="#2e211c" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-150,110 C-175,110 -200,95 -218,68 C-196,70 -186,60 -182,45 C-170,60 -160,70 -150,70 Z" fill="#1c1411"/>
|
||||
<!-- gold-lit strands -->
|
||||
<path d="M-206,-100 C-190,-160 -130,-206 -60,-222 C-124,-196 -176,-150 -206,-100 Z M-40,-238 C10,-256 74,-250 114,-226 C70,-238 14,-240 -40,-238 Z M144,-160 C182,-140 204,-108 208,-76 C196,-104 176,-132 144,-160 Z M-222,-38 C-212,-70 -192,-92 -168,-98 C-188,-82 -206,-62 -222,-38 Z M-150,-150 C-110,-186 -50,-194 0,-190 C-56,-184 -110,-174 -150,-150 Z" fill="#6e5230"/>
|
||||
<path d="M176,-150 C204,-126 222,-96 226,-70 M196,-60 C210,-30 214,0 212,18" fill="none" stroke="#3466ff" stroke-width="4"/>
|
||||
|
||||
<!-- ear + gold earring -->
|
||||
<path d="M-146,32 C-184,22 -192,92 -146,102 Z" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M-152,48 C-172,48 -172,80 -152,86" fill="none" stroke="#432a1e" stroke-width="3"/>
|
||||
<circle cx="-170" cy="104" r="8" fill="none" stroke="#d8a73a" stroke-width="4"/>
|
||||
<path d="M-170,112 L-170,138 M-170,130 L-162,130 M-170,137 L-163,137" stroke="#d8a73a" stroke-width="4"/>
|
||||
<circle cx="-170" cy="112" r="2" fill="#f5d27a"/>
|
||||
|
||||
<!-- face -->
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z" fill="#5a3a2a"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<path d="M-160,-20 L170,-20 L170,46 Q150,52 144,34 Q128,40 112,50 Q96,22 70,18 Q56,44 38,58 Q22,24 -4,18 Q-20,38 -40,44 Q-58,22 -80,18 Q-96,38 -122,48 Q-130,30 -160,30 Z" fill="#432a1e"/>
|
||||
<path d="M150,20 C150,90 120,160 66,190 L180,200 L180,20 Z" fill="#432a1e"/>
|
||||
<ellipse cx="-80" cy="122" rx="22" ry="9" fill="#74503c"/>
|
||||
</g>
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20" fill="none" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M154,60 C142,128 108,172 70,184" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- near eye: sharp, level, glowing gold -->
|
||||
<path d="M-112,50 C-92,32 -46,30 -6,46 C-10,82 -28,100 -56,101 C-86,101 -104,86 -112,50 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeNearClip)">
|
||||
<path d="M-120,30 L0,30 L0,58 Q-60,44 -120,62 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="-54" cy="70" rx="31" ry="36" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisNear)">
|
||||
<ellipse cx="-54" cy="44" rx="40" ry="24" fill="#8a5a12"/>
|
||||
<ellipse cx="-54" cy="102" rx="26" ry="14" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="-52" cy="72" rx="9" ry="17" fill="#24130a"/>
|
||||
<ellipse cx="-54" cy="70" rx="31" ry="36" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="-66" cy="58" r="8.5" fill="#ffffff"/>
|
||||
<circle cx="-38" cy="88" r="4.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M-124,46 L-136,36 C-104,22 -46,20 -2,40 L4,52 C-44,34 -94,38 -112,60 Z" fill="#0d1a4d"/>
|
||||
<path d="M-94,96 C-80,101 -62,102 -46,100" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<path d="M66,48 C86,36 112,38 132,50 C130,80 118,99 98,100 C78,100 68,84 66,48 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeFarClip)">
|
||||
<path d="M60,30 L140,30 L140,58 Q100,46 60,62 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="100" cy="72" rx="22" ry="33" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisFar)">
|
||||
<ellipse cx="100" cy="48" rx="30" ry="22" fill="#8a5a12"/>
|
||||
<ellipse cx="100" cy="102" rx="18" ry="12" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="102" cy="74" rx="7" ry="15" fill="#24130a"/>
|
||||
<ellipse cx="100" cy="72" rx="22" ry="33" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="92" cy="61" r="6.5" fill="#ffffff"/>
|
||||
<circle cx="109" cy="86" r="3.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M60,52 C82,32 120,32 144,44 L146,36 L140,54 C114,42 86,42 66,58 Z" fill="#0d1a4d"/>
|
||||
<path d="M80,95 C90,99 104,99 114,96" fill="none" stroke="#0d1a4d" stroke-width="2.5"/>
|
||||
|
||||
<!-- messy fringe -->
|
||||
<path d="M168,10 C176,30 172,50 160,62 C156,40 146,26 130,18 C128,32 120,42 108,48 C104,26 90,12 70,8 C66,28 52,46 34,54 C36,30 20,12 -4,6 C-10,24 -24,36 -40,40 C-44,18 -60,6 -80,4 C-88,24 -104,38 -122,46 C-120,26 -128,10 -140,4 C-150,32 -150,62 -158,86 C-176,-60 -60,-130 40,-128 C120,-126 172,-60 168,10 Z" fill="#2e211c"/>
|
||||
<path d="M168,10 C176,30 172,50 160,62 C156,40 146,26 130,18 C128,32 120,42 108,48 C104,26 90,12 70,8 C66,28 52,46 34,54 C36,30 20,12 -4,6 C-10,24 -24,36 -40,40 C-44,18 -60,6 -80,4 C-88,24 -104,38 -122,46 C-120,26 -128,10 -140,4 C-150,32 -150,62 -158,86" fill="none" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-120,-62 C-80,-100 -20,-108 30,-98 C-24,-96 -76,-86 -120,-62 Z M60,-94 C110,-82 142,-50 154,-12 C136,-46 104,-74 60,-94 Z" fill="#6e5230"/>
|
||||
<path d="M-60,-40 C-42,-20 -32,0 -30,18 M92,-50 C102,-30 106,-10 106,8" fill="none" stroke="#1c1411" stroke-width="3"/>
|
||||
<path d="M150,-50 C168,-24 172,0 168,10" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- stern brows over the fringe -->
|
||||
<use xlink:href="#brows"/>
|
||||
|
||||
<!-- nose and a small level frown -->
|
||||
<path d="M114,98 C119,104 118,108 110,110" fill="none" stroke="#2a1810" stroke-width="3"/>
|
||||
<use xlink:href="#mouth"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== COAT (canon: navy high collar lined cobalt, gold trim, key pendant) ===== -->
|
||||
<g id="collarBack" stroke-linejoin="round">
|
||||
<path d="M-150,268 C-176,216 -172,160 -142,118 L-80,196 L150,196 L202,118 C232,164 232,220 212,268 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M150,196 L202,118 C232,164 232,220 212,268 L180,268 C200,230 200,180 196,150 Z" fill="#2443b8"/>
|
||||
</g>
|
||||
<g id="neck"><path d="M18,160 L22,250 L104,250 L100,160 Z" fill="#432a1e" stroke="#0d1a4d" stroke-width="4"/></g>
|
||||
<g id="coatFront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M4,236 L60,340 L118,236 Z" fill="#0d1a4d"/>
|
||||
<path d="M-150,268 C-170,226 -162,180 -142,132 C-112,190 -42,224 6,240 L60,340 L-20,440 L-235,440 C-236,334 -206,282 -150,268 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M212,268 C228,226 224,180 202,132 C174,190 152,224 116,240 L60,340 L140,440 L315,440 C310,334 284,282 212,268 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M202,132 C174,190 152,224 116,240 L60,340 L84,370 C120,300 176,250 214,206 Z" fill="#121936"/>
|
||||
<path d="M-136,150 C-110,198 -46,228 0,244 L56,344 M196,150 C170,198 150,226 120,244 L64,344" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
<!-- shoulder plate: cobalt panel, gold edge, cobalt gem -->
|
||||
<path d="M-235,440 C-236,360 -214,300 -168,280 C-140,300 -128,340 -130,380 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-212,350 C-206,316 -190,296 -168,286" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
<path d="M-180,330 L-170,316 L-160,330 L-170,344 Z" fill="#7c9bff" stroke="#0d1a4d" stroke-width="3"/>
|
||||
<path d="M315,440 C312,370 296,316 250,288 C232,320 236,370 246,420 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M280,340 C272,316 262,302 252,294" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="pendant" stroke-linejoin="round">
|
||||
<path d="M60,268 L80,292 L60,316 L40,292 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M60,284 L67,292 L60,300 L53,292 Z" fill="#0d1a4d"/>
|
||||
<path d="M56,316 L56,356 L60,362 L64,356 L64,316 Z M64,340 L76,340 L76,348 L64,348 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
<circle cx="52" cy="282" r="3" fill="#f5d27a"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL-BODY BASE (2.5 heads): long coat flaring into cape tails ===== -->
|
||||
<g id="fbLegs" stroke-linejoin="round">
|
||||
<path d="M-34,600 L-40,750 L14,750 L18,600 Z M62,600 L68,750 L122,750 L116,600 Z" fill="#0d1a4d"/>
|
||||
<path d="M-66,744 Q-66,712 -40,712 L16,712 Q24,746 22,790 L-74,790 Q-86,770 -66,744 Z M52,744 Q50,712 70,712 L126,712 Q150,746 156,790 L52,790 Q42,770 52,744 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-62,724 L18,724 M56,724 L130,724" stroke="#d8a73a" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="fbCoat" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- cape tails flaring behind -->
|
||||
<path d="M-130,300 C-210,420 -250,560 -260,690 L-200,660 L-170,700 L-120,600 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M200,300 C290,420 330,560 340,680 L280,650 L250,700 L190,600 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-128,262 L208,262 C240,400 258,520 262,640 Q160,668 60,640 Q-50,668 -160,640 C-158,520 -150,400 -128,262 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M60,340 L60,640" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-160,640 Q-50,668 60,640 Q160,668 262,640" fill="none" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-120,450 L240,450" stroke="#0d1a4d" stroke-width="22"/>
|
||||
<path d="M-120,450 L240,450" stroke="#121936" stroke-width="14"/>
|
||||
<circle cx="60" cy="450" r="16" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M150,460 L150,520 M150,520 L162,520 M150,508 L160,508" stroke="#d8a73a" stroke-width="6"/>
|
||||
<circle cx="150" cy="464" r="8" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- expression: On watch -->
|
||||
<g id="brows" fill="none" stroke="#0d1a4d" stroke-linecap="round"><path d="M-114,8 C-86,4 -52,8 -22,20" stroke-width="6"/><path d="M64,24 C86,12 112,8 138,12" stroke-width="5"/></g>
|
||||
<g id="mouth"><path d="M60,146 C70,144 82,144 90,147" fill="none" stroke="#0d1a4d" stroke-width="3.4" stroke-linecap="round"/></g>
|
||||
<clipPath id="hornClip"><path d="M245,248 C350,80 360,-170 250,-290 C150,-400 -80,-412 -210,-336 C-262,-306 -300,-262 -320,-212 L-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238 Z"/></clipPath>
|
||||
<g id="horn" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M245,248 C350,80 360,-170 250,-290 C150,-400 -80,-412 -210,-336 C-262,-306 -300,-262 -320,-212 L-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238 Z" fill="#e9eef8"/>
|
||||
<g clip-path="url(#hornClip)">
|
||||
<path d="M-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238" fill="none" stroke="#b8c3da" stroke-width="44"/>
|
||||
<g fill="none">
|
||||
<path d="M210,92 L390,122" stroke="#0d1a4d" stroke-width="24"/><path d="M210,92 L390,122" stroke="#d8a73a" stroke-width="17"/>
|
||||
<path d="M240,-112 L410,-176" stroke="#0d1a4d" stroke-width="24"/><path d="M240,-112 L410,-176" stroke="#d8a73a" stroke-width="17"/>
|
||||
<path d="M38,-430 L48,-280" stroke="#0d1a4d" stroke-width="26"/><path d="M38,-430 L48,-280" stroke="#d8a73a" stroke-width="19"/>
|
||||
<path d="M-262,-372 L-166,-250" stroke="#0d1a4d" stroke-width="32"/><path d="M-262,-372 L-166,-250" stroke="#d8a73a" stroke-width="25"/>
|
||||
<path d="M318,104 L352,110 M330,-140 L362,-152 M42,-392 L43,-366 M-238,-344 L-222,-324" stroke="#f5d27a" stroke-width="5"/>
|
||||
</g>
|
||||
<path d="M-120,-372 C-20,-396 160,-380 250,-280" fill="none" stroke="#ffffff" stroke-width="9"/>
|
||||
<path d="M318,40 C340,-120 320,-210 238,-292 C150,-380 -70,-392 -196,-322" fill="none" stroke="url(#prism)" stroke-width="7"/>
|
||||
<path d="M352,-20 C362,-150 330,-240 268,-298" fill="none" stroke="#3466ff" stroke-width="12"/>
|
||||
</g>
|
||||
<path d="M-320,-212 C-326,-160 -236,-140 -215,-175 C-232,-214 -296,-244 -320,-212 Z" fill="#1b2452"/>
|
||||
<path d="M-320,-212 C-326,-160 -236,-140 -215,-175" fill="none" stroke="#d8a73a" stroke-width="9"/>
|
||||
<path d="M245,248 C350,80 360,-170 250,-290 C150,-400 -80,-412 -210,-336 C-262,-306 -300,-262 -320,-212 L-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238 Z" fill="none" stroke="#0d1a4d" stroke-width="7"/>
|
||||
</g>
|
||||
<!-- horn strap across the chest -->
|
||||
<g id="strap">
|
||||
<path d="M250,300 L-150,440" stroke="#0d1a4d" stroke-width="30"/>
|
||||
<path d="M250,300 L-150,440" stroke="#121936" stroke-width="22"/>
|
||||
<path d="M250,300 L-150,440" stroke="#d8a73a" stroke-width="3" stroke-dasharray="10 10"/>
|
||||
</g>
|
||||
|
||||
<g id="bust" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#horn"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<use xlink:href="#coatFront"/>
|
||||
<use xlink:href="#strap"/>
|
||||
<use xlink:href="#pendant"/>
|
||||
</g>
|
||||
<g id="bustPlaced"><g transform="translate(400,398) scale(0.96)"><use xlink:href="#bust"/></g></g>
|
||||
<g id="fullbody" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#horn"/>
|
||||
<use xlink:href="#fbLegs"/>
|
||||
<use xlink:href="#fbCoat"/>
|
||||
<path d="M-128,300 Q-186,400 -184,500 Q-158,520 -132,500 Q-124,410 -96,340 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M-184,486 L-130,486" stroke="#3466ff" stroke-width="12"/>
|
||||
<circle cx="-158" cy="522" r="28" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M200,300 Q258,400 260,500 Q234,520 208,500 Q200,410 172,340 Z" fill="#121936" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<circle cx="234" cy="522" r="26" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<path d="M4,236 L60,340 L118,236 Z" fill="#0d1a4d"/>
|
||||
<path d="M-136,150 C-110,198 -46,228 4,240 L60,340 M196,150 C170,198 150,226 118,240 L60,340" fill="none" stroke="#d8a73a" stroke-width="6"/>
|
||||
<use xlink:href="#strap"/>
|
||||
<use xlink:href="#pendant"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#f3f1ec"/>
|
||||
<g clip-path="url(#panelClip)">
|
||||
<rect x="20" y="20" width="770" height="760" fill="#e6ebf5"/>
|
||||
<path d="M330,20 L640,20 L470,780 L160,780 Z" fill="#d3ddf6"/>
|
||||
<path d="M660,20 L700,20 L530,780 L490,780 Z" fill="#d3ddf6"/>
|
||||
<use xlink:href="#bustPlaced"/>
|
||||
</g>
|
||||
<rect x="20" y="20" width="770" height="760" rx="14" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif" fill="#0d1a4d">
|
||||
<text x="815" y="58" font-size="30" font-weight="700" letter-spacing="3">HEIMDALL</text>
|
||||
<text x="815" y="86" font-size="17" font-weight="600" letter-spacing="1.5">A · THE HORN BEARER</text>
|
||||
</g>
|
||||
<g transform="translate(920,262) scale(0.31)"><use xlink:href="#fullbody"/></g>
|
||||
<text x="930" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a" text-anchor="middle">full body, 2.5 heads</text>
|
||||
|
||||
<rect x="1046" y="110" width="140" height="138" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="110" width="140" height="138" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<rect x="1046" y="262" width="48" height="48" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="262" width="48" height="48" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<text x="1102" y="282" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">silhouette</text>
|
||||
<text x="1102" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">48 px</text>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif">
|
||||
<text x="815" y="575" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">HOOK</text>
|
||||
<text x="815" y="597" font-size="15" fill="#0d1a4d">The Gjallarhorn arcs over his head like a crescent</text>
|
||||
<text x="815" y="617" font-size="15" fill="#0d1a4d">moon; a Bifrost line runs along its rim.</text>
|
||||
<text x="815" y="655" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">PALETTE</text>
|
||||
<g font-size="11" fill="#0d1a4d">
|
||||
<rect x="815" y="666" width="52" height="40" fill="#3466ff" stroke="#0d1a4d"/><text x="815" y="722">#3466ff</text><text x="815" y="736">lining</text>
|
||||
<rect x="878" y="666" width="52" height="40" fill="#1b2452" stroke="#0d1a4d"/><text x="878" y="722">#1b2452</text><text x="878" y="736">coat</text>
|
||||
<rect x="941" y="666" width="52" height="40" fill="#e9eef8" stroke="#0d1a4d"/><text x="941" y="722">#e9eef8</text><text x="941" y="736">horn</text>
|
||||
<rect x="1004" y="666" width="52" height="40" fill="#d8a73a" stroke="#0d1a4d"/><text x="1004" y="722">#d8a73a</text><text x="1004" y="736">gold</text>
|
||||
<rect x="1067" y="666" width="52" height="40" fill="#5a3a2a" stroke="#0d1a4d"/><text x="1067" y="722">#5a3a2a</text><text x="1067" y="736">skin</text>
|
||||
<rect x="1130" y="666" width="52" height="40" fill="#2e211c" stroke="#0d1a4d"/><text x="1130" y="722">#2e211c</text><text x="1130" y="736">hair</text>
|
||||
<rect x="815" y="748" width="367" height="7" fill="url(#prism)"/>
|
||||
<text x="815" y="772">Bifrost accent: a thin prismatic line on the horn, under 10% of the figure</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
BIN
cast-designs/proposals/heimdall/heimdall-B.png
Normal file
|
After Width: | Height: | Size: 190 KiB |
254
cast-designs/proposals/heimdall/heimdall-B.svg
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Heimdall, Direction B: The Great Key</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-5%" y="-5%" width="110%" height="110%">
|
||||
<feFlood flood-color="#000"/><feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="panelClip"><rect x="20" y="20" width="770" height="760" rx="14"/></clipPath>
|
||||
<linearGradient id="prism" x1="0" y1="0" x2="1" y2="0">
|
||||
<stop offset="0" stop-color="#ff4d6d"/><stop offset=".18" stop-color="#ff4d6d"/>
|
||||
<stop offset=".18" stop-color="#ffb02e"/><stop offset=".34" stop-color="#ffb02e"/>
|
||||
<stop offset=".34" stop-color="#f4e04d"/><stop offset=".5" stop-color="#f4e04d"/>
|
||||
<stop offset=".5" stop-color="#3fd17a"/><stop offset=".66" stop-color="#3fd17a"/>
|
||||
<stop offset=".66" stop-color="#3fc8ff"/><stop offset=".82" stop-color="#3fc8ff"/>
|
||||
<stop offset=".82" stop-color="#9a6bff"/><stop offset="1" stop-color="#9a6bff"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- ===== HEAD (canon: dark skin, messy dark hair lit gold, stern gold eyes) ===== -->
|
||||
<clipPath id="eyeNearClip"><path d="M-112,50 C-92,32 -46,30 -6,46 C-10,82 -28,100 -56,101 C-86,101 -104,86 -112,50 Z"/></clipPath>
|
||||
<clipPath id="eyeFarClip"><path d="M66,48 C86,36 112,38 132,50 C130,80 118,99 98,100 C78,100 68,84 66,48 Z"/></clipPath>
|
||||
<clipPath id="irisNear"><ellipse cx="-54" cy="70" rx="31" ry="36"/></clipPath>
|
||||
<clipPath id="irisFar"><ellipse cx="100" cy="72" rx="22" ry="33"/></clipPath>
|
||||
<clipPath id="faceClip"><path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z"/></clipPath>
|
||||
|
||||
<g id="head" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- back hair: messy wavy locks with curled points -->
|
||||
<path d="M-150,110 C-175,110 -200,95 -218,68 C-196,70 -186,60 -182,45 C-215,40 -245,15 -254,-22 C-232,-12 -214,-20 -205,-35 C-240,-60 -258,-100 -248,-144 C-230,-122 -206,-116 -190,-120 C-200,-170 -180,-214 -138,-236 C-136,-216 -126,-206 -110,-200 C-100,-242 -60,-270 -8,-274 C-20,-258 -18,-242 -10,-228 C20,-262 72,-272 114,-252 C98,-242 90,-232 86,-220 C132,-232 178,-214 204,-178 C184,-178 170,-172 160,-164 C202,-150 228,-110 232,-66 C214,-78 202,-80 190,-78 C212,-50 222,-14 214,24 C202,8 186,2 170,4 L170,60 L-150,110 Z" fill="#2e211c" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-150,110 C-175,110 -200,95 -218,68 C-196,70 -186,60 -182,45 C-170,60 -160,70 -150,70 Z" fill="#1c1411"/>
|
||||
<!-- gold-lit strands -->
|
||||
<path d="M-206,-100 C-190,-160 -130,-206 -60,-222 C-124,-196 -176,-150 -206,-100 Z M-40,-238 C10,-256 74,-250 114,-226 C70,-238 14,-240 -40,-238 Z M144,-160 C182,-140 204,-108 208,-76 C196,-104 176,-132 144,-160 Z M-222,-38 C-212,-70 -192,-92 -168,-98 C-188,-82 -206,-62 -222,-38 Z M-150,-150 C-110,-186 -50,-194 0,-190 C-56,-184 -110,-174 -150,-150 Z" fill="#6e5230"/>
|
||||
<path d="M176,-150 C204,-126 222,-96 226,-70 M196,-60 C210,-30 214,0 212,18" fill="none" stroke="#3466ff" stroke-width="4"/>
|
||||
|
||||
<!-- ear + gold earring -->
|
||||
<path d="M-146,32 C-184,22 -192,92 -146,102 Z" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M-152,48 C-172,48 -172,80 -152,86" fill="none" stroke="#432a1e" stroke-width="3"/>
|
||||
<circle cx="-170" cy="104" r="8" fill="none" stroke="#d8a73a" stroke-width="4"/>
|
||||
<path d="M-170,112 L-170,138 M-170,130 L-162,130 M-170,137 L-163,137" stroke="#d8a73a" stroke-width="4"/>
|
||||
<circle cx="-170" cy="112" r="2" fill="#f5d27a"/>
|
||||
|
||||
<!-- face -->
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z" fill="#5a3a2a"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<path d="M-160,-20 L170,-20 L170,46 Q150,52 144,34 Q128,40 112,50 Q96,22 70,18 Q56,44 38,58 Q22,24 -4,18 Q-20,38 -40,44 Q-58,22 -80,18 Q-96,38 -122,48 Q-130,30 -160,30 Z" fill="#432a1e"/>
|
||||
<path d="M150,20 C150,90 120,160 66,190 L180,200 L180,20 Z" fill="#432a1e"/>
|
||||
<ellipse cx="-80" cy="122" rx="22" ry="9" fill="#74503c"/>
|
||||
</g>
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20" fill="none" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M154,60 C142,128 108,172 70,184" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- near eye: sharp, level, glowing gold -->
|
||||
<path d="M-112,50 C-92,32 -46,30 -6,46 C-10,82 -28,100 -56,101 C-86,101 -104,86 -112,50 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeNearClip)">
|
||||
<path d="M-120,30 L0,30 L0,58 Q-60,44 -120,62 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="-54" cy="70" rx="31" ry="36" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisNear)">
|
||||
<ellipse cx="-54" cy="44" rx="40" ry="24" fill="#8a5a12"/>
|
||||
<ellipse cx="-54" cy="102" rx="26" ry="14" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="-52" cy="72" rx="9" ry="17" fill="#24130a"/>
|
||||
<ellipse cx="-54" cy="70" rx="31" ry="36" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="-66" cy="58" r="8.5" fill="#ffffff"/>
|
||||
<circle cx="-38" cy="88" r="4.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M-124,46 L-136,36 C-104,22 -46,20 -2,40 L4,52 C-44,34 -94,38 -112,60 Z" fill="#0d1a4d"/>
|
||||
<path d="M-94,96 C-80,101 -62,102 -46,100" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<path d="M66,48 C86,36 112,38 132,50 C130,80 118,99 98,100 C78,100 68,84 66,48 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeFarClip)">
|
||||
<path d="M60,30 L140,30 L140,58 Q100,46 60,62 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="100" cy="72" rx="22" ry="33" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisFar)">
|
||||
<ellipse cx="100" cy="48" rx="30" ry="22" fill="#8a5a12"/>
|
||||
<ellipse cx="100" cy="102" rx="18" ry="12" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="102" cy="74" rx="7" ry="15" fill="#24130a"/>
|
||||
<ellipse cx="100" cy="72" rx="22" ry="33" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="92" cy="61" r="6.5" fill="#ffffff"/>
|
||||
<circle cx="109" cy="86" r="3.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M60,52 C82,32 120,32 144,44 L146,36 L140,54 C114,42 86,42 66,58 Z" fill="#0d1a4d"/>
|
||||
<path d="M80,95 C90,99 104,99 114,96" fill="none" stroke="#0d1a4d" stroke-width="2.5"/>
|
||||
|
||||
<!-- messy fringe -->
|
||||
<path d="M168,10 C176,30 172,50 160,62 C156,40 146,26 130,18 C128,32 120,42 108,48 C104,26 90,12 70,8 C66,28 52,46 34,54 C36,30 20,12 -4,6 C-10,24 -24,36 -40,40 C-44,18 -60,6 -80,4 C-88,24 -104,38 -122,46 C-120,26 -128,10 -140,4 C-150,32 -150,62 -158,86 C-176,-60 -60,-130 40,-128 C120,-126 172,-60 168,10 Z" fill="#2e211c"/>
|
||||
<path d="M168,10 C176,30 172,50 160,62 C156,40 146,26 130,18 C128,32 120,42 108,48 C104,26 90,12 70,8 C66,28 52,46 34,54 C36,30 20,12 -4,6 C-10,24 -24,36 -40,40 C-44,18 -60,6 -80,4 C-88,24 -104,38 -122,46 C-120,26 -128,10 -140,4 C-150,32 -150,62 -158,86" fill="none" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-120,-62 C-80,-100 -20,-108 30,-98 C-24,-96 -76,-86 -120,-62 Z M60,-94 C110,-82 142,-50 154,-12 C136,-46 104,-74 60,-94 Z" fill="#6e5230"/>
|
||||
<path d="M-60,-40 C-42,-20 -32,0 -30,18 M92,-50 C102,-30 106,-10 106,8" fill="none" stroke="#1c1411" stroke-width="3"/>
|
||||
<path d="M150,-50 C168,-24 172,0 168,10" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- stern brows over the fringe -->
|
||||
<use xlink:href="#brows"/>
|
||||
|
||||
<!-- nose and a small level frown -->
|
||||
<path d="M114,98 C119,104 118,108 110,110" fill="none" stroke="#2a1810" stroke-width="3"/>
|
||||
<use xlink:href="#mouth"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== COAT (canon: navy high collar lined cobalt, gold trim, key pendant) ===== -->
|
||||
<g id="collarBack" stroke-linejoin="round">
|
||||
<path d="M-150,268 C-176,216 -172,160 -142,118 L-80,196 L150,196 L202,118 C232,164 232,220 212,268 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M150,196 L202,118 C232,164 232,220 212,268 L180,268 C200,230 200,180 196,150 Z" fill="#2443b8"/>
|
||||
</g>
|
||||
<g id="neck"><path d="M18,160 L22,250 L104,250 L100,160 Z" fill="#432a1e" stroke="#0d1a4d" stroke-width="4"/></g>
|
||||
<g id="coatFront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M4,236 L60,340 L118,236 Z" fill="#0d1a4d"/>
|
||||
<path d="M-150,268 C-170,226 -162,180 -142,132 C-112,190 -42,224 6,240 L60,340 L-20,440 L-235,440 C-236,334 -206,282 -150,268 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M212,268 C228,226 224,180 202,132 C174,190 152,224 116,240 L60,340 L140,440 L315,440 C310,334 284,282 212,268 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M202,132 C174,190 152,224 116,240 L60,340 L84,370 C120,300 176,250 214,206 Z" fill="#121936"/>
|
||||
<path d="M-136,150 C-110,198 -46,228 0,244 L56,344 M196,150 C170,198 150,226 120,244 L64,344" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
<!-- shoulder plate: cobalt panel, gold edge, cobalt gem -->
|
||||
<path d="M-235,440 C-236,360 -214,300 -168,280 C-140,300 -128,340 -130,380 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-212,350 C-206,316 -190,296 -168,286" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
<path d="M-180,330 L-170,316 L-160,330 L-170,344 Z" fill="#7c9bff" stroke="#0d1a4d" stroke-width="3"/>
|
||||
<path d="M315,440 C312,370 296,316 250,288 C232,320 236,370 246,420 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M280,340 C272,316 262,302 252,294" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="pendant" stroke-linejoin="round">
|
||||
<path d="M60,268 L80,292 L60,316 L40,292 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M60,284 L67,292 L60,300 L53,292 Z" fill="#0d1a4d"/>
|
||||
<path d="M56,316 L56,356 L60,362 L64,356 L64,316 Z M64,340 L76,340 L76,348 L64,348 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
<circle cx="52" cy="282" r="3" fill="#f5d27a"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL-BODY BASE (2.5 heads): long coat flaring into cape tails ===== -->
|
||||
<g id="fbLegs" stroke-linejoin="round">
|
||||
<path d="M-34,600 L-40,750 L14,750 L18,600 Z M62,600 L68,750 L122,750 L116,600 Z" fill="#0d1a4d"/>
|
||||
<path d="M-66,744 Q-66,712 -40,712 L16,712 Q24,746 22,790 L-74,790 Q-86,770 -66,744 Z M52,744 Q50,712 70,712 L126,712 Q150,746 156,790 L52,790 Q42,770 52,744 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-62,724 L18,724 M56,724 L130,724" stroke="#d8a73a" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="fbCoat" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- cape tails flaring behind -->
|
||||
<path d="M-130,300 C-210,420 -250,560 -260,690 L-200,660 L-170,700 L-120,600 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M200,300 C290,420 330,560 340,680 L280,650 L250,700 L190,600 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-128,262 L208,262 C240,400 258,520 262,640 Q160,668 60,640 Q-50,668 -160,640 C-158,520 -150,400 -128,262 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M60,340 L60,640" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-160,640 Q-50,668 60,640 Q160,668 262,640" fill="none" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-120,450 L240,450" stroke="#0d1a4d" stroke-width="22"/>
|
||||
<path d="M-120,450 L240,450" stroke="#121936" stroke-width="14"/>
|
||||
<circle cx="60" cy="450" r="16" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M150,460 L150,520 M150,520 L162,520 M150,508 L160,508" stroke="#d8a73a" stroke-width="6"/>
|
||||
<circle cx="150" cy="464" r="8" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- expression: Granted, a small gold-tooth smile -->
|
||||
<g id="brows" fill="none" stroke="#0d1a4d" stroke-linecap="round"><path d="M-114,2 C-86,-4 -52,0 -22,10" stroke-width="6"/><path d="M64,14 C86,4 112,2 138,8" stroke-width="5"/></g>
|
||||
<g id="mouth" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M50,140 C62,151 86,152 102,137 C96,154 66,159 50,140 Z" fill="#2a1018"/>
|
||||
<path d="M68,147 L86,146 L84,155 L70,155 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="1.5"/>
|
||||
<path d="M50,140 C62,151 86,152 102,137" fill="none" stroke="#0d1a4d" stroke-width="3.2"/>
|
||||
<path d="M104,150 L107,141 L110,150 L119,153 L110,156 L107,165 L104,156 L95,153 Z" fill="#f5d27a" stroke="#0d1a4d" stroke-width="1.5"/>
|
||||
</g>
|
||||
<!-- the great key, local origin at the centre of its bow -->
|
||||
<g id="bigkey" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- shaft -->
|
||||
<path d="M-13,58 L-13,420 L13,420 L13,58 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M4,60 L13,60 L13,420 L4,420 Z" fill="#a5761c"/>
|
||||
<path d="M-7,90 L-7,300" stroke="#f5d27a" stroke-width="4"/>
|
||||
<!-- bit: stepped teeth -->
|
||||
<path d="M13,262 L72,262 L72,282 L52,282 L52,298 L72,298 L72,334 L13,334 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M13,420 L0,442 L-13,420" fill="#d8a73a" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<!-- collar rings -->
|
||||
<rect x="-24" y="52" width="48" height="16" rx="5" fill="#d8a73a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<rect x="-20" y="80" width="40" height="12" rx="4" fill="#d8a73a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<!-- crowned bow: ring with three spikes -->
|
||||
<path d="M0,-108 L14,-76 L-14,-76 Z M-74,-6 L-58,8 L-58,-20 Z M74,-6 L58,8 L58,-20 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<circle cx="0" cy="-6" r="64" fill="#d8a73a" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M40,-46 A64,64 0 0 1 40,34 L28,24 A48,48 0 0 0 28,-36 Z" fill="#a5761c"/>
|
||||
<circle cx="0" cy="-6" r="40" fill="#e6ebf5" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-34,-6 A34,34 0 0 1 34,-6" fill="none" stroke="url(#prism)" stroke-width="6"/>
|
||||
<path d="M0,-30 L18,-6 L0,18 L-18,-6 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<circle cx="0" cy="-6" r="5" fill="#0d1a4d"/>
|
||||
<path d="M-50,-38 A60,60 0 0 1 -14,-62" fill="none" stroke="#f5d27a" stroke-width="5"/>
|
||||
</g>
|
||||
<!-- gloved fist around the shaft, sleeve rising from the coat -->
|
||||
<g id="keyHand" stroke-linejoin="round" stroke-linecap="round"><g transform="translate(0,40)">
|
||||
<path d="M232,460 L222,200 L330,190 L370,460 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M300,192 L330,190 L370,460 L330,460 Z" fill="#121936"/>
|
||||
<path d="M218,196 L334,186 L338,222 L222,232 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M220,214 L336,204" stroke="#d8a73a" stroke-width="4"/>
|
||||
<path d="M236,190 C226,150 230,112 252,100 L314,96 C336,104 340,150 330,188 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M254,118 L318,114 M254,140 L322,136 M256,162 L322,158" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
<path d="M244,104 C232,124 238,144 262,144 C276,142 282,128 278,112" fill="#1b2452" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M262,108 C268,104 280,104 288,108" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
</g></g>
|
||||
|
||||
<g id="bust" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<use xlink:href="#coatFront"/>
|
||||
<use xlink:href="#pendant"/>
|
||||
<use xlink:href="#bigkey" transform="translate(274,-238) rotate(6) scale(1.15)"/>
|
||||
<use xlink:href="#keyHand"/>
|
||||
</g>
|
||||
<g id="bustPlaced"><g transform="translate(372,392) scale(1.0)"><use xlink:href="#bust"/></g></g>
|
||||
<g id="fullbody" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#fbLegs"/>
|
||||
<use xlink:href="#fbCoat"/>
|
||||
<path d="M-128,300 Q-186,400 -184,500 Q-158,520 -132,500 Q-124,410 -96,340 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M-184,486 L-130,486" stroke="#3466ff" stroke-width="12"/>
|
||||
<circle cx="-158" cy="522" r="28" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<path d="M4,236 L60,340 L118,236 Z" fill="#0d1a4d"/>
|
||||
<path d="M-136,150 C-110,198 -46,228 4,240 L60,340 M196,150 C170,198 150,226 118,240 L60,340" fill="none" stroke="#d8a73a" stroke-width="6"/>
|
||||
<use xlink:href="#pendant"/>
|
||||
<use xlink:href="#bigkey" transform="translate(300,-10) scale(0.95)"/>
|
||||
<path d="M200,300 Q270,340 290,400 Q270,424 246,410 Q226,370 172,350 Z" fill="#121936" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<circle cx="300" cy="404" r="30" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#f3f1ec"/>
|
||||
<g clip-path="url(#panelClip)">
|
||||
<rect x="20" y="20" width="770" height="760" fill="#e6ebf5"/>
|
||||
<path d="M330,20 L640,20 L470,780 L160,780 Z" fill="#d3ddf6"/>
|
||||
<path d="M660,20 L700,20 L530,780 L490,780 Z" fill="#d3ddf6"/>
|
||||
<use xlink:href="#bustPlaced"/>
|
||||
</g>
|
||||
<rect x="20" y="20" width="770" height="760" rx="14" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif" fill="#0d1a4d">
|
||||
<text x="815" y="58" font-size="30" font-weight="700" letter-spacing="3">HEIMDALL</text>
|
||||
<text x="815" y="86" font-size="17" font-weight="600" letter-spacing="1.5">B · THE GREAT KEY</text>
|
||||
</g>
|
||||
<g transform="translate(905,262) scale(0.31)"><use xlink:href="#fullbody"/></g>
|
||||
<text x="930" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a" text-anchor="middle">full body, 2.5 heads</text>
|
||||
|
||||
<rect x="1046" y="110" width="140" height="138" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="110" width="140" height="138" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<rect x="1046" y="262" width="48" height="48" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="262" width="48" height="48" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<text x="1102" y="282" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">silhouette</text>
|
||||
<text x="1102" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">48 px</text>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif">
|
||||
<text x="815" y="575" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">HOOK</text>
|
||||
<text x="815" y="597" font-size="15" fill="#0d1a4d">A key as tall as he is, raised beside his face;</text>
|
||||
<text x="815" y="617" font-size="15" fill="#0d1a4d">its crowned bow rings a Bifrost arc.</text>
|
||||
<text x="815" y="655" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">PALETTE</text>
|
||||
<g font-size="11" fill="#0d1a4d">
|
||||
<rect x="815" y="666" width="52" height="40" fill="#3466ff" stroke="#0d1a4d"/><text x="815" y="722">#3466ff</text><text x="815" y="736">lining</text>
|
||||
<rect x="878" y="666" width="52" height="40" fill="#1b2452" stroke="#0d1a4d"/><text x="878" y="722">#1b2452</text><text x="878" y="736">coat</text>
|
||||
<rect x="941" y="666" width="52" height="40" fill="#0d1a4d" stroke="#0d1a4d"/><text x="941" y="722">#0d1a4d</text><text x="941" y="736">line</text>
|
||||
<rect x="1004" y="666" width="52" height="40" fill="#d8a73a" stroke="#0d1a4d"/><text x="1004" y="722">#d8a73a</text><text x="1004" y="736">gold</text>
|
||||
<rect x="1067" y="666" width="52" height="40" fill="#5a3a2a" stroke="#0d1a4d"/><text x="1067" y="722">#5a3a2a</text><text x="1067" y="736">skin</text>
|
||||
<rect x="1130" y="666" width="52" height="40" fill="#2e211c" stroke="#0d1a4d"/><text x="1130" y="722">#2e211c</text><text x="1130" y="736">hair</text>
|
||||
<rect x="815" y="748" width="367" height="7" fill="url(#prism)"/>
|
||||
<text x="815" y="772">Bifrost accent: a thin prismatic arc inside the key's bow, under 10% of the figure</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 20 KiB |
BIN
cast-designs/proposals/heimdall/heimdall-C.png
Normal file
|
After Width: | Height: | Size: 196 KiB |
261
cast-designs/proposals/heimdall/heimdall-C.svg
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Heimdall, Direction C: The Gate Warden</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-5%" y="-5%" width="110%" height="110%">
|
||||
<feFlood flood-color="#000"/><feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="panelClip"><rect x="20" y="20" width="770" height="760" rx="14"/></clipPath>
|
||||
<linearGradient id="prism" x1="0" y1="0" x2="1" y2="0">
|
||||
<stop offset="0" stop-color="#ff4d6d"/><stop offset=".18" stop-color="#ff4d6d"/>
|
||||
<stop offset=".18" stop-color="#ffb02e"/><stop offset=".34" stop-color="#ffb02e"/>
|
||||
<stop offset=".34" stop-color="#f4e04d"/><stop offset=".5" stop-color="#f4e04d"/>
|
||||
<stop offset=".5" stop-color="#3fd17a"/><stop offset=".66" stop-color="#3fd17a"/>
|
||||
<stop offset=".66" stop-color="#3fc8ff"/><stop offset=".82" stop-color="#3fc8ff"/>
|
||||
<stop offset=".82" stop-color="#9a6bff"/><stop offset="1" stop-color="#9a6bff"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- ===== HEAD (canon: dark skin, messy dark hair lit gold, stern gold eyes) ===== -->
|
||||
<clipPath id="eyeNearClip"><path d="M-112,50 C-92,32 -46,30 -6,46 C-10,82 -28,100 -56,101 C-86,101 -104,86 -112,50 Z"/></clipPath>
|
||||
<clipPath id="eyeFarClip"><path d="M66,48 C86,36 112,38 132,50 C130,80 118,99 98,100 C78,100 68,84 66,48 Z"/></clipPath>
|
||||
<clipPath id="irisNear"><ellipse cx="-54" cy="70" rx="31" ry="36"/></clipPath>
|
||||
<clipPath id="irisFar"><ellipse cx="100" cy="72" rx="22" ry="33"/></clipPath>
|
||||
<clipPath id="faceClip"><path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z"/></clipPath>
|
||||
|
||||
<g id="head" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- back hair: messy wavy locks with curled points -->
|
||||
<path d="M-150,110 C-175,110 -200,95 -218,68 C-196,70 -186,60 -182,45 C-215,40 -245,15 -254,-22 C-232,-12 -214,-20 -205,-35 C-240,-60 -258,-100 -248,-144 C-230,-122 -206,-116 -190,-120 C-200,-170 -180,-214 -138,-236 C-136,-216 -126,-206 -110,-200 C-100,-242 -60,-270 -8,-274 C-20,-258 -18,-242 -10,-228 C20,-262 72,-272 114,-252 C98,-242 90,-232 86,-220 C132,-232 178,-214 204,-178 C184,-178 170,-172 160,-164 C202,-150 228,-110 232,-66 C214,-78 202,-80 190,-78 C212,-50 222,-14 214,24 C202,8 186,2 170,4 L170,60 L-150,110 Z" fill="#2e211c" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-150,110 C-175,110 -200,95 -218,68 C-196,70 -186,60 -182,45 C-170,60 -160,70 -150,70 Z" fill="#1c1411"/>
|
||||
<!-- gold-lit strands -->
|
||||
<path d="M-206,-100 C-190,-160 -130,-206 -60,-222 C-124,-196 -176,-150 -206,-100 Z M-40,-238 C10,-256 74,-250 114,-226 C70,-238 14,-240 -40,-238 Z M144,-160 C182,-140 204,-108 208,-76 C196,-104 176,-132 144,-160 Z M-222,-38 C-212,-70 -192,-92 -168,-98 C-188,-82 -206,-62 -222,-38 Z M-150,-150 C-110,-186 -50,-194 0,-190 C-56,-184 -110,-174 -150,-150 Z" fill="#6e5230"/>
|
||||
<path d="M176,-150 C204,-126 222,-96 226,-70 M196,-60 C210,-30 214,0 212,18" fill="none" stroke="#3466ff" stroke-width="4"/>
|
||||
|
||||
<!-- ear + gold earring -->
|
||||
<path d="M-146,32 C-184,22 -192,92 -146,102 Z" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M-152,48 C-172,48 -172,80 -152,86" fill="none" stroke="#432a1e" stroke-width="3"/>
|
||||
<circle cx="-170" cy="104" r="8" fill="none" stroke="#d8a73a" stroke-width="4"/>
|
||||
<path d="M-170,112 L-170,138 M-170,130 L-162,130 M-170,137 L-163,137" stroke="#d8a73a" stroke-width="4"/>
|
||||
<circle cx="-170" cy="112" r="2" fill="#f5d27a"/>
|
||||
|
||||
<!-- face -->
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z" fill="#5a3a2a"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<path d="M-160,-20 L170,-20 L170,46 Q150,52 144,34 Q128,40 112,50 Q96,22 70,18 Q56,44 38,58 Q22,24 -4,18 Q-20,38 -40,44 Q-58,22 -80,18 Q-96,38 -122,48 Q-130,30 -160,30 Z" fill="#432a1e"/>
|
||||
<path d="M150,20 C150,90 120,160 66,190 L180,200 L180,20 Z" fill="#432a1e"/>
|
||||
<ellipse cx="-80" cy="122" rx="22" ry="9" fill="#74503c"/>
|
||||
</g>
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20" fill="none" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M154,60 C142,128 108,172 70,184" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- near eye: sharp, level, glowing gold -->
|
||||
<path d="M-112,50 C-92,32 -46,30 -6,46 C-10,82 -28,100 -56,101 C-86,101 -104,86 -112,50 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeNearClip)">
|
||||
<path d="M-120,30 L0,30 L0,58 Q-60,44 -120,62 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="-54" cy="70" rx="31" ry="36" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisNear)">
|
||||
<ellipse cx="-54" cy="44" rx="40" ry="24" fill="#8a5a12"/>
|
||||
<ellipse cx="-54" cy="102" rx="26" ry="14" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="-52" cy="72" rx="9" ry="17" fill="#24130a"/>
|
||||
<ellipse cx="-54" cy="70" rx="31" ry="36" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="-66" cy="58" r="8.5" fill="#ffffff"/>
|
||||
<circle cx="-38" cy="88" r="4.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M-124,46 L-136,36 C-104,22 -46,20 -2,40 L4,52 C-44,34 -94,38 -112,60 Z" fill="#0d1a4d"/>
|
||||
<path d="M-94,96 C-80,101 -62,102 -46,100" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<path d="M66,48 C86,36 112,38 132,50 C130,80 118,99 98,100 C78,100 68,84 66,48 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeFarClip)">
|
||||
<path d="M60,30 L140,30 L140,58 Q100,46 60,62 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="100" cy="72" rx="22" ry="33" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisFar)">
|
||||
<ellipse cx="100" cy="48" rx="30" ry="22" fill="#8a5a12"/>
|
||||
<ellipse cx="100" cy="102" rx="18" ry="12" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="102" cy="74" rx="7" ry="15" fill="#24130a"/>
|
||||
<ellipse cx="100" cy="72" rx="22" ry="33" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="92" cy="61" r="6.5" fill="#ffffff"/>
|
||||
<circle cx="109" cy="86" r="3.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M60,52 C82,32 120,32 144,44 L146,36 L140,54 C114,42 86,42 66,58 Z" fill="#0d1a4d"/>
|
||||
<path d="M80,95 C90,99 104,99 114,96" fill="none" stroke="#0d1a4d" stroke-width="2.5"/>
|
||||
|
||||
<!-- messy fringe -->
|
||||
<path d="M168,10 C176,30 172,50 160,62 C156,40 146,26 130,18 C128,32 120,42 108,48 C104,26 90,12 70,8 C66,28 52,46 34,54 C36,30 20,12 -4,6 C-10,24 -24,36 -40,40 C-44,18 -60,6 -80,4 C-88,24 -104,38 -122,46 C-120,26 -128,10 -140,4 C-150,32 -150,62 -158,86 C-176,-60 -60,-130 40,-128 C120,-126 172,-60 168,10 Z" fill="#2e211c"/>
|
||||
<path d="M168,10 C176,30 172,50 160,62 C156,40 146,26 130,18 C128,32 120,42 108,48 C104,26 90,12 70,8 C66,28 52,46 34,54 C36,30 20,12 -4,6 C-10,24 -24,36 -40,40 C-44,18 -60,6 -80,4 C-88,24 -104,38 -122,46 C-120,26 -128,10 -140,4 C-150,32 -150,62 -158,86" fill="none" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-120,-62 C-80,-100 -20,-108 30,-98 C-24,-96 -76,-86 -120,-62 Z M60,-94 C110,-82 142,-50 154,-12 C136,-46 104,-74 60,-94 Z" fill="#6e5230"/>
|
||||
<path d="M-60,-40 C-42,-20 -32,0 -30,18 M92,-50 C102,-30 106,-10 106,8" fill="none" stroke="#1c1411" stroke-width="3"/>
|
||||
<path d="M150,-50 C168,-24 172,0 168,10" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- stern brows over the fringe -->
|
||||
<use xlink:href="#brows"/>
|
||||
|
||||
<!-- nose and a small level frown -->
|
||||
<path d="M114,98 C119,104 118,108 110,110" fill="none" stroke="#2a1810" stroke-width="3"/>
|
||||
<use xlink:href="#mouth"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== COAT (canon: navy high collar lined cobalt, gold trim, key pendant) ===== -->
|
||||
<g id="collarBack" stroke-linejoin="round">
|
||||
<path d="M-150,268 C-176,216 -172,160 -142,118 L-80,196 L150,196 L202,118 C232,164 232,220 212,268 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M150,196 L202,118 C232,164 232,220 212,268 L180,268 C200,230 200,180 196,150 Z" fill="#2443b8"/>
|
||||
</g>
|
||||
<g id="neck"><path d="M18,160 L22,250 L104,250 L100,160 Z" fill="#432a1e" stroke="#0d1a4d" stroke-width="4"/></g>
|
||||
<g id="coatFront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M4,236 L60,340 L118,236 Z" fill="#0d1a4d"/>
|
||||
<path d="M-150,268 C-170,226 -162,180 -142,132 C-112,190 -42,224 6,240 L60,340 L-20,440 L-235,440 C-236,334 -206,282 -150,268 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M212,268 C228,226 224,180 202,132 C174,190 152,224 116,240 L60,340 L140,440 L315,440 C310,334 284,282 212,268 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M202,132 C174,190 152,224 116,240 L60,340 L84,370 C120,300 176,250 214,206 Z" fill="#121936"/>
|
||||
<path d="M-136,150 C-110,198 -46,228 0,244 L56,344 M196,150 C170,198 150,226 120,244 L64,344" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
<!-- shoulder plate: cobalt panel, gold edge, cobalt gem -->
|
||||
<path d="M-235,440 C-236,360 -214,300 -168,280 C-140,300 -128,340 -130,380 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-212,350 C-206,316 -190,296 -168,286" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
<path d="M-180,330 L-170,316 L-160,330 L-170,344 Z" fill="#7c9bff" stroke="#0d1a4d" stroke-width="3"/>
|
||||
<path d="M315,440 C312,370 296,316 250,288 C232,320 236,370 246,420 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M280,340 C272,316 262,302 252,294" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="pendant" stroke-linejoin="round">
|
||||
<path d="M60,268 L80,292 L60,316 L40,292 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M60,284 L67,292 L60,300 L53,292 Z" fill="#0d1a4d"/>
|
||||
<path d="M56,316 L56,356 L60,362 L64,356 L64,316 Z M64,340 L76,340 L76,348 L64,348 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
<circle cx="52" cy="282" r="3" fill="#f5d27a"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL-BODY BASE (2.5 heads): long coat flaring into cape tails ===== -->
|
||||
<g id="fbLegs" stroke-linejoin="round">
|
||||
<path d="M-34,600 L-40,750 L14,750 L18,600 Z M62,600 L68,750 L122,750 L116,600 Z" fill="#0d1a4d"/>
|
||||
<path d="M-66,744 Q-66,712 -40,712 L16,712 Q24,746 22,790 L-74,790 Q-86,770 -66,744 Z M52,744 Q50,712 70,712 L126,712 Q150,746 156,790 L52,790 Q42,770 52,744 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-62,724 L18,724 M56,724 L130,724" stroke="#d8a73a" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="fbCoat" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- cape tails flaring behind -->
|
||||
<path d="M-130,300 C-210,420 -250,560 -260,690 L-200,660 L-170,700 L-120,600 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M200,300 C290,420 330,560 340,680 L280,650 L250,700 L190,600 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-128,262 L208,262 C240,400 258,520 262,640 Q160,668 60,640 Q-50,668 -160,640 C-158,520 -150,400 -128,262 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M60,340 L60,640" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-160,640 Q-50,668 60,640 Q160,668 262,640" fill="none" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-120,450 L240,450" stroke="#0d1a4d" stroke-width="22"/>
|
||||
<path d="M-120,450 L240,450" stroke="#121936" stroke-width="14"/>
|
||||
<circle cx="60" cy="450" r="16" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M150,460 L150,520 M150,520 L162,520 M150,508 L160,508" stroke="#d8a73a" stroke-width="6"/>
|
||||
<circle cx="150" cy="464" r="8" fill="none" stroke="#d8a73a" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
|
||||
<!-- expression: Revoked, brows pulled down, a hard frown -->
|
||||
<g id="brows" fill="none" stroke="#0d1a4d" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M-122,36 L4,36 L4,68 C-36,58 -84,52 -116,58 Z" fill="#432a1e" stroke="none"/>
|
||||
<path d="M62,36 L144,36 L142,54 C116,54 88,58 64,68 Z" fill="#432a1e" stroke="none"/>
|
||||
<path d="M-128,52 C-90,50 -40,56 4,70" stroke-width="9"/><path d="M60,70 C88,58 116,52 146,50" stroke-width="8"/><path d="M-114,10 C-86,10 -50,20 -18,40" stroke-width="7"/><path d="M60,40 C82,20 110,12 138,16" stroke-width="6"/></g>
|
||||
<g id="mouth"><path d="M58,150 C68,142 82,142 92,151" fill="none" stroke="#0d1a4d" stroke-width="3.6" stroke-linecap="round"/></g>
|
||||
<g id="gate" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- circuit tracery on the gate leaves -->
|
||||
<path d="M-220,470 L-220,40 L-180,0 L-180,-180 M-140,470 L-140,240 L-100,200 M-60,-300 L-60,-200 L-100,-160 L-100,-80 M80,-300 L80,-210 L120,-170 L120,-60 M180,470 L180,260 L220,220 L220,-170 M150,-330 L150,-280" fill="none" stroke="#d8a73a" stroke-width="5" opacity=".8"/>
|
||||
<circle cx="-180" cy="-180" r="10" fill="#e6ebf5" stroke="#d8a73a" stroke-width="5"/>
|
||||
<circle cx="-100" cy="200" r="10" fill="#e6ebf5" stroke="#d8a73a" stroke-width="5"/>
|
||||
<circle cx="220" cy="-170" r="10" fill="#e6ebf5" stroke="#d8a73a" stroke-width="5"/>
|
||||
<circle cx="120" cy="-60" r="10" fill="#e6ebf5" stroke="#d8a73a" stroke-width="5"/>
|
||||
<!-- frame -->
|
||||
<path d="M-300,470 L-300,-150 C-300,-330 -160,-420 10,-420 C180,-420 320,-330 320,-150 L320,470" fill="none" stroke="#0d1a4d" stroke-width="52"/>
|
||||
<path d="M-300,470 L-300,-150 C-300,-330 -160,-420 10,-420 C180,-420 320,-330 320,-150 L320,470" fill="none" stroke="#d8a73a" stroke-width="38"/>
|
||||
<path d="M-300,-150 C-300,-330 -160,-420 10,-420" fill="none" stroke="#f5d27a" stroke-width="8" transform="translate(-6,-6)"/>
|
||||
<path d="M320,-150 L320,470" fill="none" stroke="#a5761c" stroke-width="14" transform="translate(8,0)"/>
|
||||
<!-- Bifrost: a thin bridge of light along the inner arch -->
|
||||
<path d="M-268,-150 C-268,-310 -140,-388 10,-388 C160,-388 288,-310 288,-150" fill="none" stroke="url(#prism)" stroke-width="7"/>
|
||||
<!-- keyhole medallion -->
|
||||
<circle cx="10" cy="-404" r="44" fill="#d8a73a" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<circle cx="10" cy="-404" r="32" fill="none" stroke="#a5761c" stroke-width="4"/>
|
||||
<path d="M10,-424 A12,12 0 0 1 18,-403 L24,-382 L-4,-382 L2,-403 A12,12 0 0 1 10,-424 Z" fill="#0d1a4d"/>
|
||||
<!-- spired pillars -->
|
||||
<g>
|
||||
<path d="M-392,470 L-392,-200 L-366,-246 L-354,-330 L-342,-246 L-316,-200 L-316,470 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-354,-330 L-346,-360 L-354,-392 L-362,-360 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-392,-200 L-316,-200 M-392,-160 L-316,-160" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M-354,-120 L-342,-100 L-354,-80 L-366,-100 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="3"/>
|
||||
<path d="M-330,-190 L-330,470" stroke="#121936" stroke-width="20"/>
|
||||
<path d="M336,470 L336,-200 L362,-246 L374,-330 L386,-246 L412,-200 L412,470 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M374,-330 L382,-360 L374,-392 L366,-360 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M336,-200 L412,-200 M336,-160 L412,-160" stroke="#d8a73a" stroke-width="6"/>
|
||||
<path d="M374,-120 L386,-100 L374,-80 L362,-100 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="3"/>
|
||||
<path d="M398,-190 L398,470" stroke="#121936" stroke-width="20"/>
|
||||
</g>
|
||||
</g>
|
||||
<!-- palm raised toward the text box: revoked -->
|
||||
<g id="palmHand" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M220,460 L214,250 L318,236 L360,460 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M292,240 L318,236 L360,460 L322,460 Z" fill="#121936"/>
|
||||
<path d="M206,244 L322,228 L326,264 L210,280 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M208,262 L324,246" stroke="#d8a73a" stroke-width="4"/>
|
||||
<path d="M222,240 C214,206 216,170 226,150 L230,96 Q238,84 246,96 L248,140 L254,80 Q264,68 272,82 L270,140 L280,88 Q290,78 296,92 L290,148 L304,110 Q314,102 318,116 L306,180 C306,214 300,232 292,236 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M222,200 C202,186 194,166 200,154 C212,150 222,160 230,176" fill="#1b2452" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M244,170 C256,184 274,186 288,176" fill="none" stroke="#3466ff" stroke-width="3.5"/>
|
||||
</g>
|
||||
|
||||
<g id="bust" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#gate"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<use xlink:href="#coatFront"/>
|
||||
<use xlink:href="#pendant"/>
|
||||
<use xlink:href="#palmHand"/>
|
||||
</g>
|
||||
<g id="bustPlaced"><g transform="translate(398,432) scale(0.86)"><use xlink:href="#bust"/></g></g>
|
||||
<g id="fullbody" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#gate" transform="translate(30,330) scale(1.0,1.0)"/>
|
||||
<use xlink:href="#fbLegs"/>
|
||||
<use xlink:href="#fbCoat"/>
|
||||
<path d="M-128,300 Q-186,400 -184,500 Q-158,520 -132,500 Q-124,410 -96,340 Z" fill="#1b2452" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M-184,486 L-130,486" stroke="#3466ff" stroke-width="12"/>
|
||||
<circle cx="-158" cy="522" r="28" fill="#1b2452" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<path d="M4,236 L60,340 L118,236 Z" fill="#0d1a4d"/>
|
||||
<path d="M-136,150 C-110,198 -46,228 4,240 L60,340 M196,150 C170,198 150,226 118,240 L60,340" fill="none" stroke="#d8a73a" stroke-width="6"/>
|
||||
<use xlink:href="#pendant"/>
|
||||
<path d="M200,300 Q262,300 290,250 Q300,226 280,214 Q250,262 172,340 Z" fill="#121936" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<use xlink:href="#palmHand" transform="translate(196,90) scale(0.62) translate(-260,-200)"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#f3f1ec"/>
|
||||
<g clip-path="url(#panelClip)">
|
||||
<rect x="20" y="20" width="770" height="760" fill="#e6ebf5"/>
|
||||
<path d="M330,20 L640,20 L470,780 L160,780 Z" fill="#d3ddf6"/>
|
||||
<path d="M660,20 L700,20 L530,780 L490,780 Z" fill="#d3ddf6"/>
|
||||
<use xlink:href="#bustPlaced"/>
|
||||
</g>
|
||||
<rect x="20" y="20" width="770" height="760" rx="14" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif" fill="#0d1a4d">
|
||||
<text x="815" y="58" font-size="30" font-weight="700" letter-spacing="3">HEIMDALL</text>
|
||||
<text x="815" y="86" font-size="17" font-weight="600" letter-spacing="1.5">C · THE GATE WARDEN</text>
|
||||
</g>
|
||||
<g transform="translate(915,250) scale(0.27)"><use xlink:href="#fullbody"/></g>
|
||||
<text x="930" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a" text-anchor="middle">full body, 2.5 heads</text>
|
||||
|
||||
<rect x="1046" y="110" width="140" height="138" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="110" width="140" height="138" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<rect x="1046" y="262" width="48" height="48" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="262" width="48" height="48" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<text x="1102" y="282" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">silhouette</text>
|
||||
<text x="1102" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">48 px</text>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif">
|
||||
<text x="815" y="575" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">HOOK</text>
|
||||
<text x="815" y="597" font-size="15" fill="#0d1a4d">A glowing gold gate arches behind him, spired</text>
|
||||
<text x="815" y="617" font-size="15" fill="#0d1a4d">pillars at his sides; his palm says not yet.</text>
|
||||
<text x="815" y="655" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">PALETTE</text>
|
||||
<g font-size="11" fill="#0d1a4d">
|
||||
<rect x="815" y="666" width="52" height="40" fill="#3466ff" stroke="#0d1a4d"/><text x="815" y="722">#3466ff</text><text x="815" y="736">lining</text>
|
||||
<rect x="878" y="666" width="52" height="40" fill="#1b2452" stroke="#0d1a4d"/><text x="878" y="722">#1b2452</text><text x="878" y="736">coat</text>
|
||||
<rect x="941" y="666" width="52" height="40" fill="#0d1a4d" stroke="#0d1a4d"/><text x="941" y="722">#0d1a4d</text><text x="941" y="736">line</text>
|
||||
<rect x="1004" y="666" width="52" height="40" fill="#d8a73a" stroke="#0d1a4d"/><text x="1004" y="722">#d8a73a</text><text x="1004" y="736">gold</text>
|
||||
<rect x="1067" y="666" width="52" height="40" fill="#5a3a2a" stroke="#0d1a4d"/><text x="1067" y="722">#5a3a2a</text><text x="1067" y="736">skin</text>
|
||||
<rect x="1130" y="666" width="52" height="40" fill="#2e211c" stroke="#0d1a4d"/><text x="1130" y="722">#2e211c</text><text x="1130" y="736">hair</text>
|
||||
<rect x="815" y="748" width="367" height="7" fill="url(#prism)"/>
|
||||
<text x="815" y="772">Bifrost accent: a thin prismatic line inside the arch, under 10% of the figure</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 21 KiB |
60
cast-designs/proposals/heimdall/heimdall-notes.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Heimdall: SVG proposal notes, round 1
|
||||
|
||||
## Canon comes first
|
||||
|
||||
Heimdall already has a design. The established sheet is at
|
||||
`F:\Projects\gamecult-site\GameCult\static\interactive\cotsc-praxis\character-sheets\heimdall-sheet.png`,
|
||||
with sprites under `sprites\heimdall\`. It shows dark skin, messy dark hair lit
|
||||
gold, glowing gold eyes, a stern face, a navy high-collared coat with cobalt
|
||||
lining and gold trim, a gold key pendant, golden keys, a glowing golden gate, and
|
||||
a bridge he guards. The brief's three directions (horn, white-haired key halo,
|
||||
finned helmet) invented a new character. They were dropped as reinventions. A, B
|
||||
and C are now three takes on the canon design. They share one head and one coat,
|
||||
and each puts weight on a different hook: the horn, the key, the gate.
|
||||
|
||||
Superseded sheets, kept for reference:
|
||||
- `heimdall-old-A.svg`/`.png`: the brief's Horn Bearer, with spiky violet-black hair, a fur ruff and an ivory horn. Finished.
|
||||
- `heimdall-old-B.svg`/`.png`: the brief's Keyring Halo, with white hair and an iron ring of twelve keys. A first-pass draft that was never polished. The hand reads as a peace sign.
|
||||
|
||||
Bifrost: the operator said "Heimdall guards Bifrost too". Each direction carries
|
||||
a thin prismatic line, kept under 10 percent of the figure, so it never turns
|
||||
into a rainbow costume. On A it runs along the horn's outer arc, on B along the
|
||||
inside of the key's bow, and on C along the inner edge of the gate arch.
|
||||
|
||||
Shared canon read: palette is cobalt `#3466ff` (lining, key colour), navy
|
||||
`#1b2452` (coat), line `#0d1a4d`, gold `#d8a73a` (eyes, trim, keys), skin
|
||||
`#5a3a2a`, hair `#2e211c`. Eyes are sharp almonds with a gold iris, a dark upper
|
||||
band, a bright lower crescent and two highlights. A key-shaped gold earring sits
|
||||
on the near ear. Gold-brown slivers in the hair stand in for the canon's
|
||||
gold-lit strands. A cobalt rim light runs on the side away from the light.
|
||||
|
||||
## A: The Horn Bearer (expression: On watch)
|
||||
|
||||
- The design puts an ivory Gjallarhorn with gold bands over his head as a crescent, from his far shoulder to above the near ear, with a strap across the chest. The face is level and neutral.
|
||||
- Changes after looking: the first horn drew as a shepherd's crook, with a vertical bar and a hook. I rebuilt it as a true crescent whose bell ends above the near ear. I scaled the bust down so the arc reads, clipped the prismatic line and rim light inside the horn, and turned the hair highlights from strokes, which read as stripes, into tapered slivers.
|
||||
- Silhouette: the strongest of the three. At 48 px the crescent alone names him.
|
||||
- Round 2: ivory is the one colour not in the canon. Try the horn in navy and gold so the palette stays canon, and check that the silhouette still carries it. The strap still reads a little like a staff.
|
||||
|
||||
## B: The Great Key (expression: Granted)
|
||||
|
||||
- The design follows the canon's raised-key pose. A gold key taller than his head is held upright beside his face, toward the text box. It has a crowned bow (three spikes) and a diamond ward, and a gloved fist grips it below the bit. He gives a small smile with a gold tooth glinting, the only direction that uses the myth's golden teeth.
|
||||
- Changes after looking: at first the fist covered the bit, so the key read as a sceptre. I extended the shaft so the hand grips below the bit, which now shows clearly above the fist. I also scaled the key up 15 percent because the 48 px silhouette was too thin.
|
||||
- Silhouette: head plus a ringed staff. It reads at 128 px. At 48 px it is the weakest of the three, because the key is still a thin line.
|
||||
- Round 2: make the bit bigger and the bow wider, or tilt the key 20 degrees so it crosses the frame. The fist is a blob, so draw clear knuckles.
|
||||
|
||||
## C: The Gate Warden (expression: Revoked)
|
||||
|
||||
- The design sets a gold gate arch behind him, with a keyhole medallion at the crown, faint circuit tracery and spired navy pillars with cobalt gems on both sides. A gloved palm is raised toward the text box. The brows and lids are pulled down into a hard frown.
|
||||
- Changes after looking: a pale glow band inside the arch read as a second, muddy frame and greyed the silhouette, so I removed it. The brows disappeared into the dark fringe, so the revoked look now comes from slanted lowered lids. I also dropped a stray gold dot from the palm.
|
||||
- Silhouette: an arched doorway with two spires, a figure inside and a raised hand. It is nameable at 48 px, but the gate is the read, not him.
|
||||
- Round 2: the gate is scenery more than a worn hook. Test a version where the arch is smaller and sits as a halo-crown just behind the head, so that the character, not the backdrop, carries the shape. The full-body gate is cramped, so give it its own width.
|
||||
|
||||
## Strongest
|
||||
|
||||
A has the best silhouette and C shows the canon best. A canon-palette horn
|
||||
(round 2 on A) is the likely winner. B's gold-tooth smile should carry into the
|
||||
portrait set's "Granted" line whichever direction wins.
|
||||
|
||||
Sheets are self-contained SVG, built from fragments (one shared head and coat,
|
||||
plus one hook file per direction) by a small assembler in the session scratchpad.
|
||||
The SVGs are the deliverable. Edit them directly in round 2.
|
||||
BIN
cast-designs/proposals/heimdall/heimdall-old-A.png
Normal file
|
After Width: | Height: | Size: 194 KiB |
229
cast-designs/proposals/heimdall/heimdall-old-A.svg
Normal file
|
|
@ -0,0 +1,229 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Heimdall (superseded, pre-canon), Direction A: The Horn Bearer</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-5%" y="-5%" width="110%" height="110%">
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="panelClip"><rect x="20" y="20" width="770" height="760" rx="14"/></clipPath>
|
||||
<linearGradient id="prism" x1="0" y1="1" x2="1" y2="0">
|
||||
<stop offset="0" stop-color="#ff4d6d"/><stop offset=".18" stop-color="#ff4d6d"/>
|
||||
<stop offset=".18" stop-color="#ffb02e"/><stop offset=".34" stop-color="#ffb02e"/>
|
||||
<stop offset=".34" stop-color="#f4e04d"/><stop offset=".5" stop-color="#f4e04d"/>
|
||||
<stop offset=".5" stop-color="#3fd17a"/><stop offset=".66" stop-color="#3fd17a"/>
|
||||
<stop offset=".66" stop-color="#3fc8ff"/><stop offset=".82" stop-color="#3fc8ff"/>
|
||||
<stop offset=".82" stop-color="#9a6bff"/><stop offset="1" stop-color="#9a6bff"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- ========== HORN (slung behind, his left shoulder up over the head) ========== -->
|
||||
<clipPath id="hornClip"><path d="M245,248 C350,80 360,-170 250,-290 C150,-400 -80,-412 -210,-336 C-262,-306 -300,-262 -320,-212 L-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238 Z"/></clipPath>
|
||||
<g id="horn" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M245,248 C350,80 360,-170 250,-290 C150,-400 -80,-412 -210,-336 C-262,-306 -300,-262 -320,-212 L-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238 Z" fill="#e9eef8"/>
|
||||
<g clip-path="url(#hornClip)">
|
||||
<path d="M-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238" fill="none" stroke="#b8c3da" stroke-width="44"/>
|
||||
<g fill="none">
|
||||
<path d="M210,92 L390,122" stroke="#0d1a4d" stroke-width="24"/><path d="M210,92 L390,122" stroke="#d8a73a" stroke-width="17"/>
|
||||
<path d="M240,-112 L410,-176" stroke="#0d1a4d" stroke-width="24"/><path d="M240,-112 L410,-176" stroke="#d8a73a" stroke-width="17"/>
|
||||
<path d="M38,-430 L48,-280" stroke="#0d1a4d" stroke-width="26"/><path d="M38,-430 L48,-280" stroke="#d8a73a" stroke-width="19"/>
|
||||
<path d="M-262,-372 L-166,-250" stroke="#0d1a4d" stroke-width="32"/><path d="M-262,-372 L-166,-250" stroke="#d8a73a" stroke-width="25"/>
|
||||
<path d="M318,104 L352,110 M330,-140 L362,-152 M42,-392 L43,-366 M-238,-344 L-222,-324" stroke="#f5d27a" stroke-width="5"/>
|
||||
</g>
|
||||
<path d="M-120,-372 C-20,-396 160,-380 250,-280" fill="none" stroke="#ffffff" stroke-width="9"/>
|
||||
</g>
|
||||
<!-- Bifrost: a thin prismatic line inset along the outer arc -->
|
||||
<path clip-path="url(#hornClip)" d="M318,40 C340,-120 320,-210 238,-292 C150,-380 -70,-392 -196,-322" fill="none" stroke="url(#prism)" stroke-width="7"/>
|
||||
<!-- bell mouth -->
|
||||
<path d="M-320,-212 C-326,-160 -236,-140 -215,-175 C-232,-214 -296,-244 -320,-212 Z" fill="#1d2a6a"/>
|
||||
<path d="M-320,-212 C-326,-160 -236,-140 -215,-175" fill="none" stroke="#d8a73a" stroke-width="9"/>
|
||||
<path d="M245,248 C350,80 360,-170 250,-290 C150,-400 -80,-412 -210,-336 C-262,-306 -300,-262 -320,-212 L-215,-175 C-196,-236 -124,-292 0,-305 C140,-312 240,-232 265,-122 C285,-22 270,120 212,238 Z" fill="none" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path clip-path="url(#hornClip)" d="M352,-20 C362,-150 330,-240 268,-298" fill="none" stroke="#3466ff" stroke-width="12"/>
|
||||
</g>
|
||||
|
||||
<!-- ========== HEAD ========== -->
|
||||
<clipPath id="eyeNearClip"><path d="M-112,52 C-92,30 -45,24 -4,38 C-8,78 -25,100 -55,102 C-85,102 -104,86 -112,52 Z"/></clipPath>
|
||||
<clipPath id="eyeFarClip"><path d="M64,42 C84,28 112,30 132,46 C130,80 118,100 98,101 C78,101 66,84 64,42 Z"/></clipPath>
|
||||
<clipPath id="irisNear"><ellipse cx="-52" cy="68" rx="31" ry="38"/></clipPath>
|
||||
<clipPath id="irisFar"><ellipse cx="100" cy="69" rx="22" ry="36"/></clipPath>
|
||||
<clipPath id="faceClip"><path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z"/></clipPath>
|
||||
|
||||
<g id="head" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- back hair mass: short spikes, violet-black -->
|
||||
<path id="hairBack" d="M-150,100 Q-178,78 -214,66 Q-188,44 -184,22 Q-222,4 -250,-34 Q-206,-42 -194,-62 Q-228,-110 -232,-152 Q-190,-138 -164,-142 Q-168,-194 -142,-244 Q-112,-204 -82,-198 Q-62,-244 -18,-274 Q-8,-224 22,-208 Q64,-244 124,-250 Q98,-208 112,-188 Q162,-204 210,-190 Q174,-162 178,-136 Q218,-122 244,-90 Q198,-86 188,-60 Q208,-38 216,-2 Q186,-12 166,4 L170,60 L-150,100 Z" fill="#2b1f3d" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<!-- hair shadow inside the mass behind the face -->
|
||||
<path d="M-150,100 Q-178,78 -214,66 Q-188,44 -184,22 Q-170,40 -150,40 Z" fill="#1b1329"/>
|
||||
<!-- crown highlight band -->
|
||||
<path d="M-150,-120 Q-80,-178 10,-176 Q90,-174 150,-128 Q90,-150 60,-140 L70,-160 L30,-144 Q-30,-160 -80,-140 L-70,-160 L-110,-130 Z" fill="#4a3a68"/>
|
||||
|
||||
<!-- ear (near side) -->
|
||||
<path d="M-146,32 C-184,22 -192,92 -146,102 Z" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M-152,48 C-172,48 -172,80 -152,86" fill="none" stroke="#432a1e" stroke-width="3"/>
|
||||
<!-- gold ear cuff -->
|
||||
<path d="M-178,58 L-186,66" stroke="#d8a73a" stroke-width="7"/>
|
||||
|
||||
<!-- face -->
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z" fill="#5a3a2a"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<!-- shadow cast by the bangs, and the far-side cheek shadow -->
|
||||
<path d="M-160,-20 L170,-20 L170,40 Q150,40 140,30 Q120,22 100,30 Q70,18 40,40 Q10,22 -30,22 Q-70,10 -110,40 Q-130,20 -160,30 Z" fill="#432a1e"/>
|
||||
<path d="M150,20 C150,90 120,160 66,190 L180,200 L180,20 Z" fill="#432a1e"/>
|
||||
<!-- cheek highlight -->
|
||||
<ellipse cx="-80" cy="118" rx="22" ry="10" fill="#74503c"/>
|
||||
</g>
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20" fill="none" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M154,60 C142,128 108,172 70,184" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- near eye: sharp almond, calm half-lid -->
|
||||
<path d="M-112,52 C-92,30 -45,24 -4,38 C-8,78 -25,100 -55,102 C-85,102 -104,86 -112,52 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeNearClip)">
|
||||
<path d="M-120,30 L0,30 L0,52 Q-60,40 -120,56 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="-52" cy="68" rx="31" ry="38" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisNear)">
|
||||
<ellipse cx="-52" cy="40" rx="40" ry="26" fill="#8a5a12"/>
|
||||
<ellipse cx="-52" cy="100" rx="24" ry="12" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="-50" cy="70" rx="11" ry="19" fill="#24130a"/>
|
||||
<ellipse cx="-52" cy="68" rx="31" ry="38" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="-64" cy="54" r="9" fill="#ffffff"/>
|
||||
<circle cx="-37" cy="86" r="4.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M-124,48 L-134,38 C-104,16 -46,10 -2,30 L3,40 C-42,24 -94,30 -112,58 Z" fill="#0d1a4d"/>
|
||||
<path d="M-96,96 C-80,103 -62,104 -46,102" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<path d="M64,42 C84,28 112,30 132,46 C130,80 118,100 98,101 C78,101 66,84 64,42 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeFarClip)">
|
||||
<path d="M60,30 L140,30 L140,52 Q100,40 60,54 Z" fill="#c9d0e8"/>
|
||||
<ellipse cx="100" cy="69" rx="22" ry="36" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisFar)">
|
||||
<ellipse cx="100" cy="42" rx="30" ry="25" fill="#8a5a12"/>
|
||||
<ellipse cx="100" cy="100" rx="17" ry="11" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="102" cy="71" rx="8" ry="17" fill="#24130a"/>
|
||||
<ellipse cx="100" cy="69" rx="22" ry="36" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="92" cy="56" r="7" fill="#ffffff"/>
|
||||
<circle cx="109" cy="85" r="3.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M58,44 C80,20 118,22 142,40 L144,34 L136,50 C114,34 84,34 64,50 Z" fill="#0d1a4d"/>
|
||||
<path d="M78,96 C90,101 104,101 114,97" fill="none" stroke="#0d1a4d" stroke-width="2.5"/>
|
||||
|
||||
<!-- front bangs: spiky locks over the forehead -->
|
||||
<path d="M166,4 Q174,30 160,50 Q144,14 112,10 Q108,22 96,26 Q82,4 56,2 Q50,26 30,44 Q22,8 -8,0 Q-22,16 -42,24 Q-60,-4 -86,-4 Q-104,16 -126,38 Q-126,6 -140,-2 Q-152,30 -152,64 Q-170,-60 -60,-120 Q60,-150 166,4 Z" fill="#2b1f3d"/>
|
||||
<path d="M166,4 Q174,30 160,50 Q144,14 112,10 Q108,22 96,26 Q82,4 56,2 Q50,26 30,44 Q22,8 -8,0 Q-22,16 -42,24 Q-60,-4 -86,-4 Q-104,16 -126,38 Q-126,6 -140,-2 Q-152,30 -152,64" fill="none" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-100,-60 Q-40,-96 30,-90 Q-20,-80 -60,-52 Z M60,-80 Q110,-70 140,-30 Q100,-56 70,-60 Z" fill="#4a3a68"/>
|
||||
<path d="M150,-40 Q166,-10 166,4" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- brows, drawn over the bangs -->
|
||||
<path d="M-104,8 C-84,-2 -54,-4 -28,4" fill="none" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
<path d="M70,8 C92,0 116,2 134,12" fill="none" stroke="#0d1a4d" stroke-width="4"/>
|
||||
|
||||
<!-- nose and mouth: a slight smile with the gold tooth -->
|
||||
<path d="M114,96 C119,102 118,106 110,108" fill="none" stroke="#2a1810" stroke-width="3"/>
|
||||
<path d="M46,138 C60,150 86,152 104,134 C98,154 64,160 46,138 Z" fill="#2a1018"/>
|
||||
<path d="M66,146 L86,145 L84,156 L69,156 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="1.5"/>
|
||||
<path d="M46,138 C60,150 86,152 104,134" fill="none" stroke="#0d1a4d" stroke-width="3.2"/>
|
||||
<path d="M98,150 L101,141 L104,150 L113,153 L104,156 L101,165 L98,156 L89,153 Z" fill="#f5d27a"/>
|
||||
</g>
|
||||
|
||||
<!-- ========== SHOULDERS: cobalt cloak, fur ruff, gold clasp ========== -->
|
||||
<g id="neck">
|
||||
<path d="M18,160 L22,250 L104,250 L100,160 Z" fill="#432a1e" stroke="#0d1a4d" stroke-width="4"/>
|
||||
</g>
|
||||
<g id="ruff" stroke-linejoin="round">
|
||||
<path d="M-178,268 Q-190,240 -160,228 Q-150,200 -116,206 Q-100,182 -66,196 Q-44,180 -20,200 Q4,214 30,212 Q60,216 86,206 Q116,190 138,206 Q170,196 184,216 Q216,212 222,240 Q248,252 238,282 Q226,312 196,306 Q178,334 146,320 Q120,344 90,326 Q64,346 38,328 Q8,346 -18,326 Q-46,342 -70,322 Q-100,336 -122,314 Q-156,322 -166,296 Q-196,290 -178,268 Z" fill="#e9eef8" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-150,300 Q-120,312 -100,300 M-60,316 Q-30,326 -8,314 M44,322 Q76,332 96,318 M150,314 Q180,312 200,296" fill="none" stroke="#b8c3da" stroke-width="6"/>
|
||||
<path d="M-120,226 Q-90,214 -66,222 M120,222 Q150,212 176,230" fill="none" stroke="#ffffff" stroke-width="5"/>
|
||||
</g>
|
||||
<g id="clasp">
|
||||
<circle cx="44" cy="330" r="24" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M30,338 A16,16 0 0 1 58,322 A12,12 0 0 0 30,338 Z" fill="#a5761c"/>
|
||||
<circle cx="36" cy="322" r="5" fill="#f5d27a"/>
|
||||
</g>
|
||||
|
||||
<g id="bust" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#horn"/>
|
||||
<!-- cloak body -->
|
||||
<path d="M-215,420 C-222,320 -178,262 -80,250 L180,250 C262,262 296,330 300,420 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M150,252 C230,270 262,330 266,420 L300,420 C296,330 262,262 180,250 Z" fill="#2443b8"/>
|
||||
<!-- horn strap across the chest -->
|
||||
<path d="M232,268 L-120,420" stroke="#0d1a4d" stroke-width="30"/>
|
||||
<path d="M232,268 L-120,420" stroke="#1d2a6a" stroke-width="22"/>
|
||||
<path d="M232,268 L-120,420" stroke="#d8a73a" stroke-width="3" stroke-dasharray="10 10"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<use xlink:href="#ruff"/>
|
||||
<use xlink:href="#clasp"/>
|
||||
<path d="M-200,350 C-196,300 -176,280 -150,268" fill="none" stroke="#7c9bff" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="bustPlaced"><g transform="translate(400,398) scale(0.96)"><use xlink:href="#bust"/></g></g>
|
||||
|
||||
<!-- ========== FULL BODY, 2.5 heads ========== -->
|
||||
<g id="fullbody" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#horn"/>
|
||||
<!-- legs and boots -->
|
||||
<path d="M-40,600 L-48,760 L10,760 L14,600 Z M60,600 L66,760 L124,760 L118,600 Z" fill="#1d2a6a" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-70,740 Q-72,700 -46,700 L14,700 Q22,740 18,790 L-76,790 Q-90,770 -70,740 Z M52,740 Q50,700 70,700 L128,700 Q150,740 156,790 L50,790 Q42,770 52,740 Z" fill="#e9eef8" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-76,790 L18,790 M50,790 L156,790" stroke="#d8a73a" stroke-width="8"/>
|
||||
<!-- cloak, A-line to the knee -->
|
||||
<path d="M-120,262 L210,262 C260,400 290,520 300,640 Q180,676 50,664 Q-90,676 -190,640 C-178,520 -160,400 -120,262 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M150,262 C200,400 236,520 250,650 L300,640 C290,520 260,400 210,262 Z" fill="#2443b8"/>
|
||||
<path d="M44,330 L44,664" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<!-- arms -->
|
||||
<path d="M-120,300 Q-176,390 -176,480 Q-150,500 -124,480 Q-118,400 -90,330 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<circle cx="-150" cy="500" r="28" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M190,300 Q250,380 252,470 Q228,492 202,474 Q196,400 166,330 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<circle cx="228" cy="492" r="26" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<use xlink:href="#ruff"/>
|
||||
<use xlink:href="#clasp"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<!-- sheet -->
|
||||
<rect width="1200" height="800" fill="#f3f1ec"/>
|
||||
|
||||
<!-- bust panel -->
|
||||
<g clip-path="url(#panelClip)">
|
||||
<rect x="20" y="20" width="770" height="760" fill="#e6ebf5"/>
|
||||
<path d="M330,20 L640,20 L470,780 L160,780 Z" fill="#d3ddf6"/>
|
||||
<path d="M660,20 L700,20 L530,780 L490,780 Z" fill="#d3ddf6"/>
|
||||
<use xlink:href="#bustPlaced"/>
|
||||
</g>
|
||||
<rect x="20" y="20" width="770" height="760" rx="14" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<!-- right column -->
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif" fill="#0d1a4d">
|
||||
<text x="815" y="58" font-size="30" font-weight="700" letter-spacing="3">HEIMDALL</text>
|
||||
<text x="815" y="86" font-size="17" font-weight="600" letter-spacing="1.5">A · THE HORN BEARER</text>
|
||||
</g>
|
||||
|
||||
<g transform="translate(920,250) scale(0.33)"><use xlink:href="#fullbody"/></g>
|
||||
<text x="930" y="530" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a" text-anchor="middle">full body, 2.5 heads</text>
|
||||
|
||||
<!-- silhouette check -->
|
||||
<rect x="1046" y="110" width="140" height="138" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="110" width="140" height="138" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<rect x="1046" y="262" width="48" height="48" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="262" width="48" height="48" viewBox="20 20 770 760" preserveAspectRatio="xMidYMid meet"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<text x="1102" y="282" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">silhouette</text>
|
||||
<text x="1102" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">48 px</text>
|
||||
|
||||
<!-- hook and palette -->
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif">
|
||||
<text x="815" y="575" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">HOOK</text>
|
||||
<text x="815" y="597" font-size="15" fill="#0d1a4d">A huge ivory war horn arcs over his head</text>
|
||||
<text x="815" y="617" font-size="15" fill="#0d1a4d">like a crescent moon, a Bifrost line on its rim.</text>
|
||||
<text x="815" y="655" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">PALETTE</text>
|
||||
<g font-size="11" fill="#0d1a4d">
|
||||
<rect x="815" y="666" width="52" height="40" fill="#3466ff" stroke="#0d1a4d"/><text x="815" y="722">#3466ff</text><text x="815" y="736">cloak</text>
|
||||
<rect x="878" y="666" width="52" height="40" fill="#0d1a4d" stroke="#0d1a4d"/><text x="878" y="722">#0d1a4d</text><text x="878" y="736">line</text>
|
||||
<rect x="941" y="666" width="52" height="40" fill="#e9eef8" stroke="#0d1a4d"/><text x="941" y="722">#e9eef8</text><text x="941" y="736">horn</text>
|
||||
<rect x="1004" y="666" width="52" height="40" fill="#d8a73a" stroke="#0d1a4d"/><text x="1004" y="722">#d8a73a</text><text x="1004" y="736">gold</text>
|
||||
<rect x="1067" y="666" width="52" height="40" fill="#5a3a2a" stroke="#0d1a4d"/><text x="1067" y="722">#5a3a2a</text><text x="1067" y="736">skin</text>
|
||||
<rect x="1130" y="666" width="52" height="40" fill="#2b1f3d" stroke="#0d1a4d"/><text x="1130" y="722">#2b1f3d</text><text x="1130" y="736">hair</text>
|
||||
<rect x="815" y="748" width="367" height="7" fill="url(#prism)"/>
|
||||
<text x="815" y="772">Bifrost accent: a thin prismatic line, under 10% of the figure</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
BIN
cast-designs/proposals/heimdall/heimdall-old-B.png
Normal file
|
After Width: | Height: | Size: 209 KiB |
261
cast-designs/proposals/heimdall/heimdall-old-B.svg
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Heimdall (superseded, pre-canon draft), Direction B: The Keyring Halo</title>
|
||||
<defs>
|
||||
<filter id="sil" x="-5%" y="-5%" width="110%" height="110%">
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<clipPath id="panelClip"><rect x="20" y="20" width="770" height="760" rx="14"/></clipPath>
|
||||
<linearGradient id="prism" x1="0" y1="0" x2="1" y2="0">
|
||||
<stop offset="0" stop-color="#ff4d6d"/><stop offset=".18" stop-color="#ff4d6d"/>
|
||||
<stop offset=".18" stop-color="#ffb02e"/><stop offset=".34" stop-color="#ffb02e"/>
|
||||
<stop offset=".34" stop-color="#f4e04d"/><stop offset=".5" stop-color="#f4e04d"/>
|
||||
<stop offset=".5" stop-color="#3fd17a"/><stop offset=".66" stop-color="#3fd17a"/>
|
||||
<stop offset=".66" stop-color="#3fc8ff"/><stop offset=".82" stop-color="#3fc8ff"/>
|
||||
<stop offset=".82" stop-color="#9a6bff"/><stop offset="1" stop-color="#9a6bff"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- ========== KEYS: each a different identity; bow on the ring, bit pointing out ========== -->
|
||||
<g id="kRound" stroke="#0d1a4d" stroke-width="4" stroke-linejoin="round">
|
||||
<path d="M-6,-18 L-6,-112 L0,-126 L6,-112 L6,-18 Z" fill="#d8a73a"/>
|
||||
<path d="M6,-104 L26,-104 L26,-94 L18,-94 L18,-86 L26,-86 L26,-76 L6,-76 Z" fill="#d8a73a"/>
|
||||
<circle cx="0" cy="0" r="22" fill="#d8a73a"/><circle cx="0" cy="0" r="9" fill="none"/>
|
||||
<path d="M-2,-30 L-2,-100" stroke="#f5d27a" stroke-width="3"/>
|
||||
</g>
|
||||
<g id="kDiamond" stroke="#0d1a4d" stroke-width="4" stroke-linejoin="round">
|
||||
<path d="M-6,-20 L-6,-96 L0,-108 L6,-96 L6,-20 Z" fill="#d8a73a"/>
|
||||
<path d="M6,-90 L22,-96 L22,-84 L14,-80 L22,-74 L22,-62 L6,-66 Z" fill="#d8a73a"/>
|
||||
<path d="M0,-28 L24,0 L0,28 L-24,0 Z" fill="#d8a73a"/><path d="M0,-10 L9,0 L0,10 L-9,0 Z" fill="none"/>
|
||||
<path d="M-2,-34 L-2,-90" stroke="#f5d27a" stroke-width="3"/>
|
||||
</g>
|
||||
<g id="kTrefoil" stroke="#0d1a4d" stroke-width="4" stroke-linejoin="round">
|
||||
<path d="M-6,-20 L-6,-118 L0,-132 L6,-118 L6,-20 Z" fill="#d8a73a"/>
|
||||
<path d="M-6,-110 L-24,-110 L-24,-98 L-14,-98 L-14,-90 L-24,-90 L-24,-80 L-6,-80 Z" fill="#d8a73a"/>
|
||||
<path d="M0,-24 C-16,-40 -36,-20 -20,-6 C-38,4 -26,30 -6,20 C0,36 0,36 6,20 C26,30 38,4 20,-6 C36,-20 16,-40 0,-24 Z" fill="#d8a73a"/><circle cx="0" cy="0" r="8" fill="none"/>
|
||||
<path d="M-2,-34 L-2,-110" stroke="#f5d27a" stroke-width="3"/>
|
||||
</g>
|
||||
<g id="kSquare" stroke="#0d1a4d" stroke-width="4" stroke-linejoin="round">
|
||||
<path d="M-6,-20 L-6,-100 L0,-112 L6,-100 L6,-20 Z" fill="#d8a73a"/>
|
||||
<path d="M6,-96 L28,-96 L28,-88 L18,-88 L18,-80 L28,-80 L28,-66 L6,-66 Z" fill="#d8a73a"/>
|
||||
<rect x="-20" y="-20" width="40" height="40" rx="6" fill="#d8a73a"/><rect x="-8" y="-8" width="16" height="16" fill="none"/>
|
||||
<path d="M-2,-28 L-2,-94" stroke="#f5d27a" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
<!-- ========== HALO: iron key ring behind the head ========== -->
|
||||
<g id="halo">
|
||||
<circle cx="10" cy="-30" r="270" fill="none" stroke="#0d1a4d" stroke-width="32"/>
|
||||
<circle cx="10" cy="-30" r="270" fill="none" stroke="#9aa6b8" stroke-width="22"/>
|
||||
<path d="M-240,-140 A270,270 0 0 1 -60,-290" fill="none" stroke="#dfe4ee" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M268,30 A270,270 0 0 1 120,215" fill="none" stroke="#3466ff" stroke-width="5" stroke-linecap="round"/>
|
||||
<use xlink:href="#kRound" transform="translate(10,-30) rotate(0) translate(0,-270)"/>
|
||||
<use xlink:href="#kDiamond" transform="translate(10,-30) rotate(30) translate(0,-270)"/>
|
||||
<use xlink:href="#kTrefoil" transform="translate(10,-30) rotate(60) translate(0,-270)"/>
|
||||
<use xlink:href="#kSquare" transform="translate(10,-30) rotate(90) translate(0,-270)"/>
|
||||
<use xlink:href="#kRound" transform="translate(10,-30) rotate(120) translate(0,-270)"/>
|
||||
<use xlink:href="#kTrefoil" transform="translate(10,-30) rotate(240) translate(0,-270)"/>
|
||||
<use xlink:href="#kSquare" transform="translate(10,-30) rotate(270) translate(0,-270)"/>
|
||||
<use xlink:href="#kDiamond" transform="translate(10,-30) rotate(300) translate(0,-270)"/>
|
||||
<use xlink:href="#kRound" transform="translate(10,-30) rotate(330) translate(0,-270)"/>
|
||||
<!-- Bifrost: the ring's upper arc refracts into a thin bridge of light -->
|
||||
<path d="M-218,-178 A270,270 0 0 1 238,-178" fill="none" stroke="url(#prism)" stroke-width="6" transform="translate(0,22) scale(1,0.98)"/>
|
||||
</g>
|
||||
|
||||
<!-- ========== HEAD ========== -->
|
||||
<clipPath id="eyeNearClip"><path d="M-110,46 C-96,18 -40,12 -4,32 C-4,80 -22,106 -56,106 C-88,106 -108,86 -110,46 Z"/></clipPath>
|
||||
<clipPath id="eyeFarClip"><path d="M64,38 C82,22 114,24 134,42 C134,80 120,102 98,103 C76,103 64,84 64,38 Z"/></clipPath>
|
||||
<clipPath id="irisNear"><ellipse cx="-54" cy="66" rx="33" ry="42"/></clipPath>
|
||||
<clipPath id="irisFar"><ellipse cx="100" cy="68" rx="23" ry="38"/></clipPath>
|
||||
<clipPath id="faceClip"><path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z"/></clipPath>
|
||||
|
||||
<g id="head" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- back hair: smooth white crown, swept locks flaring back-left -->
|
||||
<path d="M-150,112 Q-192,92 -240,100 Q-204,62 -202,32 Q-252,12 -286,-30 Q-222,-40 -210,-70 Q-254,-120 -266,-172 Q-202,-152 -182,-160 Q-172,-232 -110,-264 C-40,-300 80,-292 140,-252 C200,-212 224,-140 214,-70 Q232,-30 238,12 Q202,0 172,10 L170,60 L-150,112 Z" fill="#f4f6ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-150,112 Q-192,92 -240,100 Q-204,62 -202,32 Q-252,12 -286,-30 Q-222,-40 -210,-70 Q-230,-30 -180,-10 Q-196,40 -160,60 Z" fill="#c3cbe0"/>
|
||||
<path d="M200,-150 C222,-110 220,-80 214,-70 Q232,-30 238,12" fill="none" stroke="#3466ff" stroke-width="4"/>
|
||||
|
||||
<!-- ear -->
|
||||
<path d="M-146,32 C-184,22 -192,92 -146,102 Z" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="4.5"/>
|
||||
<path d="M-152,48 C-172,48 -172,80 -152,86" fill="none" stroke="#432a1e" stroke-width="3"/>
|
||||
|
||||
<!-- face -->
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20 Z" fill="#5a3a2a"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<path d="M-160,-20 L170,-20 L170,36 Q150,40 136,22 Q120,30 104,26 Q70,4 30,40 Q10,10 -30,6 Q-70,10 -90,24 Q-110,4 -160,30 Z" fill="#432a1e"/>
|
||||
<path d="M150,20 C150,90 120,160 66,190 L180,200 L180,20 Z" fill="#432a1e"/>
|
||||
<ellipse cx="-80" cy="120" rx="22" ry="10" fill="#74503c"/>
|
||||
</g>
|
||||
<path d="M-150,-10 C-152,60 -132,115 -84,150 C-44,176 30,192 66,186 C104,176 142,132 156,72 C163,40 166,10 160,-20" fill="none" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M154,60 C142,128 108,172 70,184" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- near eye: round, composed -->
|
||||
<path d="M-110,46 C-96,18 -40,12 -4,32 C-4,80 -22,106 -56,106 C-88,106 -108,86 -110,46 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeNearClip)">
|
||||
<path d="M-120,20 L0,20 L0,46 Q-60,30 -120,50 Z" fill="#c3cbe0"/>
|
||||
<ellipse cx="-54" cy="66" rx="33" ry="42" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisNear)">
|
||||
<ellipse cx="-54" cy="36" rx="42" ry="28" fill="#8a5a12"/>
|
||||
<ellipse cx="-54" cy="102" rx="26" ry="13" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="-52" cy="68" rx="12" ry="20" fill="#24130a"/>
|
||||
<ellipse cx="-54" cy="66" rx="33" ry="42" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="-67" cy="50" r="10" fill="#ffffff"/>
|
||||
<circle cx="-38" cy="88" r="5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M-118,46 L-128,42 C-104,6 -42,0 -2,24 L2,36 C-40,16 -96,22 -110,56 Z" fill="#0d1a4d"/>
|
||||
<path d="M-94,100 C-80,107 -62,108 -46,106" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<path d="M64,38 C82,22 114,24 134,42 C134,80 120,102 98,103 C76,103 64,84 64,38 Z" fill="#f4f6ff"/>
|
||||
<g clip-path="url(#eyeFarClip)">
|
||||
<path d="M60,20 L140,20 L140,46 Q100,32 60,50 Z" fill="#c3cbe0"/>
|
||||
<ellipse cx="100" cy="68" rx="23" ry="38" fill="#d8a73a"/>
|
||||
<g clip-path="url(#irisFar)">
|
||||
<ellipse cx="100" cy="40" rx="30" ry="25" fill="#8a5a12"/>
|
||||
<ellipse cx="100" cy="100" rx="18" ry="12" fill="#f5d27a"/>
|
||||
</g>
|
||||
<ellipse cx="102" cy="70" rx="8" ry="18" fill="#24130a"/>
|
||||
<ellipse cx="100" cy="68" rx="23" ry="38" fill="none" stroke="#5a3a10" stroke-width="2.5"/>
|
||||
<circle cx="91" cy="54" r="7.5" fill="#ffffff"/>
|
||||
<circle cx="110" cy="84" r="3.5" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M58,40 C80,14 120,16 142,38 L138,46 C114,28 84,30 64,48 Z" fill="#0d1a4d"/>
|
||||
<path d="M78,98 C90,103 104,103 114,99" fill="none" stroke="#0d1a4d" stroke-width="2.5"/>
|
||||
|
||||
<!-- brows -->
|
||||
<path d="M-100,-4 C-80,-14 -50,-14 -26,-6" fill="none" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
<path d="M74,0 C94,-8 116,-6 132,4" fill="none" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
|
||||
<!-- front fringe: one swept sheet ending in a long forelock beside the far eye -->
|
||||
<path d="M-152,70 Q-160,10 -140,-20 C-120,-120 40,-150 150,-90 C192,-60 204,0 178,64 Q164,22 142,6 Q134,22 118,30 Q104,0 70,-8 Q42,4 18,30 Q10,-2 -30,-12 Q-58,-2 -82,12 Q-98,-8 -126,-4 Q-142,22 -152,70 Z" fill="#f4f6ff"/>
|
||||
<path d="M-30,-12 Q10,-2 18,30 Q42,4 70,-8 Q104,0 118,30 Q134,22 142,6 Q164,22 178,64 Q170,20 150,-6 Q120,-30 70,-30 Q20,-30 -30,-12 Z" fill="#c3cbe0"/>
|
||||
<path d="M178,64 Q164,22 142,6 Q134,22 118,30 Q104,0 70,-8 Q42,4 18,30 Q10,-2 -30,-12 Q-58,-2 -82,12 Q-98,-8 -126,-4 Q-142,22 -152,70 M150,-90 C192,-60 204,0 178,64" fill="none" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-110,-90 Q-40,-128 50,-118" fill="none" stroke="#c3cbe0" stroke-width="5"/>
|
||||
<path d="M170,-60 C196,-20 194,30 180,60" fill="none" stroke="#3466ff" stroke-width="3"/>
|
||||
|
||||
<!-- nose and mouth: a closed, composed smile -->
|
||||
<path d="M114,96 C119,102 118,106 110,108" fill="none" stroke="#2a1810" stroke-width="3"/>
|
||||
<path d="M56,142 C66,149 82,149 94,140" fill="none" stroke="#0d1a4d" stroke-width="3.2"/>
|
||||
</g>
|
||||
|
||||
<!-- ========== SHOULDERS: cobalt long coat, tall collar, silver buckles ========== -->
|
||||
<g id="collarBack" stroke-linejoin="round">
|
||||
<path d="M-130,268 C-160,220 -160,170 -130,128 L-60,200 L150,200 L196,132 C226,180 226,226 204,268 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="6"/>
|
||||
</g>
|
||||
<g id="neck">
|
||||
<path d="M18,160 L22,250 L104,250 L100,160 Z" fill="#432a1e" stroke="#0d1a4d" stroke-width="4"/>
|
||||
</g>
|
||||
<g id="coatFront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- shirt V -->
|
||||
<path d="M8,236 L62,330 L116,236 Z" fill="#f4f6ff" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<!-- lapels, tall collar front edges -->
|
||||
<path d="M-130,268 C-150,230 -146,190 -124,150 C-90,190 -30,214 8,236 L62,330 L-20,420 L-215,420 C-220,330 -190,282 -130,268 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M204,268 C220,230 218,190 198,150 C170,190 150,214 116,236 L62,330 L140,420 L300,420 C296,330 270,282 204,268 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M198,150 C170,190 150,214 116,236 L62,330 L90,360 C120,300 170,250 210,210 Z" fill="#2443b8"/>
|
||||
<path d="M204,268 C220,230 218,190 198,150 C170,190 150,214 116,236 L62,330 L140,420 L300,420 C296,330 270,282 204,268" fill="none" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<!-- silver buckle straps -->
|
||||
<path d="M-40,300 L40,300 M84,300 L170,300" stroke="#0d1a4d" stroke-width="20"/>
|
||||
<path d="M-40,300 L40,300 M84,300 L170,300" stroke="#1d2a6a" stroke-width="13"/>
|
||||
<rect x="22" y="286" width="26" height="28" rx="4" fill="#9aa6b8" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<rect x="76" y="286" width="26" height="28" rx="4" fill="#9aa6b8" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-200,350 C-196,300 -176,284 -150,276" fill="none" stroke="#7c9bff" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<!-- ========== HAND: one key held between two fingers, raised toward the text box ========== -->
|
||||
<g id="handKey" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M190,420 L176,262 L254,256 L300,420 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M232,258 L254,256 L300,420 L268,420 Z" fill="#2443b8"/>
|
||||
<!-- the held key, bit up -->
|
||||
<g transform="translate(222,170) rotate(-12)">
|
||||
<path d="M-6,0 L-6,-104 L0,-116 L6,-104 L6,0 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M6,-98 L26,-98 L26,-88 L18,-88 L18,-80 L26,-80 L26,-68 L6,-68 Z" fill="#d8a73a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M-2,-14 L-2,-92" stroke="#f5d27a" stroke-width="3"/>
|
||||
</g>
|
||||
<!-- hand -->
|
||||
<path d="M184,250 C176,222 182,196 198,188 L198,150 Q206,138 214,150 L216,182 L226,150 Q236,140 242,154 L236,190 C252,204 252,240 238,256 Z" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M214,182 L216,206 M236,190 L226,210" fill="none" stroke="#432a1e" stroke-width="3"/>
|
||||
<path d="M190,222 C172,214 170,196 184,190" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M170,256 L262,250 L264,276 L172,282 Z" fill="#f4f6ff" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<rect x="204" y="252" width="20" height="26" rx="3" fill="#9aa6b8" stroke="#0d1a4d" stroke-width="3.5"/>
|
||||
<path d="M270,40 L273,30 L276,40 L286,43 L276,46 L273,56 L270,46 L260,43 Z" fill="#f5d27a" stroke="#0d1a4d" stroke-width="1.5"/>
|
||||
</g>
|
||||
|
||||
<g id="bust" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#halo"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<use xlink:href="#coatFront"/>
|
||||
<use xlink:href="#handKey"/>
|
||||
</g>
|
||||
|
||||
<g id="bustPlaced"><g transform="translate(398,420) scale(0.86)"><use xlink:href="#bust"/></g></g>
|
||||
|
||||
<!-- ========== FULL BODY ========== -->
|
||||
<g id="fullbody" stroke-linejoin="round" stroke-linecap="round">
|
||||
<use xlink:href="#halo"/>
|
||||
<use xlink:href="#collarBack"/>
|
||||
<!-- legs and boots -->
|
||||
<path d="M-30,640 L-36,760 L14,760 L18,640 Z M64,640 L70,760 L120,760 L116,640 Z" fill="#0d1a4d"/>
|
||||
<path d="M-60,742 Q-62,712 -36,712 L16,712 Q22,746 20,790 L-66,790 Q-78,770 -60,742 Z M56,742 Q54,712 72,712 L124,712 Q146,746 152,790 L54,790 Q44,770 56,742 Z" fill="#1d2a6a" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M-66,790 L20,790 M54,790 L152,790" stroke="#9aa6b8" stroke-width="8"/>
|
||||
<!-- long coat -->
|
||||
<path d="M-130,262 L204,262 C246,420 270,560 280,710 Q200,724 110,700 L62,330 L14,700 Q-90,724 -170,710 C-164,560 -160,420 -130,262 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="7"/>
|
||||
<path d="M8,236 L62,330 L116,236 Z" fill="#f4f6ff" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<path d="M170,262 C214,420 236,560 244,712 L280,710 C270,560 246,420 204,262 Z" fill="#2443b8"/>
|
||||
<path d="M62,330 L110,700 Q90,690 62,640 Q34,690 14,700 Z" fill="#1d2a6a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<path d="M-40,380 L40,380 M84,380 L160,380 M-50,470 L40,470 M84,470 L170,470" stroke="#1d2a6a" stroke-width="14"/>
|
||||
<rect x="22" y="366" width="24" height="28" rx="4" fill="#9aa6b8" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<rect x="22" y="456" width="24" height="28" rx="4" fill="#9aa6b8" stroke="#0d1a4d" stroke-width="4"/>
|
||||
<!-- near arm down -->
|
||||
<path d="M-124,300 Q-180,400 -176,500 Q-150,520 -124,500 Q-116,410 -92,340 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<circle cx="-150" cy="522" r="28" fill="#5a3a2a" stroke="#0d1a4d" stroke-width="5"/>
|
||||
<use xlink:href="#neck"/>
|
||||
<use xlink:href="#head"/>
|
||||
<path d="M-130,268 C-150,230 -146,190 -124,150 C-90,190 -30,214 8,236 L62,330 L-110,330 Z" fill="#3466ff" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<path d="M204,268 C220,230 218,190 198,150 C170,190 150,214 116,236 L62,330 L200,330 Z" fill="#2443b8" stroke="#0d1a4d" stroke-width="6"/>
|
||||
<use xlink:href="#handKey"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#f3f1ec"/>
|
||||
|
||||
<g clip-path="url(#panelClip)">
|
||||
<rect x="20" y="20" width="770" height="760" fill="#e6ebf5"/>
|
||||
<path d="M330,20 L640,20 L470,780 L160,780 Z" fill="#d3ddf6"/>
|
||||
<path d="M660,20 L700,20 L530,780 L490,780 Z" fill="#d3ddf6"/>
|
||||
<use xlink:href="#bustPlaced"/>
|
||||
</g>
|
||||
<rect x="20" y="20" width="770" height="760" rx="14" fill="none" stroke="#0d1a4d" stroke-width="3"/>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif" fill="#0d1a4d">
|
||||
<text x="815" y="58" font-size="30" font-weight="700" letter-spacing="3">HEIMDALL</text>
|
||||
<text x="815" y="86" font-size="17" font-weight="600" letter-spacing="1.5">B · THE KEYRING HALO</text>
|
||||
</g>
|
||||
|
||||
<g transform="translate(920,262) scale(0.30)"><use xlink:href="#fullbody"/></g>
|
||||
<text x="930" y="530" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a" text-anchor="middle">full body, 2.5 heads</text>
|
||||
|
||||
<rect x="1046" y="110" width="140" height="138" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="110" width="140" height="138" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<rect x="1046" y="262" width="48" height="48" fill="#ffffff" stroke="#c6ccda"/>
|
||||
<svg x="1046" y="262" width="48" height="48" viewBox="20 20 770 760"><use xlink:href="#bustPlaced" filter="url(#sil)"/></svg>
|
||||
<text x="1102" y="282" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">silhouette</text>
|
||||
<text x="1102" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#55607a">48 px</text>
|
||||
|
||||
<g font-family="Segoe UI, Arial, Helvetica, sans-serif">
|
||||
<text x="815" y="575" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">HOOK</text>
|
||||
<text x="815" y="597" font-size="15" fill="#0d1a4d">An iron ring of gold keys bursts behind his head,</text>
|
||||
<text x="815" y="617" font-size="15" fill="#0d1a4d">its top arc refracting into the Bifrost.</text>
|
||||
<text x="815" y="655" font-size="13" font-weight="700" fill="#3466ff" letter-spacing="2">PALETTE</text>
|
||||
<g font-size="11" fill="#0d1a4d">
|
||||
<rect x="815" y="666" width="52" height="40" fill="#3466ff" stroke="#0d1a4d"/><text x="815" y="722">#3466ff</text><text x="815" y="736">coat</text>
|
||||
<rect x="878" y="666" width="52" height="40" fill="#0d1a4d" stroke="#0d1a4d"/><text x="878" y="722">#0d1a4d</text><text x="878" y="736">line</text>
|
||||
<rect x="941" y="666" width="52" height="40" fill="#d8a73a" stroke="#0d1a4d"/><text x="941" y="722">#d8a73a</text><text x="941" y="736">keys</text>
|
||||
<rect x="1004" y="666" width="52" height="40" fill="#9aa6b8" stroke="#0d1a4d"/><text x="1004" y="722">#9aa6b8</text><text x="1004" y="736">iron ring</text>
|
||||
<rect x="1067" y="666" width="52" height="40" fill="#5a3a2a" stroke="#0d1a4d"/><text x="1067" y="722">#5a3a2a</text><text x="1067" y="736">skin</text>
|
||||
<rect x="1130" y="666" width="52" height="40" fill="#f4f6ff" stroke="#0d1a4d"/><text x="1130" y="722">#f4f6ff</text><text x="1130" y="736">hair</text>
|
||||
<rect x="815" y="748" width="367" height="7" fill="url(#prism)"/>
|
||||
<text x="815" y="772">Bifrost accent: a thin prismatic arc on the ring, under 10% of the figure</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
BIN
cast-designs/proposals/kiko/kiko-A.png
Normal file
|
After Width: | Height: | Size: 238 KiB |
133
cast-designs/proposals/kiko/kiko-A.svg
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
cast-designs/proposals/kiko/kiko-B.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
137
cast-designs/proposals/kiko/kiko-B.svg
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<style>
|
||||
.t { font-family: 'Segoe UI', Arial, sans-serif; fill:#2a1424; }
|
||||
.lab { font-family: 'IBM Plex Mono', Consolas, monospace; font-size:13px; letter-spacing:1.5px; fill:#2a1424; }
|
||||
.sm { font-family: 'Segoe UI', Arial, sans-serif; font-size:11px; fill:#6b5566; }
|
||||
.h { font-family: 'IBM Plex Mono', Consolas, monospace; font-size:20px; font-weight:700; letter-spacing:4px; fill:#2a1424; }
|
||||
</style>
|
||||
<defs>
|
||||
|
||||
<filter id="outl" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.5" result="d"/>
|
||||
<feFlood flood-color="#4a0f2e"/><feComposite in2="d" operator="in"/>
|
||||
</filter>
|
||||
<filter id="rim" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.5" result="d"/>
|
||||
<feOffset in="d" dx="7" dy="-3" result="o"/>
|
||||
<feFlood flood-color="#ff3fa4"/><feComposite in2="o" operator="in"/>
|
||||
</filter>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.5" result="d"/>
|
||||
<feFlood flood-color="#000000"/><feComposite in2="d" operator="in"/>
|
||||
</filter>
|
||||
|
||||
<clipPath id="card"><polygon points="70,30 770,30 732,780 32,780"/></clipPath>
|
||||
<g id="head-B"><path d="M 390 70 Q 434.4 80.4 480 80 Q 517.6 104.8 560 120 Q 581.8 158.1 612 190 Q 619.2 231.4 636 270 Q 632 314.8 660 350 Q 631.2 379.2 636 420 Q 636.4 467.9 672 500 Q 641.6 522.3 640 560 Q 638.8 608.6 676 640 Q 637 652.7 620 690 Q 595 659 560 640 Q 475 640 390 640 Q 315 645 240 650 Q 197.5 664.5 170 700 Q 172.6 653.4 140 620 Q 138.2 583.4 110 560 Q 145.8 534.1 148 490 Q 149.4 448.8 120 420 Q 143.6 390 140 352 Q 151.4 312.8 150 272 Q 168.6 235.7 178 196 Q 211.1 165.5 236 128 Q 273.5 111.2 306 86 Q 349 83 390 70 Z" fill="#cdbde6" stroke="#4a0f2e" stroke-width="3"/>
|
||||
<path d="M 176 214 Q 152.6 188.4 118 186 Q 153.8 208.8 164 250 Q 173.6 233.2 176 214 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3"/>
|
||||
<path d="M 612 236 Q 639.6 212.2 676 214 Q 636.4 243.4 628 292 Q 614.4 265.6 612 236 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3"/>
|
||||
<path d="M 214 216 C 184 150 168 72 160 14 C 228 34 302 84 334 134 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3" stroke-linejoin="round"/><path d="M 226 192 C 208 140 196 90 190 54 C 238 78 280 110 304 138 Z" fill="#ff9fd0"/><path d="M 226 192 C 208 140 196 90 190 54 C 238 78 280 110 304 138 Z" fill="none" stroke="#c81e7c" stroke-width="2"/><path d="M 452 118 C 500 78 562 36 606 18 C 606 80 594 150 580 204 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3" stroke-linejoin="round"/><path d="M 472 124 C 512 96 558 64 590 50 C 590 100 578 150 566 182 Z" fill="#ff9fd0"/><path d="M 472 124 C 512 96 558 64 590 50 C 590 100 578 150 566 182 Z" fill="none" stroke="#c81e7c" stroke-width="2"/><path d="M 236 196 Q 253.6 175.6 262 150 Q 268.8 163.2 270 178 Q 285.2 159.2 292 136 Q 299.4 152.2 300 170 Q 311 161.8 318 150 Q 319.6 173.6 312 196 Q 274 196 236 196 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="2"/><path d="M 492 150 Q 509.2 136.8 520 118 Q 524 132.8 522 148 Q 541 131 552 108 Q 556.2 129 552 150 Q 562 146.8 570 140 Q 569.6 164 560 186 Q 526 168 492 150 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<path d="M 402 488 L 400 548 L 456 548 L 460 486 Z" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="3"/><path d="M 401 500 C 416 520 446 518 459 498 L 459 538 C 440 550 416 550 401 542 Z" fill="#e09a88"/><clipPath id="fcB"><path d="M 262 290 C 246 376 262 444 330 490 C 362 510 392 516 420 512 C 470 494 506 456 516 410 C 523 380 528 340 522 290 Z"/></clipPath><path d="M 262 290 C 246 376 262 444 330 490 C 362 510 392 516 420 512 C 470 494 506 456 516 410 C 523 380 528 340 522 290 Z" fill="#f2c4a8"/><g clip-path="url(#fcB)"><path d="M 222 360 C 200 220 296 116 410 114 C 524 112 590 196 560 330 Q 549.5 356 552 384 Q 529.2 348 522 306 Q 506 328.6 502 356 Q 481.4 331 472 300 Q 431.1 338.2 416 392 Q 394.7 347.4 396 298 Q 371 322.7 360 356 Q 340 328.8 332 296 Q 304.5 318 290 350 Q 270.8 326.8 262 298 Q 236.1 330.9 228 372 Q 225 366 222 360 Z" fill="#e09a88" transform="translate(6 16)"/></g><path d="M 262 290 C 246 376 262 444 330 490 C 362 510 392 516 420 512 C 470 494 506 456 516 410 C 523 380 528 340 522 290 Z" fill="none" stroke="#4a0f2e" stroke-width="3"/><ellipse cx="322" cy="462" rx="30" ry="11" fill="#ff6fae" opacity="0.45"/><ellipse cx="494" cy="458" rx="15" ry="10" fill="#ff6fae" opacity="0.45"/><path d="M 306 458 l 8 -8 M 320 460 l 8 -8 M 334 462 l 8 -8" stroke="#e0507f" stroke-width="2" stroke-linecap="round"/><clipPath id="ecBn"><path d="M 299 385.3 C 310 354.1 368 348.9 391 374.9 C 393.8 426.9 374.4 456 345 456 C 313.7 456 296.2 426.9 299 385.3 Z"/></clipPath>
|
||||
<path d="M 299 385.3 C 310 354.1 368 348.9 391 374.9 C 393.8 426.9 374.4 456 345 456 C 313.7 456 296.2 426.9 299 385.3 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#ecBn)">
|
||||
<path d="M 289 342 L 401 342 L 401 389.4 C 363.4 370.7 326.6 377 289 399.8 Z" fill="#e6d6f2"/>
|
||||
<ellipse cx="351.4" cy="411.3" rx="34" ry="44.7" fill="#0b6f8f"/>
|
||||
<ellipse cx="351.4" cy="414.9" rx="29.3" ry="38.5" fill="#26e0ff"/>
|
||||
<path d="M 324.2 418 C 331 453.8 371.9 453.8 378.7 418 C 365.1 438.1 337.8 438.1 324.2 418 Z" fill="#c4f8ff"/>
|
||||
<path d="M 317.4 400.1 C 334.4 384.4 368.5 383.6 385.5 397.9 L 385.5 366.6 L 317.4 366.6 Z" fill="#0b6f8f"/>
|
||||
<ellipse cx="355.1" cy="413.4" rx="14.3" ry="22.4" fill="#4a0f2e"/>
|
||||
<ellipse cx="351.4" cy="411.3" rx="34" ry="44.7" fill="none" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<ellipse cx="338.5" cy="392.5" rx="12.3" ry="12.5" fill="#ffffff" transform="rotate(-20 338.5 392.5)"/>
|
||||
<circle cx="366.8" cy="431.4" r="4.8" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M 299 385.3 C 310 354.1 368 348.9 391 374.9 C 393.8 426.9 374.4 456 345 456 C 313.7 456 296.2 426.9 299 385.3 Z" fill="none" stroke="#4a0f2e" stroke-width="1.5"/>
|
||||
<path d="M 280.6 370.7 C 294.4 349.9 345 337.4 396.5 369.7 C 368 352 310 358.2 297.2 391.5 Z" fill="#4a0f2e"/>
|
||||
<path d="M 300.8 424.8 C 310 453.9 335.8 458.1 349.6 457" fill="none" stroke="#4a0f2e" stroke-width="3" stroke-linecap="round"/><clipPath id="ecBf"><path d="M 438 383.8 C 445.7 353.6 486 348.5 502 373.8 C 503.9 424.2 490.5 452.4 470 452.4 C 448.2 452.4 436.1 424.2 438 383.8 Z"/></clipPath>
|
||||
<path d="M 438 383.8 C 445.7 353.6 486 348.5 502 373.8 C 503.9 424.2 490.5 452.4 470 452.4 C 448.2 452.4 436.1 424.2 438 383.8 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#ecBf)">
|
||||
<path d="M 428 341.6 L 512 341.6 L 512 387.9 C 482.8 369.7 457.2 375.8 428 398 Z" fill="#e6d6f2"/>
|
||||
<ellipse cx="474.5" cy="409.1" rx="23.7" ry="43.4" fill="#0b6f8f"/>
|
||||
<ellipse cx="474.5" cy="412.5" rx="20.4" ry="37.3" fill="#26e0ff"/>
|
||||
<path d="M 455.5 415.6 C 460.3 450.3 488.7 450.3 493.4 415.6 C 484 435.1 465 435.1 455.5 415.6 Z" fill="#c4f8ff"/>
|
||||
<path d="M 450.8 398.2 C 462.6 383 486.3 382.2 498.2 396 L 498.2 365.7 L 450.8 365.7 Z" fill="#0b6f8f"/>
|
||||
<ellipse cx="477" cy="411.1" rx="9.9" ry="21.7" fill="#4a0f2e"/>
|
||||
<ellipse cx="474.5" cy="409.1" rx="23.7" ry="43.4" fill="none" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<ellipse cx="465.5" cy="390.8" rx="8.5" ry="12.1" fill="#ffffff" transform="rotate(-20 465.5 390.8)"/>
|
||||
<circle cx="485.1" cy="428.6" r="3.3" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M 438 383.8 C 445.7 353.6 486 348.5 502 373.8 C 503.9 424.2 490.5 452.4 470 452.4 C 448.2 452.4 436.1 424.2 438 383.8 Z" fill="none" stroke="#4a0f2e" stroke-width="1.5"/>
|
||||
<path d="M 514.8 365.7 C 505.2 347.5 470 335.4 435.4 381.8 C 447.6 355.6 486 351.6 503.3 381.8 Z" fill="#4a0f2e"/>
|
||||
<path d="M 500.7 420.2 C 495.6 450.4 476.4 454.5 466.8 453.4" fill="none" stroke="#4a0f2e" stroke-width="3" stroke-linecap="round"/><path d="M 458 436 l 7 8 l -6 2" fill="none" stroke="#4a0f2e" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M 422 466 q 12 14 24 0 q 12 14 24 0" fill="none" stroke="#4a0f2e" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M 440 472 l 3 8 l 3 -7" fill="#ffffff" stroke="#4a0f2e" stroke-width="1.5"/>
|
||||
<path d="M 546 318 C 562 400 586 480 600 580 C 570 520 538 456 518 400 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3" stroke-linejoin="round"/><path d="M 226 316 C 200 400 186 500 196 640 C 214 600 222 560 230 520 C 240 470 258 420 262 380 C 268 350 262 330 254 316 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3" stroke-linejoin="round"/><path d="M 238 420 C 236 480 246 560 268 610 C 270 560 268 500 262 440 Z" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="3" stroke-linejoin="round"/><clipPath id="bgB"><path d="M 222 360 C 200 220 296 116 410 114 C 524 112 590 196 560 330 Q 549.5 356 552 384 Q 529.2 348 522 306 Q 506 328.6 502 356 Q 481.4 331 472 300 Q 431.1 338.2 416 392 Q 394.7 347.4 396 298 Q 371 322.7 360 356 Q 340 328.8 332 296 Q 304.5 318 290 350 Q 270.8 326.8 262 298 Q 236.1 330.9 228 372 Q 225 366 222 360 Z"/></clipPath><path d="M 222 360 C 200 220 296 116 410 114 C 524 112 590 196 560 330 Q 549.5 356 552 384 Q 529.2 348 522 306 Q 506 328.6 502 356 Q 481.4 331 472 300 Q 431.1 338.2 416 392 Q 394.7 347.4 396 298 Q 371 322.7 360 356 Q 340 328.8 332 296 Q 304.5 318 290 350 Q 270.8 326.8 262 298 Q 236.1 330.9 228 372 Q 225 366 222 360 Z" fill="#f7f4ff"/><g clip-path="url(#bgB)"><path d="M 486 100 C 470 200 486 270 448 400 L 640 400 L 640 100 Z" fill="#cdbde6"/><path d="M 300 150 C 290 190 286 230 292 262 M 360 128 C 350 180 346 230 356 290 M 452 130 C 452 190 440 240 420 300" fill="none" stroke="#4a0f2e" stroke-width="2" stroke-linecap="round"/></g><path d="M 222 360 C 200 220 296 116 410 114 C 524 112 590 196 560 330 Q 549.5 356 552 384 Q 529.2 348 522 306 Q 506 328.6 502 356 Q 481.4 331 472 300 Q 431.1 338.2 416 392 Q 394.7 347.4 396 298 Q 371 322.7 360 356 Q 340 328.8 332 296 Q 304.5 318 290 350 Q 270.8 326.8 262 298 Q 236.1 330.9 228 372 Q 225 366 222 360 Z" fill="none" stroke="#4a0f2e" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M 230 270 C 300 230 500 220 560 262" fill="none" stroke="#ff3fa4" stroke-width="5"/>
|
||||
<path d="M 300 190 C 220 200 150 260 96 250 C 120 290 70 330 40 330" fill="none" stroke="#4a0f2e" stroke-width="20" stroke-linecap="round"/><path d="M 300 190 C 220 200 150 260 96 250 C 120 290 70 330 40 330" fill="none" stroke="#ff3fa4" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M 310 214 C 240 250 190 320 130 330 C 150 370 110 400 84 410" fill="none" stroke="#4a0f2e" stroke-width="20" stroke-linecap="round"/><path d="M 310 214 C 240 250 190 320 130 330 C 150 370 110 400 84 410" fill="none" stroke="#ff3fa4" stroke-width="12" stroke-linecap="round"/>
|
||||
<g transform="translate(70 336) scale(1.2)"><path d="M -7 34 L -10 74 L 10 74 L 7 34 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2"/><circle r="17" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/><circle r="9" fill="none" stroke="#26e0ff" stroke-width="4"/><circle cy="28" r="12" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="2.5"/><path d="M -6 24 a 6 4 0 0 0 12 0" fill="#fff3b0" stroke="none"/><path d="M 0 30 v 9" stroke="#4a0f2e" stroke-width="2.5"/></g>
|
||||
<g transform="translate(404 120) rotate(-16) scale(1.6 1.8)"><clipPath id="mkb"><path d="M -100 -40 L -92 -112 L -40 -64 C -15 -72 15 -72 40 -64 L 92 -112 L 100 -40 C 104 0 72 40 32 70 C 16 82 -16 82 -32 70 C -72 40 -104 0 -100 -40 Z"/></clipPath><path d="M -100 -40 L -92 -112 L -40 -64 C -15 -72 15 -72 40 -64 L 92 -112 L 100 -40 C 104 0 72 40 32 70 C 16 82 -16 82 -32 70 C -72 40 -104 0 -100 -40 Z" fill="#ffffff"/><g clip-path="url(#mkb)"><path d="M 30 -120 C 60 -40 70 20 20 100 L 140 100 L 140 -120 Z" fill="#cdbde6"/></g><path d="M -86 -94 L -80 -54 L -52 -64 Z M 86 -94 L 80 -54 L 52 -64 Z" fill="#ff9fd0" stroke="#c81e7c" stroke-width="2"/><path d="M -12 -60 C -22 -40 -8 -30 0 -20 C 8 -30 22 -40 12 -60 C 8 -48 -8 -48 -12 -60 Z" fill="#ff3fa4"/><path d="M -66 -10 C -50 -26 -28 -26 -14 -10 C -30 -16 -50 -16 -66 -10 Z M 66 -10 C 50 -26 28 -26 14 -10 C 30 -16 50 -16 66 -10 Z" fill="#4a0f2e"/><path d="M -72 -22 C -56 -44 -28 -40 -12 -26 M 72 -22 C 56 -44 28 -40 12 -26" fill="none" stroke="#ff3fa4" stroke-width="6" stroke-linecap="round"/><path d="M -86 8 L -56 16 M -82 26 L -54 28 M 86 8 L 56 16 M 82 26 L 54 28" stroke="#ff3fa4" stroke-width="5" stroke-linecap="round"/><ellipse cx="0" cy="56" rx="11" ry="7" fill="#4a0f2e"/><path d="M -18 68 Q 0 78 18 68" fill="none" stroke="#ff3fa4" stroke-width="4" stroke-linecap="round"/><path d="M -100 -40 L -92 -112 L -40 -64 C -15 -72 15 -72 40 -64 L 92 -112 L 100 -40 C 104 0 72 40 32 70 C 16 82 -16 82 -32 70 C -72 40 -104 0 -100 -40 Z" fill="none" stroke="#4a0f2e" stroke-width="2.1" stroke-linejoin="round"/></g>
|
||||
<g transform="translate(244 236) scale(1.0)"><path d="M -7 34 L -10 74 L 10 74 L 7 34 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2"/><circle r="17" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/><circle r="9" fill="none" stroke="#26e0ff" stroke-width="4"/><circle cy="28" r="12" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="2.5"/><path d="M -6 24 a 6 4 0 0 0 12 0" fill="#fff3b0" stroke="none"/><path d="M 0 30 v 9" stroke="#4a0f2e" stroke-width="2.5"/></g>
|
||||
<g transform="translate(556 222) scale(0.85)"><path d="M -7 34 L -10 74 L 10 74 L 7 34 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2"/><circle r="17" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/><circle r="9" fill="none" stroke="#26e0ff" stroke-width="4"/><circle cy="28" r="12" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="2.5"/><path d="M -6 24 a 6 4 0 0 0 12 0" fill="#fff3b0" stroke="none"/><path d="M 0 30 v 9" stroke="#4a0f2e" stroke-width="2.5"/></g></g><g id="bust-B"><g transform="translate(124 62) scale(0.74)"><g transform="translate(0 -36)"><clipPath id="ccB"><path d="M 120 1000 C 150 690 214 610 318 578 C 360 606 492 606 538 576 C 626 606 676 700 700 1000 Z"/></clipPath><path d="M 120 1000 C 150 690 214 610 318 578 C 360 606 492 606 538 576 C 626 606 676 700 700 1000 Z" fill="#1b1530"/><g clip-path="url(#ccB)"><path d="M 548 570 C 590 650 590 740 570 850 L 760 1000 L 760 570 Z" fill="#0e0a1c"/><path d="M 318 570 C 350 640 400 720 438 1000 L 470 1000 C 440 720 390 630 352 580 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2.5"/><path d="M 540 568 C 520 640 490 720 470 1000 L 440 1000 C 456 720 490 630 506 584 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2.5"/><path d="M 340 586 C 372 650 414 730 448 1000 M 522 580 C 504 650 478 730 462 1000" fill="none" stroke="#26e0ff" stroke-width="5"/></g><path d="M 120 1000 C 150 690 214 610 318 578 C 360 606 492 606 538 576 C 626 606 676 700 700 1000 Z" fill="none" stroke="#4a0f2e" stroke-width="3"/><path d="M 404 596 C 414 630 446 630 456 596" fill="none" stroke="#ffcf3a" stroke-width="4"/><circle cx="430" cy="640" r="18" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="3"/><path d="M 418 634 a 12 7 0 0 1 24 0" fill="#fff3b0"/><path d="M 430 644 v 12" stroke="#4a0f2e" stroke-width="3"/></g><use href="#head-B"/></g></g>
|
||||
<g id="rimset-B"><use href="#bust-B" filter="url(#rim)"/><use href="#bust-B" filter="url(#outl)"/><use href="#bust-B"/></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4f0f6"/>
|
||||
<polygon points="70,30 770,30 732,780 32,780" fill="#07111a"/>
|
||||
<g clip-path="url(#card)">
|
||||
<g opacity="0.18" stroke="#ff3fa4" stroke-width="1"><line x1="0" y1="40" x2="800" y2="40"/><line x1="0" y1="52" x2="800" y2="52"/><line x1="0" y1="64" x2="800" y2="64"/><line x1="0" y1="76" x2="800" y2="76"/><line x1="0" y1="88" x2="800" y2="88"/><line x1="0" y1="100" x2="800" y2="100"/><line x1="0" y1="112" x2="800" y2="112"/><line x1="0" y1="124" x2="800" y2="124"/><line x1="0" y1="136" x2="800" y2="136"/><line x1="0" y1="148" x2="800" y2="148"/><line x1="0" y1="160" x2="800" y2="160"/><line x1="0" y1="172" x2="800" y2="172"/><line x1="0" y1="184" x2="800" y2="184"/><line x1="0" y1="196" x2="800" y2="196"/><line x1="0" y1="208" x2="800" y2="208"/><line x1="0" y1="220" x2="800" y2="220"/><line x1="0" y1="232" x2="800" y2="232"/><line x1="0" y1="244" x2="800" y2="244"/><line x1="0" y1="256" x2="800" y2="256"/><line x1="0" y1="268" x2="800" y2="268"/><line x1="0" y1="280" x2="800" y2="280"/><line x1="0" y1="292" x2="800" y2="292"/><line x1="0" y1="304" x2="800" y2="304"/><line x1="0" y1="316" x2="800" y2="316"/><line x1="0" y1="328" x2="800" y2="328"/><line x1="0" y1="340" x2="800" y2="340"/><line x1="0" y1="352" x2="800" y2="352"/><line x1="0" y1="364" x2="800" y2="364"/><line x1="0" y1="376" x2="800" y2="376"/><line x1="0" y1="388" x2="800" y2="388"/><line x1="0" y1="400" x2="800" y2="400"/><line x1="0" y1="412" x2="800" y2="412"/><line x1="0" y1="424" x2="800" y2="424"/><line x1="0" y1="436" x2="800" y2="436"/><line x1="0" y1="448" x2="800" y2="448"/><line x1="0" y1="460" x2="800" y2="460"/><line x1="0" y1="472" x2="800" y2="472"/><line x1="0" y1="484" x2="800" y2="484"/><line x1="0" y1="496" x2="800" y2="496"/><line x1="0" y1="508" x2="800" y2="508"/><line x1="0" y1="520" x2="800" y2="520"/><line x1="0" y1="532" x2="800" y2="532"/><line x1="0" y1="544" x2="800" y2="544"/><line x1="0" y1="556" x2="800" y2="556"/><line x1="0" y1="568" x2="800" y2="568"/><line x1="0" y1="580" x2="800" y2="580"/><line x1="0" y1="592" x2="800" y2="592"/><line x1="0" y1="604" x2="800" y2="604"/><line x1="0" y1="616" x2="800" y2="616"/><line x1="0" y1="628" x2="800" y2="628"/><line x1="0" y1="640" x2="800" y2="640"/><line x1="0" y1="652" x2="800" y2="652"/><line x1="0" y1="664" x2="800" y2="664"/><line x1="0" y1="676" x2="800" y2="676"/><line x1="0" y1="688" x2="800" y2="688"/><line x1="0" y1="700" x2="800" y2="700"/><line x1="0" y1="712" x2="800" y2="712"/><line x1="0" y1="724" x2="800" y2="724"/><line x1="0" y1="736" x2="800" y2="736"/><line x1="0" y1="748" x2="800" y2="748"/><line x1="0" y1="760" x2="800" y2="760"/><line x1="0" y1="772" x2="800" y2="772"/><line x1="0" y1="784" x2="800" y2="784"/></g>
|
||||
<use href="#rimset-B"/>
|
||||
</g>
|
||||
<polygon points="70,30 770,30 732,780 32,780" fill="none" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<polygon points="32,700 300,700 292,744 24,744" fill="#ff3fa4"/>
|
||||
<text x="52" y="731" class="h" fill="#07111a" style="fill:#07111a">KIKO</text>
|
||||
|
||||
<text x="800" y="58" class="h">KIKO / B</text>
|
||||
<text x="800" y="84" class="t" font-size="17" font-weight="600">The Mask</text>
|
||||
<g><g filter="url(#rim)">
|
||||
<g><clipPath id="tlfB0"><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z"/></clipPath><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z" fill="#f7f4ff"/><g clip-path="url(#tlfB0)"><polygon points="900,400 894.1,399.7 888.2,399.5 882.3,399.1 876.6,398.6 870.9,397.9 865.3,397.1 859.8,396.1 854.5,394.8 849.4,393.2 844.4,391.3 839.6,389.2 834.9,386.7 830.5,383.9 826.2,380.8 822.1,377.4 818.2,373.8 814.4,369.8 810.7,365.6 807.2,361.2 803.8,356.6 800.5,351.8 797.3,347 794.1,342 790.9,337 790.9,337 792.4,344.8 794.4,351.8 796.7,358.5 799,364.9 801.6,370.9 804.4,376.6 807.4,382 810.6,386.9 814,391.4 817.8,395.4 821.8,399 826,402.1 830.6,404.7 835.5,406.8 840.6,408.3 846.1,409.4 851.8,410 857.8,410.1 864.1,409.7 870.6,408.9 877.4,407.7 884.4,406 891.8,403.8 900,400" fill="#cdbde6"/></g><polygon points="819,357 814.8,357 814.8,352.8 810.6,352.8 810.6,348.6 806.4,348.6 806.4,344.4 802.2,344.4 798,344.4 798,340.2 793.8,340.2 793.8,336 789.6,336 789.6,340.2 793.8,340.2 793.8,344.4 793.8,348.6 793.8,352.8 793.8,357 798,357 798,361.2 798,365.4 802.2,365.4 802.2,369.6 802.2,373.8 802.2,378 806.4,378 806.4,382.2 819,382.2" fill="#ff3fa4"/><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z" fill="none" stroke="#4a0f2e" stroke-width="3"/><polygon points="819,357 814.8,357 814.8,352.8 810.6,352.8 810.6,348.6 806.4,348.6 806.4,344.4 802.2,344.4 798,344.4 798,340.2 793.8,340.2 793.8,336 789.6,336 789.6,340.2 793.8,340.2 793.8,344.4 793.8,348.6 793.8,352.8 793.8,357 798,357 798,361.2 798,365.4 802.2,365.4 802.2,369.6 802.2,373.8 802.2,378 806.4,378 806.4,382.2 819,382.2" fill="none" stroke="#4a0f2e" stroke-width="3"/></g>
|
||||
<path d="M 882 424 l -2 32 h 20 l 2 -32 Z M 912 424 l 2 32 h 20 l -2 -32 Z" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 878 440 h 24 v 18 h -24 Z M 912 440 h 24 v 18 h -24 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<path d="M 874 456 h 30 c 4 10 0 18 -6 18 h -26 c -6 0 -6 -18 2 -18 Z M 910 456 h 30 c 8 0 8 18 2 18 h -26 c -6 0 -10 -8 -6 -18 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 874 400 L 866 430 L 948 430 L 940 400 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 868 424 L 946 424" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<path d="M 870 300 C 856 330 850 380 852 414 L 962 414 C 964 380 958 330 944 300 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="3"/>
|
||||
<path d="M 852 408 L 962 408" stroke="#26e0ff" stroke-width="4"/>
|
||||
<path d="M 880 300 L 906 360 L 932 300" fill="none" stroke="#ff3fa4" stroke-width="7"/>
|
||||
<path d="M 860 312 C 836 340 826 380 830 404 L 862 398 C 860 372 864 346 872 322 Z M 940 312 C 964 340 974 380 970 404 L 938 398 C 940 372 936 346 928 322 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 830 398 L 862 392 M 970 398 L 938 392" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<circle cx="848" cy="410" r="9" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/><circle cx="952" cy="410" r="9" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<circle cx="906" cy="362" r="7" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<use href="#head-B" transform="translate(753.8 115.7) scale(0.36)"/>
|
||||
</g><g filter="url(#outl)">
|
||||
<g><clipPath id="tlfB0"><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z"/></clipPath><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z" fill="#f7f4ff"/><g clip-path="url(#tlfB0)"><polygon points="900,400 894.1,399.7 888.2,399.5 882.3,399.1 876.6,398.6 870.9,397.9 865.3,397.1 859.8,396.1 854.5,394.8 849.4,393.2 844.4,391.3 839.6,389.2 834.9,386.7 830.5,383.9 826.2,380.8 822.1,377.4 818.2,373.8 814.4,369.8 810.7,365.6 807.2,361.2 803.8,356.6 800.5,351.8 797.3,347 794.1,342 790.9,337 790.9,337 792.4,344.8 794.4,351.8 796.7,358.5 799,364.9 801.6,370.9 804.4,376.6 807.4,382 810.6,386.9 814,391.4 817.8,395.4 821.8,399 826,402.1 830.6,404.7 835.5,406.8 840.6,408.3 846.1,409.4 851.8,410 857.8,410.1 864.1,409.7 870.6,408.9 877.4,407.7 884.4,406 891.8,403.8 900,400" fill="#cdbde6"/></g><polygon points="819,357 814.8,357 814.8,352.8 810.6,352.8 810.6,348.6 806.4,348.6 806.4,344.4 802.2,344.4 798,344.4 798,340.2 793.8,340.2 793.8,336 789.6,336 789.6,340.2 793.8,340.2 793.8,344.4 793.8,348.6 793.8,352.8 793.8,357 798,357 798,361.2 798,365.4 802.2,365.4 802.2,369.6 802.2,373.8 802.2,378 806.4,378 806.4,382.2 819,382.2" fill="#ff3fa4"/><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z" fill="none" stroke="#4a0f2e" stroke-width="3"/><polygon points="819,357 814.8,357 814.8,352.8 810.6,352.8 810.6,348.6 806.4,348.6 806.4,344.4 802.2,344.4 798,344.4 798,340.2 793.8,340.2 793.8,336 789.6,336 789.6,340.2 793.8,340.2 793.8,344.4 793.8,348.6 793.8,352.8 793.8,357 798,357 798,361.2 798,365.4 802.2,365.4 802.2,369.6 802.2,373.8 802.2,378 806.4,378 806.4,382.2 819,382.2" fill="none" stroke="#4a0f2e" stroke-width="3"/></g>
|
||||
<path d="M 882 424 l -2 32 h 20 l 2 -32 Z M 912 424 l 2 32 h 20 l -2 -32 Z" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 878 440 h 24 v 18 h -24 Z M 912 440 h 24 v 18 h -24 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<path d="M 874 456 h 30 c 4 10 0 18 -6 18 h -26 c -6 0 -6 -18 2 -18 Z M 910 456 h 30 c 8 0 8 18 2 18 h -26 c -6 0 -10 -8 -6 -18 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 874 400 L 866 430 L 948 430 L 940 400 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 868 424 L 946 424" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<path d="M 870 300 C 856 330 850 380 852 414 L 962 414 C 964 380 958 330 944 300 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="3"/>
|
||||
<path d="M 852 408 L 962 408" stroke="#26e0ff" stroke-width="4"/>
|
||||
<path d="M 880 300 L 906 360 L 932 300" fill="none" stroke="#ff3fa4" stroke-width="7"/>
|
||||
<path d="M 860 312 C 836 340 826 380 830 404 L 862 398 C 860 372 864 346 872 322 Z M 940 312 C 964 340 974 380 970 404 L 938 398 C 940 372 936 346 928 322 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 830 398 L 862 392 M 970 398 L 938 392" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<circle cx="848" cy="410" r="9" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/><circle cx="952" cy="410" r="9" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<circle cx="906" cy="362" r="7" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<use href="#head-B" transform="translate(753.8 115.7) scale(0.36)"/>
|
||||
</g>
|
||||
<g><clipPath id="tlfB0"><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z"/></clipPath><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z" fill="#f7f4ff"/><g clip-path="url(#tlfB0)"><polygon points="900,400 894.1,399.7 888.2,399.5 882.3,399.1 876.6,398.6 870.9,397.9 865.3,397.1 859.8,396.1 854.5,394.8 849.4,393.2 844.4,391.3 839.6,389.2 834.9,386.7 830.5,383.9 826.2,380.8 822.1,377.4 818.2,373.8 814.4,369.8 810.7,365.6 807.2,361.2 803.8,356.6 800.5,351.8 797.3,347 794.1,342 790.9,337 790.9,337 792.4,344.8 794.4,351.8 796.7,358.5 799,364.9 801.6,370.9 804.4,376.6 807.4,382 810.6,386.9 814,391.4 817.8,395.4 821.8,399 826,402.1 830.6,404.7 835.5,406.8 840.6,408.3 846.1,409.4 851.8,410 857.8,410.1 864.1,409.7 870.6,408.9 877.4,407.7 884.4,406 891.8,403.8 900,400" fill="#cdbde6"/></g><polygon points="819,357 814.8,357 814.8,352.8 810.6,352.8 810.6,348.6 806.4,348.6 806.4,344.4 802.2,344.4 798,344.4 798,340.2 793.8,340.2 793.8,336 789.6,336 789.6,340.2 793.8,340.2 793.8,344.4 793.8,348.6 793.8,352.8 793.8,357 798,357 798,361.2 798,365.4 802.2,365.4 802.2,369.6 802.2,373.8 802.2,378 806.4,378 806.4,382.2 819,382.2" fill="#ff3fa4"/><path d="M 900 400 Q 895.1 397.4 892 392.9 Q 886.7 391.7 882.5 388.3 Q 877.2 387.4 872.8 384.1 Q 867.4 383.3 863 380.1 Q 857.6 379.2 853.3 375.9 Q 848 374.7 843.8 371.3 Q 838.6 369.8 834.6 366.2 Q 829.5 364.5 825.7 360.6 Q 820.7 358.6 817.1 354.6 Q 812.1 352.5 808.6 348.3 Q 803.6 346.2 800.1 342.1 Q 794.9 340.6 790.9 337 Q 792.6 340.7 792.4 344.8 Q 796.2 351.2 796.7 358.5 Q 800.6 364.1 801.6 370.9 Q 805.8 375.7 807.4 382 Q 811.8 385.9 814 391.4 Q 818.8 394.3 821.8 399 Q 826.9 400.8 830.6 404.7 Q 836.1 405.3 840.6 408.3 Q 846.4 407.8 851.8 410 Q 857.9 408.4 864.1 409.7 Q 870.5 407.1 877.4 407.7 Q 884.1 404 891.8 403.8 Q 895.4 400.9 900 400 Z" fill="none" stroke="#4a0f2e" stroke-width="3"/><polygon points="819,357 814.8,357 814.8,352.8 810.6,352.8 810.6,348.6 806.4,348.6 806.4,344.4 802.2,344.4 798,344.4 798,340.2 793.8,340.2 793.8,336 789.6,336 789.6,340.2 793.8,340.2 793.8,344.4 793.8,348.6 793.8,352.8 793.8,357 798,357 798,361.2 798,365.4 802.2,365.4 802.2,369.6 802.2,373.8 802.2,378 806.4,378 806.4,382.2 819,382.2" fill="none" stroke="#4a0f2e" stroke-width="3"/></g>
|
||||
<path d="M 882 424 l -2 32 h 20 l 2 -32 Z M 912 424 l 2 32 h 20 l -2 -32 Z" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 878 440 h 24 v 18 h -24 Z M 912 440 h 24 v 18 h -24 Z" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<path d="M 874 456 h 30 c 4 10 0 18 -6 18 h -26 c -6 0 -6 -18 2 -18 Z M 910 456 h 30 c 8 0 8 18 2 18 h -26 c -6 0 -10 -8 -6 -18 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 874 400 L 866 430 L 948 430 L 940 400 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 868 424 L 946 424" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<path d="M 870 300 C 856 330 850 380 852 414 L 962 414 C 964 380 958 330 944 300 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="3"/>
|
||||
<path d="M 852 408 L 962 408" stroke="#26e0ff" stroke-width="4"/>
|
||||
<path d="M 880 300 L 906 360 L 932 300" fill="none" stroke="#ff3fa4" stroke-width="7"/>
|
||||
<path d="M 860 312 C 836 340 826 380 830 404 L 862 398 C 860 372 864 346 872 322 Z M 940 312 C 964 340 974 380 970 404 L 938 398 C 940 372 936 346 928 322 Z" fill="#1b1530" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<path d="M 830 398 L 862 392 M 970 398 L 938 392" stroke="#ff3fa4" stroke-width="4"/>
|
||||
<circle cx="848" cy="410" r="9" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/><circle cx="952" cy="410" r="9" fill="#f2c4a8" stroke="#4a0f2e" stroke-width="2.5"/>
|
||||
<circle cx="906" cy="362" r="7" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="2"/>
|
||||
<use href="#head-B" transform="translate(753.8 115.7) scale(0.36)"/>
|
||||
</g>
|
||||
<text x="800" y="508" class="lab">FULL BODY, 2.2 HEADS</text>
|
||||
<g clip-path="url(#card)" filter="url(#black)" transform="translate(1010 108) scale(0.215)"><use href="#bust-B"/></g>
|
||||
<text x="1012" y="306" class="lab">SILHOUETTE</text>
|
||||
<g clip-path="url(#card)" filter="url(#black)" transform="translate(1012 320) scale(0.064)"><use href="#bust-B"/></g>
|
||||
<text x="1070" y="348" class="sm">48 px</text>
|
||||
<text x="800" y="548" class="lab">HOOK</text>
|
||||
<text x="800" y="574" class="t" font-size="15"><tspan x="800" dy="0">Canon Kiko with the kitsune mask turned up: an</tspan><tspan x="800" dy="22">oversized painted mask sits tilted on her crown,</tspan><tspan x="800" dy="22">fox ears doubled above her own. Cat smile.</tspan></text>
|
||||
<text x="800" y="640" class="lab">PALETTE</text>
|
||||
<rect x="800" y="652" width="34" height="34" rx="3" fill="#ff3fa4" stroke="#4a0f2e" stroke-width="1.5"/><text x="842" y="667" class="lab">#ff3fa4</text><text x="842" y="682" class="sm">key, trim, tips</text><rect x="928" y="652" width="34" height="34" rx="3" fill="#4a0f2e" stroke="#4a0f2e" stroke-width="1.5"/><text x="970" y="667" class="lab">#4a0f2e</text><text x="970" y="682" class="sm">line</text><rect x="1056" y="652" width="34" height="34" rx="3" fill="#f7f4ff" stroke="#4a0f2e" stroke-width="1.5"/><text x="1098" y="667" class="lab">#f7f4ff</text><text x="1098" y="682" class="sm">hair, fur, mask</text><rect x="800" y="714" width="34" height="34" rx="3" fill="#26e0ff" stroke="#4a0f2e" stroke-width="1.5"/><text x="842" y="729" class="lab">#26e0ff</text><text x="842" y="744" class="sm">eyes, inner trim</text><rect x="928" y="714" width="34" height="34" rx="3" fill="#1b1530" stroke="#4a0f2e" stroke-width="1.5"/><text x="970" y="729" class="lab">#1b1530</text><text x="970" y="744" class="sm">coat</text><rect x="1056" y="714" width="34" height="34" rx="3" fill="#ffcf3a" stroke="#4a0f2e" stroke-width="1.5"/><text x="1098" y="729" class="lab">#ffcf3a</text><text x="1098" y="744" class="sm">bells</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 34 KiB |
BIN
cast-designs/proposals/kiko/kiko-C.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
137
cast-designs/proposals/kiko/kiko-C.svg
Normal file
|
After Width: | Height: | Size: 51 KiB |
101
cast-designs/proposals/kiko/kiko-notes.md
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
# Kiko: proposal notes, round 1
|
||||
|
||||
## The brief changed: canon wins
|
||||
|
||||
Kiko already has an established design: the praxis character sheet at
|
||||
`F:\Projects\gamecult-site\GameCult\static\interactive\cotsc-praxis\character-sheets\kiko-sheet.png`
|
||||
and its sprites in `sprites\kiko\`. It shows white-silver hair, white fox ears, a
|
||||
white kitsune mask worn on the crown, round hair clips with gold bells and
|
||||
magenta tassels, cyan eyes and a fang grin, a black coat trimmed in magenta and
|
||||
cyan with a gold bell at the throat, several fluffy white tails, and a streaming
|
||||
setup of monitors and stickers. `kiko.md` missed it. Its A/B/C (Pixel Tails,
|
||||
Screen Mask, Hood Gremlin) were new designs. Here they are replaced by three
|
||||
takes on the canon design. Each take turns up a different canon element as the
|
||||
hook:
|
||||
|
||||
- **A, Seven Tails:** the tails.
|
||||
- **B, The Mask:** the mask.
|
||||
- **C, On Air:** the streaming gear.
|
||||
|
||||
Things that stay the same across all three: the face construction, cyan eyes,
|
||||
hair, ears, bell clips and coat. That way the three read as one character.
|
||||
|
||||
`kiko-old-A.svg/.png` is the only sheet drawn from the old brief (Pixel Tails,
|
||||
before the canon note arrived): magenta eyes, a black hoodie, and tails in four
|
||||
event colours. It is kept for comparison. The old B and C were never drawn.
|
||||
|
||||
Palette for all three: magenta `#ff3fa4` (key, trims, tail tips), line
|
||||
`#4a0f2e`, white `#f7f4ff` (hair, fur, mask), cyan `#26e0ff` (eyes, inner trim,
|
||||
screen), coat `#1b1530`, gold `#ffcf3a` (bells). Skin is `#f2c4a8`. The skin
|
||||
swatch is left off the sheet because the swatch grid holds six.
|
||||
|
||||
StreamPixels' stepped-pixel shape language is kept, but it lives in the
|
||||
details. It is never the rendering style. It shows up as the staircase tail
|
||||
tips in A, and as the pixel heart and cat stickers and the LIVE tag in C.
|
||||
|
||||
## A: Seven Tails
|
||||
|
||||
- **What it does.** Seven tails fan out behind her head. They are fluffy white
|
||||
with lilac shadow, and each tip is a magenta staircase. In silhouette the fan
|
||||
becomes a spiky crown with ears and mask on top, the most distinctive shape of
|
||||
the three at 48 px. The mask rides small on the crown. The expression is an
|
||||
open fang grin.
|
||||
- **Changed after looking.**
|
||||
- The first canon pass hid the mask behind the bangs, so the mask now draws
|
||||
last.
|
||||
- The tails were angled so they clear the hair mass on both sides; before
|
||||
that, five of the seven sat invisibly behind the head.
|
||||
- The tip steps were refined (grid down to 70 percent of the tail grid), and
|
||||
the bust was scaled down so the fan fits inside the card.
|
||||
- The neck was cut down, because the neck shape was painting over the coat
|
||||
collar.
|
||||
- **Push in round 2.**
|
||||
- The staircase tips still read as coarse blocks where tails overlap. Try
|
||||
fewer, larger steps, plus a thin white gap between neighbouring tails.
|
||||
- The white tails sit against lilac back hair with too little separation.
|
||||
Push the hair shadow cooler or give the tails a cyan rim.
|
||||
|
||||
## B: The Mask
|
||||
|
||||
- **What it does.** The kitsune mask is drawn at about 1.75 times A's size,
|
||||
tilted on the crown. It stacks a second pair of fox ears above her own, so
|
||||
the silhouette is tall and four-pointed. The painted mask face (closed
|
||||
happy eyes) works as a second expression beside her cat smile. A magenta
|
||||
cord with a large bell streams back from the mask.
|
||||
- **Changed after looking.** The mask was enlarged and the cord ribbons were
|
||||
added, to pull the silhouette away from C's. The lone tail was removed from
|
||||
the bust, because only its stepped tip showed and it read as a glitch blob.
|
||||
- **Push in round 2.**
|
||||
- At 48 px, B's silhouette is the closest to the other two: a tall blob with
|
||||
ears. The mask needs a stronger tilt or offset so it breaks the head outline
|
||||
sideways, not just upward.
|
||||
- Try letting the mask's painted face change per expression, as the
|
||||
portrait-set gag.
|
||||
|
||||
## C: On Air
|
||||
|
||||
- **What it does.** She leans out of a stream monitor. This is the canon
|
||||
overlay pose, cropped as a boxy screen behind her head with stickers and a
|
||||
LIVE tag on the bezel. She wears a magenta headset with sticker earcups and a
|
||||
boom mic jutting past her cheek, the mask pushed to the far side, and a cable
|
||||
curling down like a tail. In silhouette the screen makes a rectangle with ears
|
||||
breaking out of the top, which nothing else in the cast does.
|
||||
- **Changed after looking.**
|
||||
- Headset and mic alone left the silhouette identical to B's, so the monitor
|
||||
was added behind her as the shape carrier.
|
||||
- The mic was pushed forward past the face contour.
|
||||
- A stray inner glyph on the far earcup was replaced with an LED ring and a
|
||||
pixel-cat sticker.
|
||||
- The LIVE lettering was redrawn.
|
||||
- **Push in round 2.**
|
||||
- The far earcup is crowded by the far ear and the mask. Simplify to one of
|
||||
those two.
|
||||
- The monitor bezel loses its stickers behind the hair. Move them to the top
|
||||
corners.
|
||||
- The full-body sheet does not show the monitor yet.
|
||||
|
||||
## Strongest
|
||||
|
||||
C is the strongest. It is the most canon-faithful, its boxy silhouette is
|
||||
unique in the cast, and the gear tells you what StreamPixels is. A is the
|
||||
safest iconic read at thumbnail size.
|
||||
BIN
cast-designs/proposals/kiko/kiko-old-A.png
Normal file
|
After Width: | Height: | Size: 188 KiB |
136
cast-designs/proposals/kiko/kiko-old-A.svg
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
cast-designs/proposals/libby/libby-A.png
Normal file
|
After Width: | Height: | Size: 313 KiB |
210
cast-designs/proposals/libby/libby-A.svg
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<!-- Libby, take A: The Glowing Tome. Three takes on the canon design (cotsc-praxis character sheet). Hand-authored. -->
|
||||
<defs>
|
||||
<filter id="outline" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feFlood flood-color="#2a1d40"/>
|
||||
<feComposite in2="d" operator="in" result="o"/>
|
||||
<feMerge><feMergeNode in="o"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feColorMatrix in="d" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<radialGradient id="glow" cx="0.46" cy="0.45" r="0.62">
|
||||
<stop offset="0" stop-color="#2d2150"/>
|
||||
<stop offset="1" stop-color="#07111a"/>
|
||||
</radialGradient>
|
||||
<clipPath id="chest"><rect x="-200" y="-100" width="1100" height="890"/></clipPath>
|
||||
|
||||
<g id="backhair" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M330 118 C200 116 110 200 106 320 C96 372 50 404 72 468 C88 512 36 540 54 604 C66 652 22 692 46 744 C54 764 44 782 38 790 L618 790 C628 770 644 740 628 700 C614 650 654 610 628 556 C610 516 640 466 608 416 C586 376 594 330 568 290 C548 190 452 118 330 118 Z" fill="#a99be0"/>
|
||||
<path d="M196 470 C226 560 206 690 226 790 L474 790 C484 690 462 560 486 470 Z" fill="#7d6fc4" stroke="none"/>
|
||||
<path d="M124 330 C114 420 130 470 114 540 C102 600 122 650 106 724 M156 440 C146 510 166 566 146 646 M564 330 C576 420 560 470 578 540 C590 600 570 660 584 730" fill="none" stroke="#7d6fc4" stroke-width="4"/>
|
||||
<path d="M578 520 C598 570 584 620 596 676" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
</g>
|
||||
|
||||
<g id="ribbon" transform="translate(0 0) translate(160 205) scale(1.0) translate(-160 -205)" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M150 222 C120 290 108 360 98 432 L122 420 L134 448 C140 370 152 296 166 226 Z" fill="#241a33"/>
|
||||
<path d="M160 204 C112 146 52 140 46 186 C42 222 104 232 160 214 Z" fill="#241a33"/>
|
||||
<path d="M160 210 C104 224 66 262 84 292 C102 316 142 262 164 220 Z" fill="#241a33"/>
|
||||
<path d="M60 190 C66 170 96 168 120 182" fill="none" stroke="#a99be0" stroke-width="3"/>
|
||||
<path d="M86 186 l10 -10 l10 10 l-10 10 Z M104 252 l9 -9 l9 9 l-9 9 Z M124 340 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<circle cx="162" cy="210" r="15" fill="#241a33"/>
|
||||
<path d="M156 204 l6 -6 l6 6 l-6 6 Z" fill="#c8a24a" stroke="none"/>
|
||||
</g>
|
||||
|
||||
<g id="hairpin" transform="translate(222 214) scale(1.0) rotate(-12)" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round">
|
||||
<g transform="rotate(35)"><path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="#efe6d8"/></g>
|
||||
<g transform="rotate(-35)"><path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="#efe6d8"/></g>
|
||||
<path d="M-20 -4 L20 -4" stroke="#cfc2ae" stroke-width="2" transform="rotate(-35)"/>
|
||||
</g>
|
||||
|
||||
<g id="headfront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- face -->
|
||||
<path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z" fill="#f6d6c4" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M452 404 C466 452 452 500 412 540 C440 514 456 472 448 432 Z" fill="#e6b4a0"/>
|
||||
<clipPath id="faceclip"><path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z"/></clipPath>
|
||||
<path clip-path="url(#faceclip)" transform="translate(-3 11)" d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="#e6b4a0"/>
|
||||
<path d="M454 440 C460 470 452 500 432 526" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<!-- near ear with gold drop -->
|
||||
<path d="M186 410 C164 398 152 424 160 448 C166 466 180 472 194 462 Z" fill="#f6d6c4" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M178 426 C170 432 172 446 180 452" fill="none" stroke="#e6b4a0" stroke-width="3"/>
|
||||
<circle cx="170" cy="474" r="5" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/>
|
||||
<path d="M170 480 L176 492 L170 504 L164 492 Z" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/>
|
||||
<!-- blush -->
|
||||
<ellipse cx="262" cy="508" rx="26" ry="9" fill="#f29aa6" opacity="0.5"/>
|
||||
<ellipse cx="428" cy="506" rx="16" ry="8" fill="#f29aa6" opacity="0.5"/>
|
||||
<path d="M250 504 l6 -8 M262 506 l6 -8 M274 506 l6 -8" stroke="#dd7f8c" stroke-width="2" opacity="0.75"/>
|
||||
|
||||
<clipPath id="eyeN"><path d="M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z"/></clipPath>
|
||||
<path d="M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeN)">
|
||||
<ellipse cx="282" cy="448" rx="35" ry="47" fill="#6a64a0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M248.2 436 A35 47 0 0 1 315.8 436 Q282 450 248.2 436 Z" fill="#2a1d40" opacity="0.85"/>
|
||||
<path d="M255 474 C265 494 299 494 309 474 C297 484 267 484 255 474 Z" fill="#bdb6ec"/>
|
||||
<ellipse cx="283" cy="452" rx="13" ry="21" fill="#2a1d40"/>
|
||||
</g>
|
||||
<ellipse cx="268" cy="430" rx="11" ry="14" fill="#fff"/>
|
||||
<circle cx="300" cy="470" r="5" fill="#fff"/>
|
||||
<path d="M220 428 C238 394 300 386 334 412" fill="none" stroke="#2a1d40" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M222 424 L206 414 L224 418 Z M228 412 L214 398 L232 406 Z" fill="#2a1d40" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M242 486 C264 496 302 494 320 480" fill="none" stroke="#2a1d40" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<clipPath id="eyeF"><path d="M378 414 C394 398 430 398 448 414 L447 474 C434 488 398 490 384 478 Z"/></clipPath>
|
||||
<path d="M378 414 C394 398 430 398 448 414 L447 474 C434 488 398 490 384 478 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeF)">
|
||||
<ellipse cx="412" cy="448" rx="27" ry="46" fill="#6a64a0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M385.9 436 A27 46 0 0 1 438.1 436 Q412 450 385.9 436 Z" fill="#2a1d40" opacity="0.85"/>
|
||||
<path d="M393 474 C403 494 421 494 431 474 C419 484 405 484 393 474 Z" fill="#bdb6ec"/>
|
||||
<ellipse cx="413" cy="452" rx="10" ry="20" fill="#2a1d40"/>
|
||||
</g>
|
||||
<ellipse cx="402" cy="430" rx="9" ry="13" fill="#fff"/>
|
||||
<circle cx="422" cy="470" r="4" fill="#fff"/>
|
||||
<path d="M374 418 C392 394 432 392 452 414" fill="none" stroke="#2a1d40" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M450 412 L464 404 L455 418 Z" fill="#2a1d40" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M388 482 C404 490 428 490 440 480" fill="none" stroke="#2a1d40" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<!-- nose and mouth -->
|
||||
<path d="M362 470 L367 480 L360 482" fill="none" stroke="#c98a76" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M326 500 C342 494 372 492 388 498 C384 528 336 532 326 500 Z" fill="#8c3c4c" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M340 518 C350 510 368 510 376 518 C366 524 348 524 340 518 Z" fill="#e0707a"/>
|
||||
<path d="M330 500 L384 498 L382 504 L332 506 Z" fill="#ffffff"/>
|
||||
<!-- round glasses, thin dark frames -->
|
||||
<g fill="none" stroke="#2a1d40">
|
||||
<path d="M224 436 L184 424" stroke-width="4"/>
|
||||
<circle cx="280" cy="444" r="58" stroke-width="4.5"/>
|
||||
<ellipse cx="413" cy="442" rx="43" ry="56" stroke-width="4.5"/>
|
||||
<path d="M338 440 C350 430 360 430 370 438" stroke-width="4.5"/>
|
||||
<path d="M246 404 C256 394 268 390 280 390" stroke="#ffffff" stroke-width="5" opacity="0.75"/>
|
||||
<path d="M392 398 C398 392 406 390 412 390" stroke="#ffffff" stroke-width="4" opacity="0.75"/>
|
||||
</g>
|
||||
<!-- side lock tucked behind the ear -->
|
||||
<path d="M190 236 C170 280 166 330 174 392 C178 408 188 418 198 418 C194 380 204 332 232 316 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<!-- long front lock over the far shoulder -->
|
||||
<path d="M468 300 C500 346 502 402 488 452 C476 502 502 544 498 594 C494 644 518 684 508 724 C544 686 536 644 540 602 C544 552 522 502 530 452 C538 392 522 334 492 286 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3.5"/>
|
||||
<path d="M498 330 C514 380 512 420 506 456 C500 500 520 540 516 590" fill="none" stroke="#7d6fc4" stroke-width="3.5"/>
|
||||
<path d="M532 470 C536 520 528 560 534 610" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
<!-- swept fringe, parted at the back, hooking into the canon curl at the front -->
|
||||
<path d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3.5"/>
|
||||
<path d="M236 200 C306 176 386 182 446 214 L440 230 C384 202 306 198 242 216 Z" fill="#d8d1f7"/>
|
||||
<path d="M300 168 C322 230 334 290 352 360 M382 174 C410 240 420 300 426 372 M250 192 C270 240 280 290 290 340 M454 210 C484 270 500 330 520 380" fill="none" stroke="#7d6fc4" stroke-width="3.5"/>
|
||||
<path d="M492 260 C510 300 514 340 520 376" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
<path d="M248 366 C266 354 296 352 314 360" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/><path d="M386 352 C402 342 426 342 440 352" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="bustbody" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M314 530 L314 600 L384 600 L380 530 Z" fill="#f6d6c4"/>
|
||||
<path d="M314 538 C338 560 362 560 382 546 L383 580 L315 584 Z" fill="#e6b4a0" stroke="none"/>
|
||||
<path d="M92 790 C96 700 148 650 240 628 L300 610 L402 610 L472 628 C554 650 604 700 614 790 Z" fill="#241a33"/>
|
||||
<path d="M470 640 C540 662 584 704 592 790 L614 790 C604 700 554 650 472 628 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M530 660 C580 690 604 734 610 790" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<path d="M130 700 C150 670 190 648 236 636" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<!-- standing collar -->
|
||||
<path d="M290 620 C286 592 296 572 314 564 L386 564 C404 572 412 592 410 622 L350 654 Z" fill="#241a33"/>
|
||||
<path d="M300 612 C300 596 306 584 316 578 L384 578 C394 584 400 596 400 612" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="#8a6a9a" stroke-width="7"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="#2a1d40" stroke-width="1.5"/>
|
||||
<path d="M190 724 l14 -14 l14 14 l-14 14 Z M486 724 l14 -14 l14 14 l-14 14 Z" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<path d="M204 724 l0 0" fill="none"/>
|
||||
<!-- brooch -->
|
||||
<circle cx="350" cy="652" r="17" fill="#c8a24a"/>
|
||||
<circle cx="350" cy="652" r="9" fill="#b77cff" stroke-width="2"/>
|
||||
<circle cx="347" cy="649" r="3" fill="#ffffff" stroke="none"/>
|
||||
</g>
|
||||
|
||||
<g id="prop" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M250 676 L232 640 M300 668 L292 626 M444 668 L452 626 M494 676 L512 640" fill="none" stroke="#b77cff" stroke-width="4"/>
|
||||
<path d="M196 704 L372 712 L548 704 L552 784 L372 790 L192 784 Z" fill="#241a33"/>
|
||||
<path d="M196 704 L214 704 L212 722 L196 724 Z M548 704 L532 704 L534 722 L550 724 Z" fill="#c8a24a" stroke-width="2"/>
|
||||
<path d="M214 694 C268 672 322 674 372 694 L372 768 C322 750 268 748 214 768 Z" fill="#efe6d8"/>
|
||||
<path d="M372 694 C424 674 478 672 532 694 L532 768 C478 748 424 750 372 768 Z" fill="#efe6d8"/>
|
||||
<path d="M214 694 C268 672 322 674 372 694 L372 708 C322 690 268 690 214 708 Z" fill="#cfc2ae" stroke="none"/>
|
||||
<g fill="none" stroke="#b77cff" stroke-width="3">
|
||||
<path d="M240 716 L340 712 M240 732 L330 728 M240 748 L346 744 M402 712 L500 716 M398 728 L470 730"/>
|
||||
<rect x="440" y="726" width="36" height="30" transform="rotate(4 458 741)"/>
|
||||
</g>
|
||||
<!-- glyphs rising off the page -->
|
||||
<g fill="none" stroke="#b77cff" stroke-width="4">
|
||||
<rect x="434" y="624" width="40" height="40" rx="5" transform="rotate(45 454 644)"/>
|
||||
<circle cx="454" cy="644" r="10"/>
|
||||
<path d="M262 664 l0 -16 M254 656 l16 0 M518 610 l0 -20 M508 600 l20 0" stroke-width="3"/>
|
||||
</g>
|
||||
<circle cx="454" cy="644" r="4" fill="#ffffff" stroke="none"/>
|
||||
<!-- hands -->
|
||||
<path d="M176 760 C172 732 190 716 212 718 C232 720 238 742 232 762 C226 782 182 784 176 760 Z" fill="#f6d6c4"/>
|
||||
<path d="M568 760 C572 732 554 716 532 718 C512 720 506 742 512 762 C518 782 562 784 568 760 Z" fill="#f6d6c4"/>
|
||||
<path d="M208 726 L222 744 M538 726 L522 744" stroke-width="2.5"/>
|
||||
</g>
|
||||
<g id="bust" clip-path="url(#chest)">
|
||||
<use href="#backhair"/><use href="#ribbon"/><use href="#bustbody"/><use href="#headfront"/><use href="#hairpin"/><use href="#prop"/>
|
||||
</g>
|
||||
|
||||
<g id="chibibody" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M112 186 L76 202 C58 262 48 340 36 404 L192 404 C180 340 170 262 150 202 Z" fill="#241a33"/>
|
||||
<path d="M132 200 L150 202 C170 262 180 340 192 404 L160 404 C150 330 144 260 132 200 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M114 214 L112 404" fill="none" stroke="#8a6a9a" stroke-width="4"/>
|
||||
<path d="M60 330 l8 -8 l8 8 l-8 8 Z M150 330 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="#8a6a9a" stroke-width="2"/>
|
||||
<path d="M70 404 C70 418 104 418 104 404 Z M124 404 C124 418 158 418 158 404 Z" fill="#150f20"/>
|
||||
<path d="M96 190 C96 180 132 180 132 190 L130 206 L98 206 Z" fill="#241a33"/>
|
||||
<circle cx="114" cy="210" r="6" fill="#c8a24a"/>
|
||||
<circle cx="114" cy="210" r="3" fill="#b77cff" stroke="none"/>
|
||||
<path d="M80 206 C62 230 56 254 58 272 L96 268 C94 250 96 232 100 222 Z" fill="#241a33"/>
|
||||
<path d="M148 206 C166 230 172 254 170 272 L132 268 C134 250 132 232 128 222 Z" fill="#241a33"/>
|
||||
<ellipse cx="114" cy="244" rx="80" ry="34" fill="#b77cff" opacity="0.25" stroke="none"/>
|
||||
<path d="M58 262 L114 266 L170 262 L170 290 L114 294 L58 290 Z" fill="#241a33"/>
|
||||
<path d="M62 256 C82 248 100 250 114 258 L114 284 C100 276 82 276 62 284 Z M114 258 C128 250 146 248 166 256 L166 284 C146 276 128 276 114 284 Z" fill="#efe6d8"/>
|
||||
<rect x="104" y="214" width="20" height="20" rx="2" transform="rotate(45 114 224)" fill="none" stroke="#b77cff" stroke-width="3"/>
|
||||
<circle cx="58" cy="278" r="10" fill="#f6d6c4"/><circle cx="170" cy="278" r="10" fill="#f6d6c4"/>
|
||||
</g>
|
||||
<clipPath id="card"><path d="M58 14 L792 14 L752 786 L18 786 Z"/></clipPath>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#efeae0"/>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="url(#glow)"/>
|
||||
<g clip-path="url(#card)"><g transform="translate(66 6) scale(0.985)"><use href="#bust" filter="url(#outline)"/></g></g>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<text x="78" y="44" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#a99be0" letter-spacing="4">BUST · FOUND IT</text>
|
||||
|
||||
<text x="820" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#2a1d40" letter-spacing="3">FULL BODY · 2.5 HEADS</text>
|
||||
<g transform="translate(830 52)" filter="url(#outline)">
|
||||
<g transform="scale(0.34)"><use href="#backhair"/><use href="#ribbon"/></g>
|
||||
<use href="#chibibody"/>
|
||||
<g transform="scale(0.34)"><use href="#headfront"/><use href="#hairpin"/></g>
|
||||
</g>
|
||||
|
||||
<text x="1050" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#2a1d40" letter-spacing="3">SILHOUETTE</text>
|
||||
<g transform="translate(1040 54) scale(0.19)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<g transform="translate(1078 230) scale(0.06)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<text x="1050" y="300" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#555">48 px</text>
|
||||
|
||||
<text x="820" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="30" font-weight="700" fill="#2a1d40">LIBBY · A</text>
|
||||
<text x="820" y="570" font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="#2a1d40" letter-spacing="2">THE GLOWING TOME</text>
|
||||
<text font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#222"><tspan x="820" y="604">Hook: the swept lavender fringe that hooks into a curl,</tspan><tspan x="820" y="623">round glasses, and an open tome glowing up at her face.</tspan></text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#333">
|
||||
<rect x="820" y="660" width="52" height="52" fill="#a99be0" stroke="#2a1d40" stroke-width="2"/><text x="820" y="728">#a99be0</text>
|
||||
<rect x="880" y="660" width="52" height="52" fill="#2a1d40" stroke="#2a1d40" stroke-width="2"/><text x="880" y="728">#2a1d40</text>
|
||||
<rect x="940" y="660" width="52" height="52" fill="#241a33" stroke="#2a1d40" stroke-width="2"/><text x="940" y="728">#241a33</text>
|
||||
<rect x="1000" y="660" width="52" height="52" fill="#f6d6c4" stroke="#2a1d40" stroke-width="2"/><text x="1000" y="728">#f6d6c4</text>
|
||||
<rect x="1060" y="660" width="52" height="52" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/><text x="1060" y="728">#c8a24a</text>
|
||||
<rect x="1120" y="660" width="52" height="52" fill="#b77cff" stroke="#2a1d40" stroke-width="2"/><text x="1120" y="728">#b77cff</text>
|
||||
</g>
|
||||
<text x="820" y="760" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#555">hair key · line · robe · skin · gold · tome glow</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
BIN
cast-designs/proposals/libby/libby-B.png
Normal file
|
After Width: | Height: | Size: 291 KiB |
217
cast-designs/proposals/libby/libby-B.svg
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<!-- Libby, take B: The Skull Stamp. Three takes on the canon design (cotsc-praxis character sheet). Hand-authored. -->
|
||||
<defs>
|
||||
<filter id="outline" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feFlood flood-color="#2a1d40"/>
|
||||
<feComposite in2="d" operator="in" result="o"/>
|
||||
<feMerge><feMergeNode in="o"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feColorMatrix in="d" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<radialGradient id="glow" cx="0.46" cy="0.45" r="0.62">
|
||||
<stop offset="0" stop-color="#2d2150"/>
|
||||
<stop offset="1" stop-color="#07111a"/>
|
||||
</radialGradient>
|
||||
<clipPath id="chest"><rect x="-200" y="-100" width="1100" height="890"/></clipPath>
|
||||
|
||||
<g id="backhair" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M330 118 C200 116 110 200 106 320 C96 372 50 404 72 468 C88 512 36 540 54 604 C66 652 22 692 46 744 C54 764 44 782 38 790 L618 790 C628 770 644 740 628 700 C614 650 654 610 628 556 C610 516 640 466 608 416 C586 376 594 330 568 290 C548 190 452 118 330 118 Z" fill="#a99be0"/>
|
||||
<path d="M196 470 C226 560 206 690 226 790 L474 790 C484 690 462 560 486 470 Z" fill="#7d6fc4" stroke="none"/>
|
||||
<path d="M124 330 C114 420 130 470 114 540 C102 600 122 650 106 724 M156 440 C146 510 166 566 146 646 M564 330 C576 420 560 470 578 540 C590 600 570 660 584 730" fill="none" stroke="#7d6fc4" stroke-width="4"/>
|
||||
<path d="M578 520 C598 570 584 620 596 676" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
</g>
|
||||
|
||||
<g id="ribbon" transform="translate(-14 -40) translate(160 205) scale(1.6) translate(-160 -205)" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M150 222 C120 290 108 360 98 432 L122 420 L134 448 C140 370 152 296 166 226 Z" fill="#241a33"/>
|
||||
<path d="M160 204 C112 146 52 140 46 186 C42 222 104 232 160 214 Z" fill="#241a33"/>
|
||||
<path d="M160 210 C104 224 66 262 84 292 C102 316 142 262 164 220 Z" fill="#241a33"/>
|
||||
<path d="M60 190 C66 170 96 168 120 182" fill="none" stroke="#a99be0" stroke-width="3"/>
|
||||
<path d="M86 186 l10 -10 l10 10 l-10 10 Z M104 252 l9 -9 l9 9 l-9 9 Z M124 340 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<circle cx="162" cy="210" r="15" fill="#241a33"/>
|
||||
<path d="M156 204 l6 -6 l6 6 l-6 6 Z" fill="#c8a24a" stroke="none"/>
|
||||
</g>
|
||||
|
||||
<g id="hairpin" transform="translate(222 214) scale(1.0) rotate(-12)" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round">
|
||||
<g transform="rotate(35)"><path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="#efe6d8"/></g>
|
||||
<g transform="rotate(-35)"><path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="#efe6d8"/></g>
|
||||
<path d="M-20 -4 L20 -4" stroke="#cfc2ae" stroke-width="2" transform="rotate(-35)"/>
|
||||
</g>
|
||||
|
||||
<g id="headfront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- face -->
|
||||
<path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z" fill="#f6d6c4" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M452 404 C466 452 452 500 412 540 C440 514 456 472 448 432 Z" fill="#e6b4a0"/>
|
||||
<clipPath id="faceclip"><path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z"/></clipPath>
|
||||
<path clip-path="url(#faceclip)" transform="translate(-3 11)" d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="#e6b4a0"/>
|
||||
<path d="M454 440 C460 470 452 500 432 526" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<!-- near ear with gold drop -->
|
||||
<path d="M186 410 C164 398 152 424 160 448 C166 466 180 472 194 462 Z" fill="#f6d6c4" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M178 426 C170 432 172 446 180 452" fill="none" stroke="#e6b4a0" stroke-width="3"/>
|
||||
<circle cx="170" cy="474" r="5" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/>
|
||||
<path d="M170 480 L176 492 L170 504 L164 492 Z" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/>
|
||||
<!-- blush -->
|
||||
<ellipse cx="262" cy="508" rx="26" ry="9" fill="#f29aa6" opacity="0.5"/>
|
||||
<ellipse cx="428" cy="506" rx="16" ry="8" fill="#f29aa6" opacity="0.5"/>
|
||||
<path d="M250 504 l6 -8 M262 506 l6 -8 M274 506 l6 -8" stroke="#dd7f8c" stroke-width="2" opacity="0.75"/>
|
||||
|
||||
<clipPath id="eyeN"><path d="M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z"/></clipPath>
|
||||
<path d="M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeN)">
|
||||
<ellipse cx="282" cy="448" rx="35" ry="47" fill="#6a64a0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M248.2 436 A35 47 0 0 1 315.8 436 Q282 450 248.2 436 Z" fill="#2a1d40" opacity="0.85"/>
|
||||
<path d="M255 474 C265 494 299 494 309 474 C297 484 267 484 255 474 Z" fill="#bdb6ec"/>
|
||||
<ellipse cx="283" cy="452" rx="13" ry="21" fill="#2a1d40"/>
|
||||
</g>
|
||||
<ellipse cx="268" cy="430" rx="11" ry="14" fill="#fff"/>
|
||||
<circle cx="300" cy="470" r="5" fill="#fff"/>
|
||||
<path d="M220 428 C238 394 300 386 334 412" fill="none" stroke="#2a1d40" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M222 424 L206 414 L224 418 Z M228 412 L214 398 L232 406 Z" fill="#2a1d40" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M242 486 C264 496 302 494 320 480" fill="none" stroke="#2a1d40" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<clipPath id="eyeF"><path d="M378 414 C394 398 430 398 448 414 L447 474 C434 488 398 490 384 478 Z"/></clipPath>
|
||||
<path d="M378 414 C394 398 430 398 448 414 L447 474 C434 488 398 490 384 478 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeF)">
|
||||
<ellipse cx="412" cy="448" rx="27" ry="46" fill="#6a64a0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M385.9 436 A27 46 0 0 1 438.1 436 Q412 450 385.9 436 Z" fill="#2a1d40" opacity="0.85"/>
|
||||
<path d="M393 474 C403 494 421 494 431 474 C419 484 405 484 393 474 Z" fill="#bdb6ec"/>
|
||||
<ellipse cx="413" cy="452" rx="10" ry="20" fill="#2a1d40"/>
|
||||
</g>
|
||||
<ellipse cx="402" cy="430" rx="9" ry="13" fill="#fff"/>
|
||||
<circle cx="422" cy="470" r="4" fill="#fff"/>
|
||||
<path d="M374 418 C392 394 432 392 452 414" fill="none" stroke="#2a1d40" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M450 412 L464 404 L455 418 Z" fill="#2a1d40" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M388 482 C404 490 428 490 440 480" fill="none" stroke="#2a1d40" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<!-- nose and mouth -->
|
||||
<path d="M362 470 L367 480 L360 482" fill="none" stroke="#c98a76" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M330 506 C342 512 360 511 374 500" fill="none" stroke="#2a1d40" stroke-width="3" stroke-linecap="round"/><path d="M374 500 l6 -3" stroke="#2a1d40" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<!-- round glasses, thin dark frames -->
|
||||
<g fill="none" stroke="#2a1d40">
|
||||
<path d="M224 436 L184 424" stroke-width="4"/>
|
||||
<circle cx="280" cy="444" r="58" stroke-width="4.5"/>
|
||||
<ellipse cx="413" cy="442" rx="43" ry="56" stroke-width="4.5"/>
|
||||
<path d="M338 440 C350 430 360 430 370 438" stroke-width="4.5"/>
|
||||
<path d="M246 404 C256 394 268 390 280 390" stroke="#ffffff" stroke-width="5" opacity="0.75"/>
|
||||
<path d="M392 398 C398 392 406 390 412 390" stroke="#ffffff" stroke-width="4" opacity="0.75"/>
|
||||
</g>
|
||||
<!-- side lock tucked behind the ear -->
|
||||
<path d="M190 236 C170 280 166 330 174 392 C178 408 188 418 198 418 C194 380 204 332 232 316 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<!-- long front lock over the far shoulder -->
|
||||
<path d="M468 300 C500 346 502 402 488 452 C476 502 502 544 498 594 C494 644 518 684 508 724 C544 686 536 644 540 602 C544 552 522 502 530 452 C538 392 522 334 492 286 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3.5"/>
|
||||
<path d="M498 330 C514 380 512 420 506 456 C500 500 520 540 516 590" fill="none" stroke="#7d6fc4" stroke-width="3.5"/>
|
||||
<path d="M532 470 C536 520 528 560 534 610" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
<!-- swept fringe, parted at the back, hooking into the canon curl at the front -->
|
||||
<path d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3.5"/>
|
||||
<path d="M236 200 C306 176 386 182 446 214 L440 230 C384 202 306 198 242 216 Z" fill="#d8d1f7"/>
|
||||
<path d="M300 168 C322 230 334 290 352 360 M382 174 C410 240 420 300 426 372 M250 192 C270 240 280 290 290 340 M454 210 C484 270 500 330 520 380" fill="none" stroke="#7d6fc4" stroke-width="3.5"/>
|
||||
<path d="M492 260 C510 300 514 340 520 376" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
<path d="M250 372 C268 366 296 366 314 372" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/><path d="M384 344 C398 326 426 324 442 338" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="bustbody" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M314 530 L314 600 L384 600 L380 530 Z" fill="#f6d6c4"/>
|
||||
<path d="M314 538 C338 560 362 560 382 546 L383 580 L315 584 Z" fill="#e6b4a0" stroke="none"/>
|
||||
<path d="M92 790 C96 700 148 650 240 628 L300 610 L402 610 L472 628 C554 650 604 700 614 790 Z" fill="#241a33"/>
|
||||
<path d="M470 640 C540 662 584 704 592 790 L614 790 C604 700 554 650 472 628 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M530 660 C580 690 604 734 610 790" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<path d="M130 700 C150 670 190 648 236 636" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<!-- standing collar -->
|
||||
<path d="M290 620 C286 592 296 572 314 564 L386 564 C404 572 412 592 410 622 L350 654 Z" fill="#241a33"/>
|
||||
<path d="M300 612 C300 596 306 584 316 578 L384 578 C394 584 400 596 400 612" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="#8a6a9a" stroke-width="7"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="#2a1d40" stroke-width="1.5"/>
|
||||
<path d="M190 724 l14 -14 l14 14 l-14 14 Z M486 724 l14 -14 l14 14 l-14 14 Z" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<path d="M204 724 l0 0" fill="none"/>
|
||||
<!-- brooch -->
|
||||
<circle cx="350" cy="652" r="17" fill="#c8a24a"/>
|
||||
<circle cx="350" cy="652" r="9" fill="#b77cff" stroke-width="2"/>
|
||||
<circle cx="347" cy="649" r="3" fill="#ffffff" stroke="none"/>
|
||||
</g>
|
||||
|
||||
<g id="prop" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M498 790 C496 708 508 632 520 584 L612 580 C624 650 634 722 644 790 Z" fill="#241a33"/>
|
||||
<path d="M590 584 C604 650 616 720 626 790 L644 790 C634 722 624 650 612 580 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M516 600 L616 594" fill="none" stroke="#8a6a9a" stroke-width="7"/>
|
||||
<path d="M516 600 L616 594" fill="none" stroke-width="1.5"/>
|
||||
<g transform="rotate(10 566 500)">
|
||||
<!-- base and violet rubber face, shown to the viewer -->
|
||||
<path d="M522 556 L612 556 L612 590 L522 590 Z" fill="#c8a24a"/>
|
||||
<path d="M522 576 L612 576 L612 590 L522 590 Z" fill="#957428" stroke="none"/>
|
||||
<path d="M516 590 L618 590 L618 606 L516 606 Z" fill="#b77cff"/>
|
||||
<!-- handle -->
|
||||
<path d="M552 460 L580 460 L584 556 L548 556 Z" fill="#241a33"/>
|
||||
<path d="M546 456 L586 456 L586 470 L546 470 Z" fill="#c8a24a"/>
|
||||
<!-- the skull -->
|
||||
<path d="M534 432 C530 396 548 380 566 380 C584 380 602 396 598 432 C596 446 588 452 584 458 L548 458 C544 452 536 446 534 432 Z" fill="#efe6d8"/>
|
||||
<path d="M584 392 C596 404 598 424 590 444 C588 450 586 454 584 458 L576 458 C590 440 592 412 584 392 Z" fill="#cfc2ae" stroke="none"/>
|
||||
<ellipse cx="554" cy="424" rx="9" ry="10" fill="#2a1d40"/>
|
||||
<ellipse cx="580" cy="424" rx="9" ry="10" fill="#2a1d40"/>
|
||||
<path d="M566 434 L562 444 L570 444 Z" fill="#2a1d40" stroke-width="1.5"/>
|
||||
<path d="M556 452 L556 458 M566 452 L566 458 M576 452 L576 458" stroke-width="2"/>
|
||||
</g>
|
||||
<!-- fist around the handle -->
|
||||
<path d="M520 520 C520 496 540 486 564 488 C588 490 600 504 598 528 C596 552 578 562 556 560 C534 558 520 544 520 520 Z" fill="#f6d6c4"/>
|
||||
<path d="M532 534 C550 530 572 530 592 532 M534 548 C552 546 570 546 588 548" fill="none" stroke-width="2.2"/>
|
||||
<path d="M522 506 C538 494 572 494 592 506 C588 516 560 518 528 518 Z" fill="#f6d6c4"/>
|
||||
<path d="M592 512 C598 530 594 548 582 556" fill="none" stroke="#e6b4a0" stroke-width="4"/>
|
||||
<g fill="#b77cff" stroke="none"><path d="M630 470 l5 -14 l5 14 l14 5 l-14 5 l-5 14 l-5 -14 l-14 -5 Z"/><path d="M628 560 l3 -9 l3 9 l9 3 l-9 3 l-3 9 l-3 -9 l-9 -3 Z"/></g>
|
||||
</g>
|
||||
<g id="bust" clip-path="url(#chest)">
|
||||
<use href="#backhair"/><use href="#ribbon"/><use href="#bustbody"/><use href="#headfront"/><use href="#hairpin"/><use href="#prop"/>
|
||||
</g>
|
||||
|
||||
<g id="chibibody" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M112 186 L76 202 C58 262 48 340 36 404 L192 404 C180 340 170 262 150 202 Z" fill="#241a33"/>
|
||||
<path d="M132 200 L150 202 C170 262 180 340 192 404 L160 404 C150 330 144 260 132 200 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M114 214 L112 404" fill="none" stroke="#8a6a9a" stroke-width="4"/>
|
||||
<path d="M60 330 l8 -8 l8 8 l-8 8 Z M150 330 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="#8a6a9a" stroke-width="2"/>
|
||||
<path d="M70 404 C70 418 104 418 104 404 Z M124 404 C124 418 158 418 158 404 Z" fill="#150f20"/>
|
||||
<path d="M96 190 C96 180 132 180 132 190 L130 206 L98 206 Z" fill="#241a33"/>
|
||||
<circle cx="114" cy="210" r="6" fill="#c8a24a"/>
|
||||
<circle cx="114" cy="210" r="3" fill="#b77cff" stroke="none"/>
|
||||
<path d="M80 206 C58 236 46 272 42 304 L80 310 C82 278 90 250 100 228 Z" fill="#241a33"/>
|
||||
<circle cx="62" cy="314" r="10" fill="#f6d6c4"/>
|
||||
<path d="M146 208 C168 196 182 176 188 154 L170 146 C164 166 154 182 138 194 Z" fill="#241a33"/>
|
||||
<g transform="rotate(10 184 120)">
|
||||
<path d="M168 128 L200 128 L200 140 L168 140 Z" fill="#c8a24a"/>
|
||||
<path d="M166 140 L202 140 L202 146 L166 146 Z" fill="#b77cff"/>
|
||||
<path d="M178 104 L190 104 L190 128 L178 128 Z" fill="#241a33"/>
|
||||
<path d="M172 92 C170 78 178 72 184 72 C190 72 198 78 196 92 C196 98 192 102 190 104 L178 104 C176 102 172 98 172 92 Z" fill="#efe6d8"/>
|
||||
<circle cx="180" cy="90" r="3" fill="#2a1d40" stroke="none"/><circle cx="189" cy="90" r="3" fill="#2a1d40" stroke="none"/>
|
||||
</g>
|
||||
<circle cx="180" cy="150" r="10" fill="#f6d6c4"/>
|
||||
</g>
|
||||
<clipPath id="card"><path d="M58 14 L792 14 L752 786 L18 786 Z"/></clipPath>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#efeae0"/>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="url(#glow)"/>
|
||||
<g clip-path="url(#card)"><g transform="translate(66 6) scale(0.985)"><use href="#bust" filter="url(#outline)"/></g></g>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<text x="78" y="44" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#a99be0" letter-spacing="4">BUST · SPECIMEN</text>
|
||||
|
||||
<text x="820" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#2a1d40" letter-spacing="3">FULL BODY · 2.5 HEADS</text>
|
||||
<g transform="translate(830 52)" filter="url(#outline)">
|
||||
<g transform="scale(0.34)"><use href="#backhair"/><use href="#ribbon"/></g>
|
||||
<use href="#chibibody"/>
|
||||
<g transform="scale(0.34)"><use href="#headfront"/><use href="#hairpin"/></g>
|
||||
</g>
|
||||
|
||||
<text x="1050" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#2a1d40" letter-spacing="3">SILHOUETTE</text>
|
||||
<g transform="translate(1040 54) scale(0.19)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<g transform="translate(1078 230) scale(0.06)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<text x="1050" y="300" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#555">48 px</text>
|
||||
|
||||
<text x="820" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="30" font-weight="700" fill="#2a1d40">LIBBY · B</text>
|
||||
<text x="820" y="570" font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="#2a1d40" letter-spacing="2">THE SKULL STAMP</text>
|
||||
<text font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#222"><tspan x="820" y="604">Hook: the black diamond ribbon, enlarged into a wing</tspan><tspan x="820" y="623">behind her head; the skull stamp raised as evidence.</tspan></text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#333">
|
||||
<rect x="820" y="660" width="52" height="52" fill="#a99be0" stroke="#2a1d40" stroke-width="2"/><text x="820" y="728">#a99be0</text>
|
||||
<rect x="880" y="660" width="52" height="52" fill="#2a1d40" stroke="#2a1d40" stroke-width="2"/><text x="880" y="728">#2a1d40</text>
|
||||
<rect x="940" y="660" width="52" height="52" fill="#241a33" stroke="#2a1d40" stroke-width="2"/><text x="940" y="728">#241a33</text>
|
||||
<rect x="1000" y="660" width="52" height="52" fill="#f6d6c4" stroke="#2a1d40" stroke-width="2"/><text x="1000" y="728">#f6d6c4</text>
|
||||
<rect x="1060" y="660" width="52" height="52" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/><text x="1060" y="728">#c8a24a</text>
|
||||
<rect x="1120" y="660" width="52" height="52" fill="#b77cff" stroke="#2a1d40" stroke-width="2"/><text x="1120" y="728">#b77cff</text>
|
||||
</g>
|
||||
<text x="820" y="760" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#555">hair key · line · robe · skin · gold · tome glow</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
BIN
cast-designs/proposals/libby/libby-C.png
Normal file
|
After Width: | Height: | Size: 278 KiB |
187
cast-designs/proposals/libby/libby-C.svg
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<!-- Libby, take C: Quiet Please. Three takes on the canon design (cotsc-praxis character sheet). Hand-authored. -->
|
||||
<defs>
|
||||
<filter id="outline" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feFlood flood-color="#2a1d40"/>
|
||||
<feComposite in2="d" operator="in" result="o"/>
|
||||
<feMerge><feMergeNode in="o"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feColorMatrix in="d" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<radialGradient id="glow" cx="0.46" cy="0.45" r="0.62">
|
||||
<stop offset="0" stop-color="#2d2150"/>
|
||||
<stop offset="1" stop-color="#07111a"/>
|
||||
</radialGradient>
|
||||
<clipPath id="chest"><rect x="-200" y="-100" width="1100" height="890"/></clipPath>
|
||||
|
||||
<g id="backhair" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M330 118 C200 116 110 200 106 320 C96 372 50 404 72 468 C88 512 36 540 54 604 C66 652 22 692 46 744 C54 764 44 782 38 790 L618 790 C628 770 644 740 628 700 C614 650 654 610 628 556 C610 516 640 466 608 416 C586 376 594 330 568 290 C548 190 452 118 330 118 Z" fill="#a99be0"/>
|
||||
<path d="M196 470 C226 560 206 690 226 790 L474 790 C484 690 462 560 486 470 Z" fill="#7d6fc4" stroke="none"/>
|
||||
<path d="M124 330 C114 420 130 470 114 540 C102 600 122 650 106 724 M156 440 C146 510 166 566 146 646 M564 330 C576 420 560 470 578 540 C590 600 570 660 584 730" fill="none" stroke="#7d6fc4" stroke-width="4"/>
|
||||
<path d="M578 520 C598 570 584 620 596 676" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
</g>
|
||||
|
||||
<g id="ribbon" transform="translate(0 0) translate(160 205) scale(1.0) translate(-160 -205)" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M150 222 C120 290 108 360 98 432 L122 420 L134 448 C140 370 152 296 166 226 Z" fill="#241a33"/>
|
||||
<path d="M160 204 C112 146 52 140 46 186 C42 222 104 232 160 214 Z" fill="#241a33"/>
|
||||
<path d="M160 210 C104 224 66 262 84 292 C102 316 142 262 164 220 Z" fill="#241a33"/>
|
||||
<path d="M60 190 C66 170 96 168 120 182" fill="none" stroke="#a99be0" stroke-width="3"/>
|
||||
<path d="M86 186 l10 -10 l10 10 l-10 10 Z M104 252 l9 -9 l9 9 l-9 9 Z M124 340 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<circle cx="162" cy="210" r="15" fill="#241a33"/>
|
||||
<path d="M156 204 l6 -6 l6 6 l-6 6 Z" fill="#c8a24a" stroke="none"/>
|
||||
</g>
|
||||
|
||||
<g id="hairpin" transform="translate(196 168) scale(1.5) rotate(-12)" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round">
|
||||
<g transform="rotate(35)"><path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="#efe6d8"/></g>
|
||||
<g transform="rotate(-35)"><path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="#efe6d8"/></g>
|
||||
<path d="M-20 -4 L20 -4" stroke="#cfc2ae" stroke-width="2" transform="rotate(-35)"/>
|
||||
</g>
|
||||
|
||||
<g id="headfront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- face -->
|
||||
<path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z" fill="#f6d6c4" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M452 404 C466 452 452 500 412 540 C440 514 456 472 448 432 Z" fill="#e6b4a0"/>
|
||||
<clipPath id="faceclip"><path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z"/></clipPath>
|
||||
<path clip-path="url(#faceclip)" transform="translate(-3 11)" d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="#e6b4a0"/>
|
||||
<path d="M454 440 C460 470 452 500 432 526" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<!-- near ear with gold drop -->
|
||||
<path d="M186 410 C164 398 152 424 160 448 C166 466 180 472 194 462 Z" fill="#f6d6c4" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M178 426 C170 432 172 446 180 452" fill="none" stroke="#e6b4a0" stroke-width="3"/>
|
||||
<circle cx="170" cy="474" r="5" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/>
|
||||
<path d="M170 480 L176 492 L170 504 L164 492 Z" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/>
|
||||
<!-- blush -->
|
||||
<ellipse cx="262" cy="508" rx="26" ry="9" fill="#f29aa6" opacity="0.5"/>
|
||||
<ellipse cx="428" cy="506" rx="16" ry="8" fill="#f29aa6" opacity="0.5"/>
|
||||
<path d="M250 504 l6 -8 M262 506 l6 -8 M274 506 l6 -8" stroke="#dd7f8c" stroke-width="2" opacity="0.75"/>
|
||||
|
||||
<clipPath id="eyeN"><path d="M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z"/></clipPath>
|
||||
<path d="M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeN)">
|
||||
<ellipse cx="282" cy="448" rx="35" ry="47" fill="#6a64a0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<path d="M248.2 436 A35 47 0 0 1 315.8 436 Q282 450 248.2 436 Z" fill="#2a1d40" opacity="0.85"/>
|
||||
<path d="M255 474 C265 494 299 494 309 474 C297 484 267 484 255 474 Z" fill="#bdb6ec"/>
|
||||
<ellipse cx="283" cy="452" rx="13" ry="21" fill="#2a1d40"/>
|
||||
</g>
|
||||
<ellipse cx="268" cy="430" rx="11" ry="14" fill="#fff"/>
|
||||
<circle cx="300" cy="470" r="5" fill="#fff"/>
|
||||
<path d="M220 428 C238 394 300 386 334 412" fill="none" stroke="#2a1d40" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M222 424 L206 414 L224 418 Z M228 412 L214 398 L232 406 Z" fill="#2a1d40" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M242 486 C264 496 302 494 320 480" fill="none" stroke="#2a1d40" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M378 452 C394 428 430 428 450 450" fill="none" stroke="#2a1d40" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M448 446 L462 440 L452 454 Z" fill="#2a1d40" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M384 462 C398 470 426 470 440 462" fill="none" stroke="#2a1d40" stroke-width="2" stroke-linecap="round" opacity="0.6"/>
|
||||
<!-- nose and mouth -->
|
||||
<path d="M362 470 L367 480 L360 482" fill="none" stroke="#c98a76" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M332 504 C344 512 362 512 376 502" fill="none" stroke="#2a1d40" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- round glasses, thin dark frames -->
|
||||
<g fill="none" stroke="#2a1d40">
|
||||
<path d="M224 436 L184 424" stroke-width="4"/>
|
||||
<circle cx="280" cy="444" r="58" stroke-width="4.5"/>
|
||||
<ellipse cx="413" cy="442" rx="43" ry="56" stroke-width="4.5"/>
|
||||
<path d="M338 440 C350 430 360 430 370 438" stroke-width="4.5"/>
|
||||
<path d="M246 404 C256 394 268 390 280 390" stroke="#ffffff" stroke-width="5" opacity="0.75"/>
|
||||
<path d="M392 398 C398 392 406 390 412 390" stroke="#ffffff" stroke-width="4" opacity="0.75"/>
|
||||
</g>
|
||||
<!-- side lock tucked behind the ear -->
|
||||
<path d="M190 236 C170 280 166 330 174 392 C178 408 188 418 198 418 C194 380 204 332 232 316 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3"/>
|
||||
<!-- long front lock over the far shoulder -->
|
||||
<path d="M468 300 C500 346 502 402 488 452 C476 502 502 544 498 594 C494 644 518 684 508 724 C544 686 536 644 540 602 C544 552 522 502 530 452 C538 392 522 334 492 286 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3.5"/>
|
||||
<path d="M498 330 C514 380 512 420 506 456 C500 500 520 540 516 590" fill="none" stroke="#7d6fc4" stroke-width="3.5"/>
|
||||
<path d="M532 470 C536 520 528 560 534 610" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
<!-- swept fringe, parted at the back, hooking into the canon curl at the front -->
|
||||
<path d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="#a99be0" stroke="#2a1d40" stroke-width="3.5"/>
|
||||
<path d="M236 200 C306 176 386 182 446 214 L440 230 C384 202 306 198 242 216 Z" fill="#d8d1f7"/>
|
||||
<path d="M300 168 C322 230 334 290 352 360 M382 174 C410 240 420 300 426 372 M250 192 C270 240 280 290 290 340 M454 210 C484 270 500 330 520 380" fill="none" stroke="#7d6fc4" stroke-width="3.5"/>
|
||||
<path d="M492 260 C510 300 514 340 520 376" fill="none" stroke="#d8d1f7" stroke-width="4"/>
|
||||
<path d="M250 370 C268 362 296 362 314 368" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/><path d="M386 368 C402 362 426 362 440 370" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="bustbody" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M314 530 L314 600 L384 600 L380 530 Z" fill="#f6d6c4"/>
|
||||
<path d="M314 538 C338 560 362 560 382 546 L383 580 L315 584 Z" fill="#e6b4a0" stroke="none"/>
|
||||
<path d="M92 790 C96 700 148 650 240 628 L300 610 L402 610 L472 628 C554 650 604 700 614 790 Z" fill="#241a33"/>
|
||||
<path d="M470 640 C540 662 584 704 592 790 L614 790 C604 700 554 650 472 628 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M530 660 C580 690 604 734 610 790" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<path d="M130 700 C150 670 190 648 236 636" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<!-- standing collar -->
|
||||
<path d="M290 620 C286 592 296 572 314 564 L386 564 C404 572 412 592 410 622 L350 654 Z" fill="#241a33"/>
|
||||
<path d="M300 612 C300 596 306 584 316 578 L384 578 C394 584 400 596 400 612" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="#8a6a9a" stroke-width="7"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="#2a1d40" stroke-width="1.5"/>
|
||||
<path d="M190 724 l14 -14 l14 14 l-14 14 Z M486 724 l14 -14 l14 14 l-14 14 Z" fill="none" stroke="#8a6a9a" stroke-width="3"/>
|
||||
<path d="M204 724 l0 0" fill="none"/>
|
||||
<!-- brooch -->
|
||||
<circle cx="350" cy="652" r="17" fill="#c8a24a"/>
|
||||
<circle cx="350" cy="652" r="9" fill="#b77cff" stroke-width="2"/>
|
||||
<circle cx="347" cy="649" r="3" fill="#ffffff" stroke="none"/>
|
||||
</g>
|
||||
|
||||
<g id="prop" stroke="#2a1d40" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- wide sleeve crossing the chest -->
|
||||
<path d="M300 790 C304 704 322 626 336 576 L410 570 C430 640 450 716 466 790 Z" fill="#241a33"/>
|
||||
<path d="M390 572 C410 640 428 716 440 790 L466 790 C450 716 430 640 410 570 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M334 588 L412 582" fill="none" stroke="#8a6a9a" stroke-width="7"/>
|
||||
<path d="M334 588 L412 582" fill="none" stroke-width="1.5"/>
|
||||
<!-- hand, index finger to lips -->
|
||||
<path d="M334 562 C332 542 346 532 366 533 C388 534 400 546 398 566 C396 586 380 596 362 594 C344 592 336 580 334 562 Z" fill="#f6d6c4"/>
|
||||
<path d="M384 540 C394 550 396 572 386 588 C380 592 372 594 362 594 C380 582 388 560 384 540 Z" fill="#e6b4a0" stroke="none"/>
|
||||
<path d="M350 544 C347 524 349 504 353 492 C357 482 369 482 371 492 C373 506 371 526 369 542 Z" fill="#f6d6c4"/>
|
||||
<path d="M356 498 C358 492 366 492 368 498" fill="none" stroke="#e6b4a0" stroke-width="3"/>
|
||||
<path d="M346 556 C358 552 374 552 390 556 M344 572 C356 568 372 568 388 572" fill="none" stroke-width="2.2"/>
|
||||
<g fill="#b77cff" stroke="none"><path d="M512 430 l5 -15 l5 15 l15 5 l-15 5 l-5 15 l-5 -15 l-15 -5 Z"/><path d="M546 360 l3 -9 l3 9 l9 3 l-9 3 l-3 9 l-3 -9 l-9 -3 Z"/><path d="M118 520 l3 -9 l3 9 l9 3 l-9 3 l-3 9 l-3 -9 l-9 -3 Z"/></g>
|
||||
</g>
|
||||
<g id="bust" clip-path="url(#chest)">
|
||||
<use href="#backhair"/><use href="#ribbon"/><use href="#bustbody"/><use href="#headfront"/><use href="#hairpin"/><use href="#prop"/>
|
||||
</g>
|
||||
|
||||
<g id="chibibody" stroke="#2a1d40" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M112 186 L76 202 C58 262 48 340 36 404 L192 404 C180 340 170 262 150 202 Z" fill="#241a33"/>
|
||||
<path d="M132 200 L150 202 C170 262 180 340 192 404 L160 404 C150 330 144 260 132 200 Z" fill="#150f20" stroke="none"/>
|
||||
<path d="M114 214 L112 404" fill="none" stroke="#8a6a9a" stroke-width="4"/>
|
||||
<path d="M60 330 l8 -8 l8 8 l-8 8 Z M150 330 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="#8a6a9a" stroke-width="2"/>
|
||||
<path d="M70 404 C70 418 104 418 104 404 Z M124 404 C124 418 158 418 158 404 Z" fill="#150f20"/>
|
||||
<path d="M96 190 C96 180 132 180 132 190 L130 206 L98 206 Z" fill="#241a33"/>
|
||||
<circle cx="114" cy="210" r="6" fill="#c8a24a"/>
|
||||
<circle cx="114" cy="210" r="3" fill="#b77cff" stroke="none"/>
|
||||
<path d="M80 206 C58 236 46 272 42 304 L80 310 C82 278 90 250 100 228 Z" fill="#241a33"/>
|
||||
<circle cx="62" cy="314" r="10" fill="#f6d6c4"/>
|
||||
<path d="M146 208 C150 196 140 186 128 182 L118 196 C126 200 132 206 132 214 Z" fill="#241a33"/>
|
||||
<circle cx="122" cy="178" r="9" fill="#f6d6c4"/>
|
||||
<path d="M120 172 L120 160" stroke="#f6d6c4" stroke-width="5"/>
|
||||
</g>
|
||||
<clipPath id="card"><path d="M58 14 L792 14 L752 786 L18 786 Z"/></clipPath>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#efeae0"/>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="url(#glow)"/>
|
||||
<g clip-path="url(#card)"><g transform="translate(14 -40) scale(1.13)"><use href="#bust" filter="url(#outline)"/></g></g>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="none" stroke="#a99be0" stroke-width="4"/>
|
||||
<text x="78" y="44" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#a99be0" letter-spacing="4">BUST · QUIET PLEASE</text>
|
||||
|
||||
<text x="820" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#2a1d40" letter-spacing="3">FULL BODY · 2.5 HEADS</text>
|
||||
<g transform="translate(830 52)" filter="url(#outline)">
|
||||
<g transform="scale(0.34)"><use href="#backhair"/><use href="#ribbon"/></g>
|
||||
<use href="#chibibody"/>
|
||||
<g transform="scale(0.34)"><use href="#headfront"/><use href="#hairpin"/></g>
|
||||
</g>
|
||||
|
||||
<text x="1050" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#2a1d40" letter-spacing="3">SILHOUETTE</text>
|
||||
<g transform="translate(1040 54) scale(0.19)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<g transform="translate(1078 230) scale(0.06)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<text x="1050" y="300" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#555">48 px</text>
|
||||
|
||||
<text x="820" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="30" font-weight="700" fill="#2a1d40">LIBBY · C</text>
|
||||
<text x="820" y="570" font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="#2a1d40" letter-spacing="2">QUIET PLEASE</text>
|
||||
<text font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#222"><tspan x="820" y="604">Hook: the crossed-bone hairpin, enlarged, on a close crop</tspan><tspan x="820" y="623">of hair and glasses; finger to lips, one eye shut.</tspan></text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#333">
|
||||
<rect x="820" y="660" width="52" height="52" fill="#a99be0" stroke="#2a1d40" stroke-width="2"/><text x="820" y="728">#a99be0</text>
|
||||
<rect x="880" y="660" width="52" height="52" fill="#2a1d40" stroke="#2a1d40" stroke-width="2"/><text x="880" y="728">#2a1d40</text>
|
||||
<rect x="940" y="660" width="52" height="52" fill="#241a33" stroke="#2a1d40" stroke-width="2"/><text x="940" y="728">#241a33</text>
|
||||
<rect x="1000" y="660" width="52" height="52" fill="#f6d6c4" stroke="#2a1d40" stroke-width="2"/><text x="1000" y="728">#f6d6c4</text>
|
||||
<rect x="1060" y="660" width="52" height="52" fill="#c8a24a" stroke="#2a1d40" stroke-width="2"/><text x="1060" y="728">#c8a24a</text>
|
||||
<rect x="1120" y="660" width="52" height="52" fill="#b77cff" stroke="#2a1d40" stroke-width="2"/><text x="1120" y="728">#b77cff</text>
|
||||
</g>
|
||||
<text x="820" y="760" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#555">hair key · line · robe · skin · gold · tome glow</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
356
cast-designs/proposals/libby/libby-gen.py
Normal file
|
|
@ -0,0 +1,356 @@
|
|||
# Writes libby-A/B/C.svg: three takes on Libby's canon design (lavender hair,
|
||||
# round glasses, bone hairpin, diamond ribbon, dark violet robe).
|
||||
# Paths are hand-authored; this script only assembles per-take variants.
|
||||
import sys
|
||||
OUT = r"C:\gc-wt\cast-designs\cast-designs\proposals\libby"
|
||||
|
||||
LINE = "#2a1d40"; KEY = "#a99be0"; KEYSH = "#7d6fc4"; KEYHI = "#d8d1f7"
|
||||
ROBE = "#241a33"; ROBESH = "#150f20"; TRIM = "#8a6a9a"
|
||||
SKIN = "#f6d6c4"; SKINSH = "#e6b4a0"; GOLD = "#c8a24a"; GOLDSH = "#957428"
|
||||
GLOW = "#b77cff"; BONE = "#efe6d8"; BONESH = "#cfc2ae"
|
||||
|
||||
def backhair():
|
||||
return f'''
|
||||
<g id="backhair" stroke="{LINE}" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M330 118 C200 116 110 200 106 320 C96 372 50 404 72 468 C88 512 36 540 54 604 C66 652 22 692 46 744 C54 764 44 782 38 790 L618 790 C628 770 644 740 628 700 C614 650 654 610 628 556 C610 516 640 466 608 416 C586 376 594 330 568 290 C548 190 452 118 330 118 Z" fill="{KEY}"/>
|
||||
<path d="M196 470 C226 560 206 690 226 790 L474 790 C484 690 462 560 486 470 Z" fill="{KEYSH}" stroke="none"/>
|
||||
<path d="M124 330 C114 420 130 470 114 540 C102 600 122 650 106 724 M156 440 C146 510 166 566 146 646 M564 330 C576 420 560 470 578 540 C590 600 570 660 584 730" fill="none" stroke="{KEYSH}" stroke-width="4"/>
|
||||
<path d="M578 520 C598 570 584 620 596 676" fill="none" stroke="{KEYHI}" stroke-width="4"/>
|
||||
</g>'''
|
||||
|
||||
def ribbon(scale, shift="0 0"):
|
||||
# diamond-patterned bow at the back of the head (screen left), canon
|
||||
return f'''
|
||||
<g id="ribbon" transform="translate({shift}) translate(160 205) scale({scale}) translate(-160 -205)" stroke="{LINE}" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M150 222 C120 290 108 360 98 432 L122 420 L134 448 C140 370 152 296 166 226 Z" fill="{ROBE}"/>
|
||||
<path d="M160 204 C112 146 52 140 46 186 C42 222 104 232 160 214 Z" fill="{ROBE}"/>
|
||||
<path d="M160 210 C104 224 66 262 84 292 C102 316 142 262 164 220 Z" fill="{ROBE}"/>
|
||||
<path d="M60 190 C66 170 96 168 120 182" fill="none" stroke="{KEY}" stroke-width="3"/>
|
||||
<path d="M86 186 l10 -10 l10 10 l-10 10 Z M104 252 l9 -9 l9 9 l-9 9 Z M124 340 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="{TRIM}" stroke-width="3"/>
|
||||
<circle cx="162" cy="210" r="15" fill="{ROBE}"/>
|
||||
<path d="M156 204 l6 -6 l6 6 l-6 6 Z" fill="{GOLD}" stroke="none"/>
|
||||
</g>'''
|
||||
|
||||
def hairpin(scale, at="222 214"):
|
||||
bone = f'<path d="M-30 -5 C-38 -14 -50 -8 -44 0 C-50 8 -38 14 -30 5 L30 5 C38 14 50 8 44 0 C50 -8 38 -14 30 -5 Z" fill="{BONE}"/>'
|
||||
return f'''
|
||||
<g id="hairpin" transform="translate({at}) scale({scale}) rotate(-12)" stroke="{LINE}" stroke-width="3" stroke-linejoin="round">
|
||||
<g transform="rotate(35)">{bone}</g>
|
||||
<g transform="rotate(-35)">{bone}</g>
|
||||
<path d="M-20 -4 L20 -4" stroke="{BONESH}" stroke-width="2" transform="rotate(-35)"/>
|
||||
</g>'''
|
||||
|
||||
def eyes(kind):
|
||||
"""kind: 'bright' (found it), 'arch' (specimen: far brow up), 'wink' (quiet please: far eye shut)"""
|
||||
near_shape = "M226 420 C244 394 302 390 328 412 L326 476 C306 494 260 496 238 484 Z"
|
||||
far_shape = "M378 414 C394 398 430 398 448 414 L447 474 C434 488 398 490 384 478 Z"
|
||||
def iris(clip, shape, cx, rx, ry, hx, hy, h2x, h2y):
|
||||
dx = rx * (1 - ((436 - 448) / ry) ** 2) ** 0.5
|
||||
return f'''
|
||||
<clipPath id="{clip}"><path d="{shape}"/></clipPath>
|
||||
<path d="{shape}" fill="#ffffff"/>
|
||||
<g clip-path="url(#{clip})">
|
||||
<ellipse cx="{cx}" cy="448" rx="{rx}" ry="{ry}" fill="#6a64a0" stroke="{LINE}" stroke-width="3"/>
|
||||
<path d="M{cx-dx:.1f} 436 A{rx} {ry} 0 0 1 {cx+dx:.1f} 436 Q{cx} 450 {cx-dx:.1f} 436 Z" fill="{LINE}" opacity="0.85"/>
|
||||
<path d="M{cx-rx+8} 474 C{cx-rx+18} 494 {cx+rx-18} 494 {cx+rx-8} 474 C{cx+rx-20} 484 {cx-rx+20} 484 {cx-rx+8} 474 Z" fill="#bdb6ec"/>
|
||||
<ellipse cx="{cx+1}" cy="452" rx="{int(rx*0.38)}" ry="{int(ry*0.45)}" fill="{LINE}"/>
|
||||
</g>
|
||||
<ellipse cx="{hx}" cy="{hy}" rx="{int(rx*0.34)}" ry="{int(ry*0.3)}" fill="#fff"/>
|
||||
<circle cx="{h2x}" cy="{h2y}" r="{max(4,int(rx*0.16))}" fill="#fff"/>'''
|
||||
s = iris("eyeN", near_shape, 282, 35, 47, 268, 430, 300, 470)
|
||||
s += f'''
|
||||
<path d="M220 428 C238 394 300 386 334 412" fill="none" stroke="{LINE}" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M222 424 L206 414 L224 418 Z M228 412 L214 398 L232 406 Z" fill="{LINE}" stroke="{LINE}" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M242 486 C264 496 302 494 320 480" fill="none" stroke="{LINE}" stroke-width="2.5" stroke-linecap="round"/>'''
|
||||
if kind == "wink":
|
||||
s += f'''
|
||||
<path d="M378 452 C394 428 430 428 450 450" fill="none" stroke="{LINE}" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M448 446 L462 440 L452 454 Z" fill="{LINE}" stroke="{LINE}" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M384 462 C398 470 426 470 440 462" fill="none" stroke="{LINE}" stroke-width="2" stroke-linecap="round" opacity="0.6"/>'''
|
||||
else:
|
||||
s += iris("eyeF", far_shape, 412, 27, 46, 402, 430, 422, 470)
|
||||
s += f'''
|
||||
<path d="M374 418 C392 394 432 392 452 414" fill="none" stroke="{LINE}" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M450 412 L464 404 L455 418 Z" fill="{LINE}" stroke="{LINE}" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
<path d="M388 482 C404 490 428 490 440 480" fill="none" stroke="{LINE}" stroke-width="2.5" stroke-linecap="round"/>'''
|
||||
return s
|
||||
|
||||
def brows(kind):
|
||||
if kind == "bright":
|
||||
n, f = "M248 366 C266 354 296 352 314 360", "M386 352 C402 342 426 342 440 352"
|
||||
elif kind == "arch":
|
||||
n, f = "M250 372 C268 366 296 366 314 372", "M384 344 C398 326 426 324 442 338"
|
||||
else:
|
||||
n, f = "M250 370 C268 362 296 362 314 368", "M386 368 C402 362 426 362 440 370"
|
||||
return f'<path d="{n}" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/><path d="{f}" fill="none" stroke="#6c5fb0" stroke-width="5" stroke-linecap="round"/>'
|
||||
|
||||
def mouth(kind):
|
||||
if kind == "bright":
|
||||
return f'''<path d="M326 500 C342 494 372 492 388 498 C384 528 336 532 326 500 Z" fill="#8c3c4c" stroke="{LINE}" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M340 518 C350 510 368 510 376 518 C366 524 348 524 340 518 Z" fill="#e0707a"/>
|
||||
<path d="M330 500 L384 498 L382 504 L332 506 Z" fill="#ffffff"/>'''
|
||||
if kind == "arch":
|
||||
return f'<path d="M330 506 C342 512 360 511 374 500" fill="none" stroke="{LINE}" stroke-width="3" stroke-linecap="round"/><path d="M374 500 l6 -3" stroke="{LINE}" stroke-width="2.5" stroke-linecap="round"/>'
|
||||
return f'<path d="M332 504 C344 512 362 512 376 502" fill="none" stroke="{LINE}" stroke-width="3" stroke-linecap="round"/>'
|
||||
|
||||
def headfront(kind):
|
||||
return f'''
|
||||
<g id="headfront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- face -->
|
||||
<path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z" fill="{SKIN}" stroke="{LINE}" stroke-width="3"/>
|
||||
<path d="M452 404 C466 452 452 500 412 540 C440 514 456 472 448 432 Z" fill="{SKINSH}"/>
|
||||
<clipPath id="faceclip"><path d="M172 300 C166 400 184 476 232 518 C268 548 312 562 350 561 C390 557 430 528 450 484 C462 456 470 430 470 398 C476 360 472 330 464 296 Z"/></clipPath>
|
||||
<path clip-path="url(#faceclip)" transform="translate(-3 11)" d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="{SKINSH}"/>
|
||||
<path d="M454 440 C460 470 452 500 432 526" fill="none" stroke="{KEY}" stroke-width="4"/>
|
||||
<!-- near ear with gold drop -->
|
||||
<path d="M186 410 C164 398 152 424 160 448 C166 466 180 472 194 462 Z" fill="{SKIN}" stroke="{LINE}" stroke-width="3"/>
|
||||
<path d="M178 426 C170 432 172 446 180 452" fill="none" stroke="{SKINSH}" stroke-width="3"/>
|
||||
<circle cx="170" cy="474" r="5" fill="{GOLD}" stroke="{LINE}" stroke-width="2"/>
|
||||
<path d="M170 480 L176 492 L170 504 L164 492 Z" fill="{GOLD}" stroke="{LINE}" stroke-width="2"/>
|
||||
<!-- blush -->
|
||||
<ellipse cx="262" cy="508" rx="26" ry="9" fill="#f29aa6" opacity="0.5"/>
|
||||
<ellipse cx="428" cy="506" rx="16" ry="8" fill="#f29aa6" opacity="0.5"/>
|
||||
<path d="M250 504 l6 -8 M262 506 l6 -8 M274 506 l6 -8" stroke="#dd7f8c" stroke-width="2" opacity="0.75"/>
|
||||
{eyes(kind)}
|
||||
<!-- nose and mouth -->
|
||||
<path d="M362 470 L367 480 L360 482" fill="none" stroke="#c98a76" stroke-width="2.5" stroke-linecap="round"/>
|
||||
{mouth(kind)}
|
||||
<!-- round glasses, thin dark frames -->
|
||||
<g fill="none" stroke="{LINE}">
|
||||
<path d="M224 436 L184 424" stroke-width="4"/>
|
||||
<circle cx="280" cy="444" r="58" stroke-width="4.5"/>
|
||||
<ellipse cx="413" cy="442" rx="43" ry="56" stroke-width="4.5"/>
|
||||
<path d="M338 440 C350 430 360 430 370 438" stroke-width="4.5"/>
|
||||
<path d="M246 404 C256 394 268 390 280 390" stroke="#ffffff" stroke-width="5" opacity="0.75"/>
|
||||
<path d="M392 398 C398 392 406 390 412 390" stroke="#ffffff" stroke-width="4" opacity="0.75"/>
|
||||
</g>
|
||||
<!-- side lock tucked behind the ear -->
|
||||
<path d="M190 236 C170 280 166 330 174 392 C178 408 188 418 198 418 C194 380 204 332 232 316 Z" fill="{KEY}" stroke="{LINE}" stroke-width="3"/>
|
||||
<!-- long front lock over the far shoulder -->
|
||||
<path d="M468 300 C500 346 502 402 488 452 C476 502 502 544 498 594 C494 644 518 684 508 724 C544 686 536 644 540 602 C544 552 522 502 530 452 C538 392 522 334 492 286 Z" fill="{KEY}" stroke="{LINE}" stroke-width="3.5"/>
|
||||
<path d="M498 330 C514 380 512 420 506 456 C500 500 520 540 516 590" fill="none" stroke="{KEYSH}" stroke-width="3.5"/>
|
||||
<path d="M532 470 C536 520 528 560 534 610" fill="none" stroke="{KEYHI}" stroke-width="4"/>
|
||||
<!-- swept fringe, parted at the back, hooking into the canon curl at the front -->
|
||||
<path d="M200 162 C282 136 424 148 482 228 C506 268 512 320 522 360 C530 396 570 418 594 396 C604 386 600 368 588 366 C592 382 580 396 560 396 C540 396 524 392 510 398 C496 380 478 358 460 344 C458 364 456 386 452 404 C430 380 404 346 380 330 C384 356 382 376 378 394 C356 368 330 336 304 318 C308 340 304 362 300 378 C280 352 252 326 230 318 C224 282 200 252 188 240 C178 210 184 178 200 162 Z" fill="{KEY}" stroke="{LINE}" stroke-width="3.5"/>
|
||||
<path d="M236 200 C306 176 386 182 446 214 L440 230 C384 202 306 198 242 216 Z" fill="{KEYHI}"/>
|
||||
<path d="M300 168 C322 230 334 290 352 360 M382 174 C410 240 420 300 426 372 M250 192 C270 240 280 290 290 340 M454 210 C484 270 500 330 520 380" fill="none" stroke="{KEYSH}" stroke-width="3.5"/>
|
||||
<path d="M492 260 C510 300 514 340 520 376" fill="none" stroke="{KEYHI}" stroke-width="4"/>
|
||||
{brows(kind)}
|
||||
</g>'''
|
||||
|
||||
def body():
|
||||
return f'''
|
||||
<g id="bustbody" stroke="{LINE}" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M314 530 L314 600 L384 600 L380 530 Z" fill="{SKIN}"/>
|
||||
<path d="M314 538 C338 560 362 560 382 546 L383 580 L315 584 Z" fill="{SKINSH}" stroke="none"/>
|
||||
<path d="M92 790 C96 700 148 650 240 628 L300 610 L402 610 L472 628 C554 650 604 700 614 790 Z" fill="{ROBE}"/>
|
||||
<path d="M470 640 C540 662 584 704 592 790 L614 790 C604 700 554 650 472 628 Z" fill="{ROBESH}" stroke="none"/>
|
||||
<path d="M530 660 C580 690 604 734 610 790" fill="none" stroke="{KEY}" stroke-width="4"/>
|
||||
<path d="M130 700 C150 670 190 648 236 636" fill="none" stroke="{TRIM}" stroke-width="3"/>
|
||||
<!-- standing collar -->
|
||||
<path d="M290 620 C286 592 296 572 314 564 L386 564 C404 572 412 592 410 622 L350 654 Z" fill="{ROBE}"/>
|
||||
<path d="M300 612 C300 596 306 584 316 578 L384 578 C394 584 400 596 400 612" fill="none" stroke="{TRIM}" stroke-width="3"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="{TRIM}" stroke-width="7"/>
|
||||
<path d="M350 668 L338 790" fill="none" stroke="{LINE}" stroke-width="1.5"/>
|
||||
<path d="M190 724 l14 -14 l14 14 l-14 14 Z M486 724 l14 -14 l14 14 l-14 14 Z" fill="none" stroke="{TRIM}" stroke-width="3"/>
|
||||
<path d="M204 724 l0 0" fill="none"/>
|
||||
<!-- brooch -->
|
||||
<circle cx="350" cy="652" r="17" fill="{GOLD}"/>
|
||||
<circle cx="350" cy="652" r="9" fill="{GLOW}" stroke-width="2"/>
|
||||
<circle cx="347" cy="649" r="3" fill="#ffffff" stroke="none"/>
|
||||
</g>'''
|
||||
|
||||
# ---------- props, one per take ----------
|
||||
def prop_tome():
|
||||
return f'''
|
||||
<g id="prop" stroke="{LINE}" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M250 676 L232 640 M300 668 L292 626 M444 668 L452 626 M494 676 L512 640" fill="none" stroke="{GLOW}" stroke-width="4"/>
|
||||
<path d="M196 704 L372 712 L548 704 L552 784 L372 790 L192 784 Z" fill="{ROBE}"/>
|
||||
<path d="M196 704 L214 704 L212 722 L196 724 Z M548 704 L532 704 L534 722 L550 724 Z" fill="{GOLD}" stroke-width="2"/>
|
||||
<path d="M214 694 C268 672 322 674 372 694 L372 768 C322 750 268 748 214 768 Z" fill="{BONE}"/>
|
||||
<path d="M372 694 C424 674 478 672 532 694 L532 768 C478 748 424 750 372 768 Z" fill="{BONE}"/>
|
||||
<path d="M214 694 C268 672 322 674 372 694 L372 708 C322 690 268 690 214 708 Z" fill="{BONESH}" stroke="none"/>
|
||||
<g fill="none" stroke="{GLOW}" stroke-width="3">
|
||||
<path d="M240 716 L340 712 M240 732 L330 728 M240 748 L346 744 M402 712 L500 716 M398 728 L470 730"/>
|
||||
<rect x="440" y="726" width="36" height="30" transform="rotate(4 458 741)"/>
|
||||
</g>
|
||||
<!-- glyphs rising off the page -->
|
||||
<g fill="none" stroke="{GLOW}" stroke-width="4">
|
||||
<rect x="434" y="624" width="40" height="40" rx="5" transform="rotate(45 454 644)"/>
|
||||
<circle cx="454" cy="644" r="10"/>
|
||||
<path d="M262 664 l0 -16 M254 656 l16 0 M518 610 l0 -20 M508 600 l20 0" stroke-width="3"/>
|
||||
</g>
|
||||
<circle cx="454" cy="644" r="4" fill="#ffffff" stroke="none"/>
|
||||
<!-- hands -->
|
||||
<path d="M176 760 C172 732 190 716 212 718 C232 720 238 742 232 762 C226 782 182 784 176 760 Z" fill="{SKIN}"/>
|
||||
<path d="M568 760 C572 732 554 716 532 718 C512 720 506 742 512 762 C518 782 562 784 568 760 Z" fill="{SKIN}"/>
|
||||
<path d="M208 726 L222 744 M538 726 L522 744" stroke-width="2.5"/>
|
||||
</g>'''
|
||||
|
||||
def prop_stamp():
|
||||
return f'''
|
||||
<g id="prop" stroke="{LINE}" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M498 790 C496 708 508 632 520 584 L612 580 C624 650 634 722 644 790 Z" fill="{ROBE}"/>
|
||||
<path d="M590 584 C604 650 616 720 626 790 L644 790 C634 722 624 650 612 580 Z" fill="{ROBESH}" stroke="none"/>
|
||||
<path d="M516 600 L616 594" fill="none" stroke="{TRIM}" stroke-width="7"/>
|
||||
<path d="M516 600 L616 594" fill="none" stroke-width="1.5"/>
|
||||
<g transform="rotate(10 566 500)">
|
||||
<!-- base and violet rubber face, shown to the viewer -->
|
||||
<path d="M522 556 L612 556 L612 590 L522 590 Z" fill="{GOLD}"/>
|
||||
<path d="M522 576 L612 576 L612 590 L522 590 Z" fill="{GOLDSH}" stroke="none"/>
|
||||
<path d="M516 590 L618 590 L618 606 L516 606 Z" fill="{GLOW}"/>
|
||||
<!-- handle -->
|
||||
<path d="M552 460 L580 460 L584 556 L548 556 Z" fill="{ROBE}"/>
|
||||
<path d="M546 456 L586 456 L586 470 L546 470 Z" fill="{GOLD}"/>
|
||||
<!-- the skull -->
|
||||
<path d="M534 432 C530 396 548 380 566 380 C584 380 602 396 598 432 C596 446 588 452 584 458 L548 458 C544 452 536 446 534 432 Z" fill="{BONE}"/>
|
||||
<path d="M584 392 C596 404 598 424 590 444 C588 450 586 454 584 458 L576 458 C590 440 592 412 584 392 Z" fill="{BONESH}" stroke="none"/>
|
||||
<ellipse cx="554" cy="424" rx="9" ry="10" fill="{LINE}"/>
|
||||
<ellipse cx="580" cy="424" rx="9" ry="10" fill="{LINE}"/>
|
||||
<path d="M566 434 L562 444 L570 444 Z" fill="{LINE}" stroke-width="1.5"/>
|
||||
<path d="M556 452 L556 458 M566 452 L566 458 M576 452 L576 458" stroke-width="2"/>
|
||||
</g>
|
||||
<!-- fist around the handle -->
|
||||
<path d="M520 520 C520 496 540 486 564 488 C588 490 600 504 598 528 C596 552 578 562 556 560 C534 558 520 544 520 520 Z" fill="{SKIN}"/>
|
||||
<path d="M532 534 C550 530 572 530 592 532 M534 548 C552 546 570 546 588 548" fill="none" stroke-width="2.2"/>
|
||||
<path d="M522 506 C538 494 572 494 592 506 C588 516 560 518 528 518 Z" fill="{SKIN}"/>
|
||||
<path d="M592 512 C598 530 594 548 582 556" fill="none" stroke="{SKINSH}" stroke-width="4"/>
|
||||
<g fill="{GLOW}" stroke="none"><path d="M630 470 l5 -14 l5 14 l14 5 l-14 5 l-5 14 l-5 -14 l-14 -5 Z"/><path d="M628 560 l3 -9 l3 9 l9 3 l-9 3 l-3 9 l-3 -9 l-9 -3 Z"/></g>
|
||||
</g>'''
|
||||
|
||||
def prop_shush():
|
||||
return f'''
|
||||
<g id="prop" stroke="{LINE}" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- wide sleeve crossing the chest -->
|
||||
<path d="M300 790 C304 704 322 626 336 576 L410 570 C430 640 450 716 466 790 Z" fill="{ROBE}"/>
|
||||
<path d="M390 572 C410 640 428 716 440 790 L466 790 C450 716 430 640 410 570 Z" fill="{ROBESH}" stroke="none"/>
|
||||
<path d="M334 588 L412 582" fill="none" stroke="{TRIM}" stroke-width="7"/>
|
||||
<path d="M334 588 L412 582" fill="none" stroke-width="1.5"/>
|
||||
<!-- hand, index finger to lips -->
|
||||
<path d="M334 562 C332 542 346 532 366 533 C388 534 400 546 398 566 C396 586 380 596 362 594 C344 592 336 580 334 562 Z" fill="{SKIN}"/>
|
||||
<path d="M384 540 C394 550 396 572 386 588 C380 592 372 594 362 594 C380 582 388 560 384 540 Z" fill="{SKINSH}" stroke="none"/>
|
||||
<path d="M350 544 C347 524 349 504 353 492 C357 482 369 482 371 492 C373 506 371 526 369 542 Z" fill="{SKIN}"/>
|
||||
<path d="M356 498 C358 492 366 492 368 498" fill="none" stroke="{SKINSH}" stroke-width="3"/>
|
||||
<path d="M346 556 C358 552 374 552 390 556 M344 572 C356 568 372 568 388 572" fill="none" stroke-width="2.2"/>
|
||||
<g fill="{GLOW}" stroke="none"><path d="M512 430 l5 -15 l5 15 l15 5 l-15 5 l-5 15 l-5 -15 l-15 -5 Z"/><path d="M546 360 l3 -9 l3 9 l9 3 l-9 3 l-3 9 l-3 -9 l-9 -3 Z"/><path d="M118 520 l3 -9 l3 9 l9 3 l-9 3 l-3 9 l-3 -9 l-9 -3 Z"/></g>
|
||||
</g>'''
|
||||
|
||||
# ---------- chibi bodies (2.5 heads; head drawn at scale 0.34) ----------
|
||||
def chibi(take):
|
||||
base = f'''
|
||||
<path d="M112 186 L76 202 C58 262 48 340 36 404 L192 404 C180 340 170 262 150 202 Z" fill="{ROBE}"/>
|
||||
<path d="M132 200 L150 202 C170 262 180 340 192 404 L160 404 C150 330 144 260 132 200 Z" fill="{ROBESH}" stroke="none"/>
|
||||
<path d="M114 214 L112 404" fill="none" stroke="{TRIM}" stroke-width="4"/>
|
||||
<path d="M60 330 l8 -8 l8 8 l-8 8 Z M150 330 l8 -8 l8 8 l-8 8 Z" fill="none" stroke="{TRIM}" stroke-width="2"/>
|
||||
<path d="M70 404 C70 418 104 418 104 404 Z M124 404 C124 418 158 418 158 404 Z" fill="{ROBESH}"/>
|
||||
<path d="M96 190 C96 180 132 180 132 190 L130 206 L98 206 Z" fill="{ROBE}"/>
|
||||
<circle cx="114" cy="210" r="6" fill="{GOLD}"/>
|
||||
<circle cx="114" cy="210" r="3" fill="{GLOW}" stroke="none"/>'''
|
||||
left_hang = f'''
|
||||
<path d="M80 206 C58 236 46 272 42 304 L80 310 C82 278 90 250 100 228 Z" fill="{ROBE}"/>
|
||||
<circle cx="62" cy="314" r="10" fill="{SKIN}"/>'''
|
||||
if take == "A":
|
||||
arms = f'''
|
||||
<path d="M80 206 C62 230 56 254 58 272 L96 268 C94 250 96 232 100 222 Z" fill="{ROBE}"/>
|
||||
<path d="M148 206 C166 230 172 254 170 272 L132 268 C134 250 132 232 128 222 Z" fill="{ROBE}"/>
|
||||
<ellipse cx="114" cy="244" rx="80" ry="34" fill="{GLOW}" opacity="0.25" stroke="none"/>
|
||||
<path d="M58 262 L114 266 L170 262 L170 290 L114 294 L58 290 Z" fill="{ROBE}"/>
|
||||
<path d="M62 256 C82 248 100 250 114 258 L114 284 C100 276 82 276 62 284 Z M114 258 C128 250 146 248 166 256 L166 284 C146 276 128 276 114 284 Z" fill="{BONE}"/>
|
||||
<rect x="104" y="214" width="20" height="20" rx="2" transform="rotate(45 114 224)" fill="none" stroke="{GLOW}" stroke-width="3"/>
|
||||
<circle cx="58" cy="278" r="10" fill="{SKIN}"/><circle cx="170" cy="278" r="10" fill="{SKIN}"/>'''
|
||||
elif take == "B":
|
||||
arms = left_hang + f'''
|
||||
<path d="M146 208 C168 196 182 176 188 154 L170 146 C164 166 154 182 138 194 Z" fill="{ROBE}"/>
|
||||
<g transform="rotate(10 184 120)">
|
||||
<path d="M168 128 L200 128 L200 140 L168 140 Z" fill="{GOLD}"/>
|
||||
<path d="M166 140 L202 140 L202 146 L166 146 Z" fill="{GLOW}"/>
|
||||
<path d="M178 104 L190 104 L190 128 L178 128 Z" fill="{ROBE}"/>
|
||||
<path d="M172 92 C170 78 178 72 184 72 C190 72 198 78 196 92 C196 98 192 102 190 104 L178 104 C176 102 172 98 172 92 Z" fill="{BONE}"/>
|
||||
<circle cx="180" cy="90" r="3" fill="{LINE}" stroke="none"/><circle cx="189" cy="90" r="3" fill="{LINE}" stroke="none"/>
|
||||
</g>
|
||||
<circle cx="180" cy="150" r="10" fill="{SKIN}"/>'''
|
||||
else:
|
||||
arms = left_hang + f'''
|
||||
<path d="M146 208 C150 196 140 186 128 182 L118 196 C126 200 132 206 132 214 Z" fill="{ROBE}"/>
|
||||
<circle cx="122" cy="178" r="9" fill="{SKIN}"/>
|
||||
<path d="M120 172 L120 160" stroke="{SKIN}" stroke-width="5"/>'''
|
||||
return f'''
|
||||
<g id="chibibody" stroke="{LINE}" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round">{base}{arms}
|
||||
</g>'''
|
||||
|
||||
TAKES = {
|
||||
"A": dict(name="THE GLOWING TOME", kind="bright", prop=prop_tome, rib=1.0, pin=1.0, frame="translate(66 6) scale(0.985)", label="BUST · FOUND IT",
|
||||
hook=["Hook: the swept lavender fringe that hooks into a curl,", "round glasses, and an open tome glowing up at her face."]),
|
||||
"B": dict(name="THE SKULL STAMP", kind="arch", prop=prop_stamp, rib=1.6, ribshift="-14 -40", pin=1.0, frame="translate(66 6) scale(0.985)", label="BUST · SPECIMEN",
|
||||
hook=["Hook: the black diamond ribbon, enlarged into a wing", "behind her head; the skull stamp raised as evidence."]),
|
||||
"C": dict(name="QUIET PLEASE", kind="wink", prop=prop_shush, rib=1.0, pin=1.5, pinat="196 168", frame="translate(14 -40) scale(1.13)", label="BUST · QUIET PLEASE",
|
||||
hook=["Hook: the crossed-bone hairpin, enlarged, on a close crop", "of hair and glasses; finger to lips, one eye shut."]),
|
||||
}
|
||||
|
||||
def sheet(t):
|
||||
T = TAKES[t]
|
||||
sw = [(KEY, "hair key"), (LINE, "line"), (ROBE, "robe"), (SKIN, "skin"), (GOLD, "gold"), (GLOW, "glow")]
|
||||
swatches = "\n".join(
|
||||
f' <rect x="{820+60*i}" y="660" width="52" height="52" fill="{c}" stroke="{LINE}" stroke-width="2"/><text x="{820+60*i}" y="728">{c}</text>'
|
||||
for i, (c, _) in enumerate(sw))
|
||||
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<!-- Libby, take {t}: {T["name"].title()}. Three takes on the canon design (cotsc-praxis character sheet). Hand-authored. -->
|
||||
<defs>
|
||||
<filter id="outline" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feFlood flood-color="{LINE}"/>
|
||||
<feComposite in2="d" operator="in" result="o"/>
|
||||
<feMerge><feMergeNode in="o"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feColorMatrix in="d" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<radialGradient id="glow" cx="0.46" cy="0.45" r="0.62">
|
||||
<stop offset="0" stop-color="#2d2150"/>
|
||||
<stop offset="1" stop-color="#07111a"/>
|
||||
</radialGradient>
|
||||
<clipPath id="chest"><rect x="-200" y="-100" width="1100" height="890"/></clipPath>
|
||||
{backhair()}
|
||||
{ribbon(T["rib"], T.get("ribshift","0 0"))}
|
||||
{hairpin(T["pin"], T.get("pinat","222 214"))}
|
||||
{headfront(T["kind"])}
|
||||
{body()}
|
||||
{T["prop"]()}
|
||||
<g id="bust" clip-path="url(#chest)">
|
||||
<use href="#backhair"/><use href="#ribbon"/><use href="#bustbody"/><use href="#headfront"/><use href="#hairpin"/><use href="#prop"/>
|
||||
</g>
|
||||
{chibi(t)}
|
||||
<clipPath id="card"><path d="M58 14 L792 14 L752 786 L18 786 Z"/></clipPath>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#efeae0"/>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="url(#glow)"/>
|
||||
<g clip-path="url(#card)"><g transform="{T["frame"]}"><use href="#bust" filter="url(#outline)"/></g></g>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="none" stroke="{KEY}" stroke-width="4"/>
|
||||
<text x="78" y="44" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="{KEY}" letter-spacing="4">{T["label"]}</text>
|
||||
|
||||
<text x="820" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="{LINE}" letter-spacing="3">FULL BODY · 2.5 HEADS</text>
|
||||
<g transform="translate(830 52)" filter="url(#outline)">
|
||||
<g transform="scale(0.34)"><use href="#backhair"/><use href="#ribbon"/></g>
|
||||
<use href="#chibibody"/>
|
||||
<g transform="scale(0.34)"><use href="#headfront"/><use href="#hairpin"/></g>
|
||||
</g>
|
||||
|
||||
<text x="1050" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="{LINE}" letter-spacing="3">SILHOUETTE</text>
|
||||
<g transform="translate(1040 54) scale(0.19)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<g transform="translate(1078 230) scale(0.06)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<text x="1050" y="300" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#555">48 px</text>
|
||||
|
||||
<text x="820" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="30" font-weight="700" fill="{LINE}">LIBBY · {t}</text>
|
||||
<text x="820" y="570" font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="{LINE}" letter-spacing="2">{T["name"]}</text>
|
||||
<text font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#222"><tspan x="820" y="604">{T["hook"][0]}</tspan><tspan x="820" y="623">{T["hook"][1]}</tspan></text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#333">
|
||||
{swatches}
|
||||
</g>
|
||||
<text x="820" y="760" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#555">hair key · line · robe · skin · gold · tome glow</text>
|
||||
</svg>
|
||||
'''
|
||||
|
||||
for t in (sys.argv[1:] or "ABC"):
|
||||
open(rf"{OUT}\libby-{t}.svg", "w", encoding="utf-8").write(sheet(t))
|
||||
print("wrote", t)
|
||||
89
cast-designs/proposals/libby/libby-notes.md
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# Libby: SVG proposals, round 1
|
||||
|
||||
## Change of brief: canon overrides libby.md
|
||||
|
||||
Libby already has an established design: the cotsc-praxis character sheet
|
||||
(`F:\Projects\gamecult-site\GameCult\static\interactive\cotsc-praxis\character-sheets\libby-sheet.png`,
|
||||
sprites in `sprites\libby\`). It has long wavy lavender hair with a swept fringe
|
||||
that hooks into a curl, round thin glasses, a crossed-bone hairpin, a black
|
||||
ribbon bow with diamond motifs at the back of the head, small gold drop
|
||||
earrings, a high-collared dark violet robe with mauve trim and diamond motifs, a
|
||||
gold brooch with a violet gem, and glowing tomes, a skull stamp and skulls as
|
||||
props. The coordinator ruled that canon overrides the brief, its palette rule
|
||||
included. Libby stays lavender/violet, and the three directions in `libby.md`
|
||||
(card-catalogue hat, mesh-weaver braids, reading-lamp shade) are dropped. A, B
|
||||
and C are now three takes on the canon design. Each one changes the hook
|
||||
emphasis, the prop and the framing for a Persona-style chibi bust. All three
|
||||
are drawn fresh from the reference, mirrored to face screen right. None is
|
||||
traced.
|
||||
|
||||
`libby-old-A.svg` / `.png` is the one sheet drawn from the old brief (the
|
||||
card-catalogue hat, second pass) before the ruling. It is kept for the record.
|
||||
It is not a candidate.
|
||||
|
||||
Canon palette used in all three: hair `#a99be0`, line `#2a1d40`, robe
|
||||
`#241a33`, skin `#f6d6c4`, gold `#c8a24a`, glow `#b77cff`. Each material has one
|
||||
shadow tone and one highlight tone. The rim light is lavender.
|
||||
|
||||
`libby-gen.py` assembles the three sheets from hand-written path strings. Change
|
||||
it and rerun it rather than editing the SVGs directly.
|
||||
|
||||
## A: The Glowing Tome ("Found it")
|
||||
|
||||
- **What it does:** the canon idle and research pose as a bust. Open delighted
|
||||
smile, both brows up, an open tome held at chest height with violet glyphs
|
||||
and light rays rising off the pages. The hook emphasis is the hair: the swept
|
||||
fringe, the hooked curl, and the full wavy mass.
|
||||
- **Changed after looking:** the first fringe read as a bowl cut with scalloped
|
||||
tips. It was redrawn as strands that sweep diagonally, each tip pointing down
|
||||
toward the face side, and the curl was made larger. The back hair outline got
|
||||
outward wave lobes, because a smooth helmet shape read as a wig. The cel
|
||||
shadow under the fringe now follows the strands. A translucent glow disc
|
||||
behind the book read as a grey plate and was replaced with light-ray strokes.
|
||||
- **Round 2:** the curl still sinks into the far front lock and disappears in
|
||||
silhouette. Push it out past the hair mass, or thin the far lock. Add violet
|
||||
up-light on the chin and the underside of the glasses so the tome visibly
|
||||
lights her face.
|
||||
|
||||
## B: The Skull Stamp ("Specimen")
|
||||
|
||||
- **What it does:** "she shows the artifact". Far brow arched, a knowing
|
||||
half-smile, the skull-topped stamp raised beside her face toward the text box
|
||||
with its violet rubber face showing. The hook emphasis is the ribbon, scaled
|
||||
1.6x and lifted so the bow rises as a dark wing above the back of the head.
|
||||
- **Changed after looking:** the first fist read as a thumbs-up, with the
|
||||
handle looking like part of the hand. It now has a wrapped thumb across the
|
||||
top and curved finger lines. The ribbon was lifted after the 48 px
|
||||
silhouette showed it hidden inside the hair dome.
|
||||
- **Round 2:** the fist is still the weakest drawing on the sheets. Try a
|
||||
pinch grip on the stamp base with the stamp face turned fully to the viewer.
|
||||
The enlarged bow is the clearest silhouette hook of the three. Consider
|
||||
making it the canon size for every expression.
|
||||
|
||||
## C: Quiet Please
|
||||
|
||||
- **What it does:** a tighter crop (1.13x) so the face and glasses carry the
|
||||
frame. Index finger to the lips, far eye shut in a wink behind the lens,
|
||||
violet sparkles. The hook emphasis is the crossed-bone hairpin, enlarged
|
||||
1.5x and moved onto the crown edge so the bones break the head outline.
|
||||
- **Changed after looking:** the finger was redrawn narrow and centred on the
|
||||
lips, with a nail mark and a shadowed fist below the chin, because the first
|
||||
version read as a thumb. The upper-iris shading was clipped to the iris; at
|
||||
this crop it had shown as a dark box over the white of the eye.
|
||||
- **Round 2:** the bones break the outline at 48 px, but they are small against
|
||||
the hair dome. Try them at 2x, or add the canon's small skull charm to the pin.
|
||||
|
||||
## Shared observations
|
||||
|
||||
- At 128 px all three read as cute and as Libby: lavender mass, round glasses,
|
||||
dark collar.
|
||||
- At 48 px all three silhouettes are a wavy dome with a bow. That suits one
|
||||
established character, but the bow and curl are the only above-the-shoulder
|
||||
breaks in the outline. For the cast-wide silhouette test, the strongest move
|
||||
is B's oversized ribbon, kept across all expressions.
|
||||
- The robe is dark on the dark #07111a card. It depends on the lavender rim
|
||||
light and the trim to separate. Round 2 could widen the rim or add a cooler
|
||||
violet to the card ground behind the shoulders.
|
||||
- Strongest: **B**. It has the clearest silhouette (the ribbon wing), the prop
|
||||
ties to her "specimen over cadence" trait, and the stamp's skull keeps the
|
||||
canon archive motif in the frame.
|
||||
BIN
cast-designs/proposals/libby/libby-old-A.png
Normal file
|
After Width: | Height: | Size: 328 KiB |
271
cast-designs/proposals/libby/libby-old-A.svg
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<!-- Libby, Direction A: The Card Catalogue. Hand-authored proposal sheet. -->
|
||||
<defs>
|
||||
<filter id="outline" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feFlood flood-color="#0f3d27"/>
|
||||
<feComposite in2="d" operator="in" result="o"/>
|
||||
<feMerge><feMergeNode in="o"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<filter id="sil" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3.2" result="d"/>
|
||||
<feColorMatrix in="d" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<radialGradient id="glow" cx="0.45" cy="0.42" r="0.6">
|
||||
<stop offset="0" stop-color="#14402a"/>
|
||||
<stop offset="1" stop-color="#07111a"/>
|
||||
</radialGradient>
|
||||
<clipPath id="chest"><rect x="-200" y="-100" width="1100" height="890"/></clipPath>
|
||||
|
||||
<!-- ===== back hair: long blunt hime cut ===== -->
|
||||
<g id="backhair" stroke="#0f3d27" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M150 290 C118 400 112 600 104 790 L522 790 C510 600 498 400 472 290 Z" fill="#2a2340"/>
|
||||
<path d="M440 330 C470 450 482 620 490 790 L522 790 C510 600 498 400 472 290 Z" fill="#1a1530" stroke="none"/>
|
||||
<path d="M478 330 C494 450 506 620 514 785" fill="none" stroke="#2fbf71" stroke-width="4"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== head front: face, features, sidelocks, fringe, glasses, hat ===== -->
|
||||
<g id="headfront" stroke-linejoin="round" stroke-linecap="round">
|
||||
<!-- far sidelock (behind face) -->
|
||||
<path d="M440 318 L482 318 C488 420 494 540 500 640 L446 640 Z" fill="#2a2340" stroke="#0f3d27" stroke-width="3"/>
|
||||
<path d="M488 380 C492 470 496 560 499 636" fill="none" stroke="#2fbf71" stroke-width="4"/>
|
||||
<!-- face -->
|
||||
<path d="M148 320 C143 420 162 502 214 550 C254 580 300 596 338 595 C378 592 420 566 441 520 C453 494 463 470 463 440 C470 400 468 360 456 316 Z" fill="#f3c9a8" stroke="#0f3d27" stroke-width="3"/>
|
||||
<!-- skin shadows: under fringe, far cheek -->
|
||||
<path d="M152 402 L464 394 L464 418 C400 410 300 418 156 434 Z" fill="#e3a98a"/>
|
||||
<path d="M446 405 C460 455 452 515 406 574 C440 548 456 500 448 460 Z" fill="#e3a98a"/>
|
||||
<path d="M444 470 C452 500 446 530 428 556" fill="none" stroke="#2fbf71" stroke-width="3.5"/>
|
||||
<g transform="translate(0 12)">
|
||||
<!-- blush -->
|
||||
<ellipse cx="246" cy="522" rx="26" ry="9" fill="#ee9a92" opacity="0.55"/>
|
||||
<ellipse cx="410" cy="522" rx="17" ry="8" fill="#ee9a92" opacity="0.55"/>
|
||||
<path d="M232 518 l6 -8 M244 520 l6 -8 M256 521 l6 -8" stroke="#d9786e" stroke-width="2" opacity="0.7"/>
|
||||
|
||||
<!-- near eye -->
|
||||
<clipPath id="eyeN"><path d="M212 446 C230 424 282 418 308 436 L305 500 C286 516 244 518 222 506 Z"/></clipPath>
|
||||
<path d="M212 446 C230 424 282 418 308 436 L305 500 C286 516 244 518 222 506 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeN)">
|
||||
<ellipse cx="264" cy="470" rx="34" ry="46" fill="#2fbf71" stroke="#0f3d27" stroke-width="3"/>
|
||||
<path d="M226 424 L304 424 L304 458 C290 448 240 448 226 458 Z" fill="#0f3d27" opacity="0.85"/>
|
||||
<path d="M238 492 C250 510 280 510 292 492 C282 500 248 500 238 492 Z" fill="#9be8bd"/>
|
||||
<ellipse cx="265" cy="472" rx="13" ry="21" fill="#0f3d27"/>
|
||||
</g>
|
||||
<ellipse cx="250" cy="455" rx="11" ry="14" fill="#fff"/>
|
||||
<circle cx="282" cy="492" r="5" fill="#fff"/>
|
||||
<path d="M206 452 C222 422 280 410 312 434" fill="none" stroke="#0f3d27" stroke-width="7"/>
|
||||
<path d="M208 448 L196 440 L210 442 Z M212 440 L201 428 L216 434 Z" fill="#0f3d27" stroke="#0f3d27" stroke-width="2"/>
|
||||
<path d="M226 508 C250 518 284 516 300 502" fill="none" stroke="#0f3d27" stroke-width="2.5"/>
|
||||
|
||||
<!-- far eye -->
|
||||
<clipPath id="eyeF"><path d="M362 438 C378 422 410 420 428 436 L427 496 C413 509 381 511 367 499 Z"/></clipPath>
|
||||
<path d="M362 438 C378 422 410 420 428 436 L427 496 C413 509 381 511 367 499 Z" fill="#ffffff"/>
|
||||
<g clip-path="url(#eyeF)">
|
||||
<ellipse cx="394" cy="470" rx="26" ry="45" fill="#2fbf71" stroke="#0f3d27" stroke-width="3"/>
|
||||
<path d="M362 424 L430 424 L430 458 C418 448 378 448 362 458 Z" fill="#0f3d27" opacity="0.85"/>
|
||||
<path d="M375 492 C384 508 404 508 413 492 C405 499 383 499 375 492 Z" fill="#9be8bd"/>
|
||||
<ellipse cx="395" cy="472" rx="10" ry="20" fill="#0f3d27"/>
|
||||
</g>
|
||||
<ellipse cx="384" cy="455" rx="8" ry="12" fill="#fff"/>
|
||||
<circle cx="405" cy="491" r="4" fill="#fff"/>
|
||||
<path d="M358 440 C376 418 412 416 432 436" fill="none" stroke="#0f3d27" stroke-width="6.5"/>
|
||||
<path d="M430 434 L441 428 L433 440 Z" fill="#0f3d27" stroke="#0f3d27" stroke-width="2"/>
|
||||
<path d="M370 502 C386 510 410 510 423 500" fill="none" stroke="#0f3d27" stroke-width="2.5"/>
|
||||
|
||||
<!-- nose and mouth: knowing half-smile -->
|
||||
<path d="M352 482 L357 492 L350 494" fill="none" stroke="#c27d62" stroke-width="2.5"/>
|
||||
<path d="M326 527 C338 533 352 532 366 520" fill="none" stroke="#0f3d27" stroke-width="3"/>
|
||||
<path d="M366 520 l5 -3" stroke="#0f3d27" stroke-width="2.5"/>
|
||||
|
||||
<!-- glasses: small square brass frames -->
|
||||
<g fill="none">
|
||||
<path d="M200 440 L150 432" stroke="#0f3d27" stroke-width="6"/>
|
||||
<path d="M200 440 L150 432" stroke="#c8903a" stroke-width="2.5"/>
|
||||
<rect x="200" y="416" width="116" height="96" rx="9" stroke="#0f3d27" stroke-width="7"/>
|
||||
<rect x="200" y="416" width="116" height="96" rx="9" stroke="#c8903a" stroke-width="3"/>
|
||||
<path d="M352 418 L434 416 L434 510 L355 512 Z" stroke="#0f3d27" stroke-width="7"/>
|
||||
<path d="M352 418 L434 416 L434 510 L355 512 Z" stroke="#c8903a" stroke-width="3"/>
|
||||
<path d="M316 448 C328 438 342 438 352 448" stroke="#0f3d27" stroke-width="6"/>
|
||||
<path d="M316 448 C328 438 342 438 352 448" stroke="#c8903a" stroke-width="2.5"/>
|
||||
<path d="M212 498 L246 426 M226 504 L252 448" stroke="#ffffff" stroke-width="5" opacity="0.5"/>
|
||||
<path d="M364 498 L392 426" stroke="#ffffff" stroke-width="5" opacity="0.5"/>
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<!-- near sidelock (in front of face) -->
|
||||
<path d="M136 310 C130 420 132 540 126 642 L202 642 C199 560 192 470 196 390 L178 312 Z" fill="#2a2340" stroke="#0f3d27" stroke-width="3"/>
|
||||
<path d="M178 330 C186 420 190 520 188 640 L202 642 C199 560 192 470 196 390 Z" fill="#1a1530"/>
|
||||
<!-- fringe: blunt, straight -->
|
||||
<path d="M126 340 C124 240 214 188 318 188 C424 188 494 240 490 340 L470 396 L150 404 Z" fill="#2a2340" stroke="#0f3d27" stroke-width="3"/>
|
||||
<path d="M150 404 L470 396 L470 382 L150 390 Z" fill="#1a1530"/>
|
||||
<path d="M236 360 L236 402 M300 356 L300 400 M372 356 L372 398 M430 358 L430 396" stroke="#1a1530" stroke-width="3"/>
|
||||
<!-- squared hair highlight (one highlight tone) -->
|
||||
<path d="M158 346 C230 326 400 322 474 342 L472 356 C400 338 230 340 160 362 Z" fill="#4a4170"/>
|
||||
<path d="M236 330 L236 350 M300 324 L300 344 M372 324 L372 344 M430 330 L430 348" stroke="#2a2340" stroke-width="5"/>
|
||||
<path d="M470 330 L470 386" stroke="#2fbf71" stroke-width="4"/>
|
||||
<!-- brows over the fringe: near level, far raised (specimen) -->
|
||||
<path d="M226 392 C246 384 276 384 296 390" fill="none" stroke="#2a2340" stroke-width="6"/>
|
||||
<path d="M366 380 C380 366 408 364 426 374" fill="none" stroke="#2a2340" stroke-width="6"/>
|
||||
|
||||
<!-- ===== hat: stack of card-catalogue drawers ===== -->
|
||||
<g transform="translate(0 42) rotate(-4 330 270)" stroke="#0f3d27" stroke-width="3">
|
||||
<!-- top and side faces -->
|
||||
<path d="M170 18 L400 18 L445 30 L215 30 Z" fill="#7ddca5"/>
|
||||
<path d="M170 18 L215 30 L215 272 L170 260 Z" fill="#1f8f52"/>
|
||||
<path d="M215 90 L170 78 M215 150 L170 138 M215 210 L170 198" fill="none" stroke-width="2.5"/>
|
||||
<!-- front face -->
|
||||
<rect x="215" y="30" width="230" height="242" fill="#2fbf71"/>
|
||||
<path d="M215 90 L445 90 M215 150 L445 150 M215 210 L445 210 M330 30 L330 272" fill="none"/>
|
||||
<!-- drawer panels, each with label holder and cup pull -->
|
||||
<g id="drawer">
|
||||
<rect x="222" y="37" width="101" height="46" rx="2" fill="#2fbf71" stroke-width="2"/>
|
||||
<path d="M224 79 L321 79" stroke="#1f8f52" stroke-width="5"/>
|
||||
<rect x="252" y="44" width="42" height="15" fill="#c8903a" stroke-width="2"/>
|
||||
<rect x="257" y="47" width="32" height="9" fill="#f6e7c8" stroke="none"/>
|
||||
<path d="M258 64 C258 78 288 78 288 64 Z" fill="#c8903a" stroke-width="2"/>
|
||||
</g>
|
||||
<use href="#drawer" x="115"/>
|
||||
<use href="#drawer" y="60"/>
|
||||
<use href="#drawer" x="115" y="60"/>
|
||||
<use href="#drawer" y="120"/>
|
||||
<use href="#drawer" y="180"/>
|
||||
<use href="#drawer" x="115" y="180"/>
|
||||
<!-- the open drawer: dark slot, cards, pulled-out front -->
|
||||
<rect x="333" y="153" width="109" height="54" fill="#0f3d27"/>
|
||||
<path d="M333 153 L369 163 L369 223 L333 213 Z" fill="#1f8f52"/>
|
||||
<g fill="#f6e7c8" stroke-width="2.5">
|
||||
<path d="M352 168 L372 108 L420 120 L404 178 Z"/>
|
||||
<path d="M374 172 L388 112 L436 118 L428 176 Z"/>
|
||||
<path d="M398 174 L420 116 L466 128 L448 182 Z"/>
|
||||
<path d="M392 120 L430 125 M394 130 L426 134 M424 132 L456 141" stroke="#c8903a" stroke-width="2"/>
|
||||
</g>
|
||||
<path d="M333 153 L442 153 L478 163 L369 163 Z" fill="#7ddca5"/>
|
||||
<rect x="369" y="163" width="109" height="60" fill="#2fbf71"/>
|
||||
<rect x="376" y="170" width="95" height="46" rx="2" fill="#2fbf71" stroke-width="2"/>
|
||||
<path d="M378 212 L469 212" stroke="#1f8f52" stroke-width="5"/>
|
||||
<rect x="403" y="176" width="42" height="15" fill="#c8903a" stroke-width="2"/>
|
||||
<rect x="408" y="179" width="32" height="9" fill="#f6e7c8" stroke="none"/>
|
||||
<path d="M409 196 C409 210 439 210 439 196 Z" fill="#c8903a" stroke-width="2"/>
|
||||
<!-- brass base rail -->
|
||||
<path d="M170 254 L215 266 L445 266 L445 278 L215 278 L170 266 Z" fill="#c8903a"/>
|
||||
<path d="M445 36 L445 262" stroke="#2fbf71" stroke-width="0"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- ===== bust body: cardigan, square collar ===== -->
|
||||
<g id="bustbody" stroke="#0f3d27" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M298 580 L300 652 L378 652 L374 580 Z" fill="#f3c9a8"/>
|
||||
<path d="M298 584 C326 606 356 606 376 590 L377 628 L299 632 Z" fill="#e3a98a" stroke="none"/>
|
||||
<path d="M110 790 C112 712 150 670 232 652 L300 640 L380 640 L456 652 C528 666 566 710 576 790 Z" fill="#2fbf71"/>
|
||||
<path d="M440 660 C500 676 540 712 548 790 L576 790 C566 710 528 666 456 652 Z" fill="#1f8f52" stroke="none"/>
|
||||
<path d="M300 640 L338 790 L384 640 Z" fill="#f6e7c8"/>
|
||||
<path d="M300 640 L244 652 L258 712 L326 704 Z" fill="#f6e7c8"/>
|
||||
<path d="M384 640 L436 650 L424 708 L352 704 Z" fill="#f6e7c8"/>
|
||||
<path d="M330 704 L340 760 L350 704 Z" fill="#e0cba3" stroke="none"/>
|
||||
<path d="M272 664 L300 662 M402 662 L420 664" stroke="#c8903a" stroke-width="3"/>
|
||||
<path d="M326 704 L338 790 L352 704" fill="none"/>
|
||||
<circle cx="360" cy="730" r="7" fill="#c8903a"/>
|
||||
<circle cx="352" cy="770" r="7" fill="#c8903a"/>
|
||||
<path d="M560 720 C570 750 574 770 576 790" fill="none" stroke="#2fbf71" stroke-width="0"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== raised hand with the index card ===== -->
|
||||
<g id="cardhand" stroke="#0f3d27" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M492 790 C488 720 492 650 500 594 L560 590 C566 650 572 720 580 790 Z" fill="#2fbf71"/>
|
||||
<path d="M540 594 C548 660 556 720 562 790 L580 790 C572 720 566 650 560 590 Z" fill="#1f8f52" stroke="none"/>
|
||||
<path d="M496 594 L562 588 L564 610 L498 616 Z" fill="#f6e7c8"/>
|
||||
<g transform="rotate(-9 575 470)">
|
||||
<rect x="488" y="408" width="182" height="122" rx="4" fill="#f6e7c8" stroke-width="4"/>
|
||||
<path d="M488 436 L670 436" stroke="#d9483b" stroke-width="2.5"/>
|
||||
<path d="M500 452 L656 452 M500 470 L656 470 M500 488 L656 488 M500 506 L600 506" stroke="#e0cba3" stroke-width="1.5"/>
|
||||
<text x="499" y="430" font-family="Consolas, 'Courier New', monospace" font-size="15" font-weight="700" fill="#0f3d27" stroke="none">LIBBY.cc</text>
|
||||
<text x="501" y="466" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a2340" stroke="none">id u64</text>
|
||||
<text x="501" y="484" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a2340" stroke="none">name str</text>
|
||||
<text x="501" y="502" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a2340" stroke="none">tags [str]</text>
|
||||
<g transform="translate(14 -26) rotate(-14 622 492)">
|
||||
<rect x="586" y="476" width="74" height="30" rx="3" fill="none" stroke="#d9483b" stroke-width="3"/>
|
||||
<text x="594" y="497" font-family="Consolas, 'Courier New', monospace" font-size="15" font-weight="700" fill="#d9483b" stroke="none">TYPED</text>
|
||||
</g>
|
||||
</g>
|
||||
<!-- hand: fingers behind card edge, thumb in front -->
|
||||
<path d="M496 566 C494 540 506 528 530 528 C554 528 568 542 568 564 C568 584 556 598 532 598 C510 598 498 586 496 566 Z" fill="#f3c9a8"/>
|
||||
<path d="M552 532 C566 540 568 566 556 584 C548 592 540 594 530 596 C548 580 556 556 552 532 Z" fill="#e3a98a" stroke="none"/>
|
||||
<path d="M508 546 C510 528 524 514 540 512 C550 512 550 524 540 532 C530 540 522 544 520 552 Z" fill="#f3c9a8"/>
|
||||
<path d="M520 568 L548 566 M522 582 L546 580" fill="none" stroke-width="2"/>
|
||||
</g>
|
||||
|
||||
<!-- whole bust, clipped at mid-chest -->
|
||||
<g id="bust" clip-path="url(#chest)">
|
||||
<use href="#backhair"/>
|
||||
<use href="#bustbody"/>
|
||||
<use href="#headfront"/>
|
||||
<use href="#cardhand"/>
|
||||
</g>
|
||||
|
||||
<!-- chibi body (2.5 heads), drawn in chibi space, head scaled 0.36 -->
|
||||
<g id="chibibody" stroke="#0f3d27" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M90 382 L92 424 L104 424 L104 382 Z M128 382 L128 424 L140 424 L142 382 Z" fill="#f3c9a8"/>
|
||||
<path d="M90 400 L104 400 L104 424 L92 424 Z M128 400 L140 400 L140 424 L128 424 Z" fill="#f6e7c8"/>
|
||||
<path d="M84 432 C84 420 108 418 108 428 L108 436 L84 436 Z M124 428 C124 418 148 420 148 432 L148 436 L124 436 Z" fill="#0f3d27"/>
|
||||
<path d="M72 318 L162 318 L178 388 L56 388 Z" fill="#2a2340"/>
|
||||
<path d="M112 318 L130 388 L178 388 L162 318 Z" fill="#1a1530" stroke="none"/>
|
||||
<path d="M78 226 L154 226 C166 256 168 296 164 326 L70 326 C66 296 68 256 78 226 Z" fill="#2fbf71"/>
|
||||
<path d="M100 226 L116 262 L132 226 Z" fill="#f6e7c8"/>
|
||||
<path d="M116 262 L116 326" fill="none"/>
|
||||
<circle cx="122" cy="282" r="3.5" fill="#c8903a"/>
|
||||
<circle cx="122" cy="304" r="3.5" fill="#c8903a"/>
|
||||
<path d="M80 232 C64 256 58 282 62 302 L76 300 C76 282 80 262 90 246 Z" fill="#2fbf71"/>
|
||||
<circle cx="68" cy="308" r="10" fill="#f3c9a8"/>
|
||||
<path d="M150 234 C168 222 180 204 186 186 L172 178 C166 196 156 210 142 220 Z" fill="#2fbf71"/>
|
||||
<g transform="rotate(-10 196 150)">
|
||||
<rect x="160" y="124" width="72" height="50" rx="2" fill="#f6e7c8"/>
|
||||
<path d="M168 140 L224 140 M168 150 L224 150 M168 160 L206 160" stroke="#e0cba3" stroke-width="2"/>
|
||||
<rect x="204" y="152" width="22" height="12" fill="none" stroke="#d9483b" stroke-width="2"/>
|
||||
</g>
|
||||
<circle cx="180" cy="174" r="11" fill="#f3c9a8"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<!-- ===== sheet ===== -->
|
||||
<rect width="1200" height="800" fill="#efeae0"/>
|
||||
|
||||
<!-- portrait card: GameCult ground, parallelogram, edge-lit in key green -->
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="url(#glow)"/>
|
||||
<path d="M58 14 L792 14 L752 786 L18 786 Z" fill="none" stroke="#2fbf71" stroke-width="4"/>
|
||||
|
||||
<g transform="translate(70 4) scale(0.985)">
|
||||
<use href="#bust" filter="url(#outline)"/>
|
||||
</g>
|
||||
<text x="80" y="46" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#2fbf71" letter-spacing="4">BUST · SPECIMEN</text>
|
||||
|
||||
<!-- full-body chibi -->
|
||||
<text x="820" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#0f3d27" letter-spacing="3">FULL BODY · 2.5 HEADS</text>
|
||||
<g transform="translate(830 50)" filter="url(#outline)">
|
||||
<g transform="scale(0.36)"><use href="#backhair"/></g>
|
||||
<use href="#chibibody"/>
|
||||
<path d="M108 206 L108 232 L130 232 L130 206 Z" fill="#f3c9a8" stroke="#0f3d27" stroke-width="2.5"/>
|
||||
<g transform="scale(0.36)"><use href="#headfront"/></g>
|
||||
</g>
|
||||
|
||||
<!-- silhouettes -->
|
||||
<text x="1050" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#0f3d27" letter-spacing="3">SILHOUETTE</text>
|
||||
<g transform="translate(1040 52) scale(0.19)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<g transform="translate(1076 222) scale(0.06)"><use href="#bust" filter="url(#sil)"/></g>
|
||||
<text x="1050" y="290" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#555">48 px</text>
|
||||
|
||||
<!-- title, hook, palette -->
|
||||
<text x="820" y="540" font-family="Segoe UI, Arial, sans-serif" font-size="30" font-weight="700" fill="#0f3d27">LIBBY · A</text>
|
||||
<text x="820" y="570" font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="#0f3d27" letter-spacing="2">THE CARD CATALOGUE</text>
|
||||
<text x="820" y="606" font-family="Segoe UI, Arial, sans-serif" font-size="14.5" fill="#222">
|
||||
<tspan x="820">Hook: a hat of card-catalogue drawers as tall</tspan>
|
||||
<tspan x="820" dy="19">as her face, one drawer pulled open on index cards.</tspan>
|
||||
</text>
|
||||
<g font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#333">
|
||||
<rect x="820" y="660" width="52" height="52" fill="#2fbf71" stroke="#0f3d27" stroke-width="2"/><text x="820" y="728">#2fbf71</text>
|
||||
<rect x="880" y="660" width="52" height="52" fill="#0f3d27" stroke="#0f3d27" stroke-width="2"/><text x="880" y="728">#0f3d27</text>
|
||||
<rect x="940" y="660" width="52" height="52" fill="#f6e7c8" stroke="#0f3d27" stroke-width="2"/><text x="940" y="728">#f6e7c8</text>
|
||||
<rect x="1000" y="660" width="52" height="52" fill="#c8903a" stroke="#0f3d27" stroke-width="2"/><text x="1000" y="728">#c8903a</text>
|
||||
<rect x="1060" y="660" width="52" height="52" fill="#2a2340" stroke="#0f3d27" stroke-width="2"/><text x="1060" y="728">#2a2340</text>
|
||||
<rect x="1120" y="660" width="52" height="52" fill="#f3c9a8" stroke="#0f3d27" stroke-width="2"/><text x="1120" y="728">#f3c9a8</text>
|
||||
</g>
|
||||
<text x="820" y="760" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#555">key · line · card stock · brass · hair · skin</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
BIN
cast-designs/proposals/nibu/nibu-A.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
340
cast-designs/proposals/nibu/nibu-A.svg
Normal file
|
|
@ -0,0 +1,340 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Nibu, direction A: Source Slate</title>
|
||||
<defs>
|
||||
<!-- canon Nibu: lavender hair, swoop over one eye, pink bow + circuit clip, violet coat, glitch.
|
||||
palette: key #9a6bff, line #2a1452, hair #b9aef5 (shadow #8576dc, light #e4ddff),
|
||||
coat #4a2d8f (shadow #33206a), ribbon pink #f08cc0 (shadow #c4609a), cyan #7af0ff, skin #f0d3dd (shadow #d6a8bd) -->
|
||||
<filter id="holo" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feColorMatrix in="SourceGraphic" type="matrix" values="0.35 0.45 0.15 0 0.05 0.25 0.50 0.25 0 0 0.10 0.30 0.40 0 0.30 0 0 0 0.85 0" result="tint"/>
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3" result="fat"/>
|
||||
<feComposite in="fat" in2="SourceAlpha" operator="out" result="ring"/>
|
||||
<feFlood flood-color="#7af0ff"/>
|
||||
<feComposite in2="ring" operator="in" result="edge"/>
|
||||
<feMerge><feMergeNode in="tint"/><feMergeNode in="edge"/></feMerge>
|
||||
</filter>
|
||||
<filter id="black" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<pattern id="scan" width="10" height="7" patternUnits="userSpaceOnUse">
|
||||
<rect width="10" height="5" fill="#fff"/>
|
||||
</pattern>
|
||||
<mask id="scanMask" maskUnits="userSpaceOnUse" x="-600" y="-600" width="2400" height="2400">
|
||||
<rect x="-600" y="-600" width="2400" height="2400" fill="url(#scan)"/>
|
||||
</mask>
|
||||
<clipPath id="eyeBand"><rect x="206" y="366" width="128" height="56"/></clipPath>
|
||||
<clipPath id="mouthBand"><rect x="150" y="428" width="140" height="16"/></clipPath>
|
||||
|
||||
<!-- ===== BUST, local space 640 x 770, faces screen right ===== -->
|
||||
<path id="faceP" d="M192,285 C186,370 214,446 300,498 C326,514 356,516 378,502 C432,468 468,410 472,298 Z"/>
|
||||
<clipPath id="faceClip"><use xlink:href="#faceP"/></clipPath>
|
||||
<!-- crown and wispy bangs -->
|
||||
<path id="crownP" d="M126,320 C110,160 212,56 336,56 C470,56 560,160 544,320 C534,314 520,304 510,292
|
||||
L504,338 Q486,300 462,280 Q458,316 452,352 Q430,300 400,272 Q396,322 390,362 Q366,300 330,272
|
||||
Q326,322 318,358 Q298,302 266,280 Q262,312 256,342 Q236,306 206,290 C178,300 152,312 126,320 Z"/>
|
||||
|
||||
<g id="hairBack">
|
||||
<path d="M332,52 C474,50 566,154 558,300 C556,372 600,430 586,512 C574,584 624,640 604,706 C596,734 606,754 614,850 L452,850 C470,700 462,620 446,566 L244,566 C226,640 214,710 210,850 L56,850 C76,720 52,670 72,612 C92,552 58,494 92,430 C112,392 120,350 122,300 C124,150 196,54 332,52 Z" fill="#8576dc" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M96,470 C80,530 104,580 84,640 M586,540 C574,600 610,650 592,710" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<!-- ribbon bow on her far side -->
|
||||
<path d="M548,272 L586,370 L566,360 L558,384 L530,284 Z M556,270 L620,346 L598,344 L600,368 L540,282 Z" fill="#c4609a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M540,262 C566,186 640,184 628,238 C622,268 578,276 540,262 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M540,262 C600,250 630,300 610,322 C590,340 556,300 540,262 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M566,232 C584,214 606,214 612,232 M566,286 C588,296 600,306 604,316" fill="none" stroke="#c4609a" stroke-width="5" stroke-linecap="round"/>
|
||||
<ellipse cx="542" cy="264" rx="17" ry="21" fill="#f08cc0" stroke="#2a1452" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="bodyC">
|
||||
<path d="M300,466 L298,580 L394,580 L392,466 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="5"/>
|
||||
<path d="M298,488 C330,526 370,520 394,486 L394,556 L298,556 Z" fill="#d6a8bd"/>
|
||||
<!-- coat -->
|
||||
<path d="M96,850 C104,660 176,600 280,582 L412,578 C512,598 572,662 584,850 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M430,588 C510,612 562,668 574,850 L494,850 C486,700 464,640 420,604 Z" fill="#33206a"/>
|
||||
<path d="M546,640 C566,680 576,720 580,850" fill="none" stroke="#9a6bff" stroke-width="6" stroke-linecap="round"/>
|
||||
<!-- blouse panel -->
|
||||
<path d="M282,582 L410,578 L384,850 L308,850 Z" fill="#e4ddff" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M318,650 L376,648 L370,730 L322,730 Z" fill="#7af0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M330,668 L362,668 M330,684 L352,684 M330,700 L364,700 M330,714 L346,714" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- circuit-glyph trim on the coat front edges -->
|
||||
<path d="M282,584 L270,640 L284,660 L272,720 L276,850 M410,580 L420,636 L406,656 L414,720 L410,850" fill="none" stroke="#f08cc0" stroke-width="5" stroke-linejoin="round"/>
|
||||
<circle cx="270" cy="640" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/>
|
||||
<circle cx="406" cy="656" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/>
|
||||
<!-- standing collar and throat frill -->
|
||||
<path d="M262,520 L240,612 L298,590 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M426,512 L462,604 L396,588 Z" fill="#33206a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M292,548 Q304,566 318,552 Q330,572 346,556 Q360,574 374,554 Q388,568 400,546 L404,590 Q350,606 288,592 Z" fill="#f4f0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<circle cx="346" cy="604" r="11" fill="#9a6bff" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="342" cy="600" r="3.5" fill="#fff"/>
|
||||
<!-- shoulder port ring -->
|
||||
<circle cx="458" cy="616" r="18" fill="#1a1726" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="458" cy="616" r="11" fill="none" stroke="#7af0ff" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="headFront">
|
||||
<use xlink:href="#faceP" fill="#f0d3dd" stroke="#2a1452" stroke-width="6"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<use xlink:href="#crownP" transform="translate(6,16)" fill="#d6a8bd"/>
|
||||
<path d="M440,330 C452,400 430,460 380,500 L480,520 L500,300 Z" fill="#d6a8bd"/>
|
||||
</g>
|
||||
<path d="M452,360 C448,420 424,466 384,494" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- front locks: near one falls over the shoulder, far one frames the jaw -->
|
||||
<path d="M540,300 C546,380 520,440 500,500 C486,548 512,600 498,660 C492,700 500,740 496,850 L452,850 C462,730 446,690 458,640 C470,580 444,540 460,480 C474,420 470,360 462,312 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M128,300 C112,380 146,440 166,500 C186,560 142,620 166,690 C176,720 166,750 158,850 L244,850 C252,720 232,680 244,636 C256,590 226,540 222,480 C216,420 214,360 220,314 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M220,330 C214,400 222,470 238,520 C246,560 230,600 236,640 C222,600 216,560 210,520 C196,460 196,390 206,330 Z" fill="#8576dc"/>
|
||||
<path d="M150,520 C168,560 160,600 154,640" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use xlink:href="#crownP" fill="#b9aef5" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- one highlight band -->
|
||||
<path d="M262,128 C296,110 336,104 380,108 L370,128 L398,110 L404,128 L430,114 L436,128 C410,118 340,112 262,128 Z" fill="#e4ddff"/>
|
||||
<path d="M170,236 C176,200 194,172 218,152 L214,176 L232,150 C206,176 186,206 170,236 Z" fill="#e4ddff"/>
|
||||
<path d="M512,240 C516,200 506,170 488,146" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- circuit hair clip -->
|
||||
<g transform="rotate(-24 372 134)">
|
||||
<rect x="336" y="126" width="72" height="16" rx="5" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<rect x="356" y="116" width="32" height="36" rx="4" fill="#f4f0ff" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M364,124 L364,134 L372,134 L372,144 M380,122 L380,140" fill="none" stroke="#9a6bff" stroke-width="3" stroke-linecap="round"/>
|
||||
<circle cx="334" cy="134" r="11" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="410" cy="134" r="11" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="330" cy="130" r="3.5" fill="#fff"/><circle cx="406" cy="130" r="3.5" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g id="swoop">
|
||||
<path d="M336,112 C268,146 230,224 242,300 C252,356 236,410 192,428 C156,440 120,420 104,382 C136,398 164,390 176,358 C188,322 182,262 202,204 C222,156 276,124 336,112 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M240,300 C252,352 238,400 192,426 C214,400 222,366 214,322 C206,272 214,212 246,160 C228,210 226,262 240,300 Z" fill="#8576dc"/>
|
||||
<path d="M206,196 C216,160 240,132 274,116" fill="none" stroke="#e4ddff" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- eyes: same construction for every expression -->
|
||||
<clipPath id="wN"><path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z"/></clipPath>
|
||||
<clipPath id="wF"><path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z"/></clipPath>
|
||||
<clipPath id="iN"><ellipse cx="278" cy="400" rx="34" ry="44"/></clipPath>
|
||||
<clipPath id="iF"><ellipse cx="409" cy="397" rx="25" ry="41"/></clipPath>
|
||||
|
||||
<g id="exprCalm">
|
||||
<path d="M240,338 Q272,328 306,334" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M380,332 Q406,326 432,330" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wN)"><g clip-path="url(#iN)">
|
||||
<rect x="200" y="340" width="140" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="278" cy="372" rx="42" ry="28" fill="#4b2a99"/>
|
||||
<ellipse cx="282" cy="438" rx="28" ry="14" fill="#e0b6ff"/>
|
||||
<ellipse cx="280" cy="404" rx="13" ry="19" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="278" cy="400" rx="34" ry="44" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="292" cy="386" rx="10" ry="12" fill="#fff"/>
|
||||
<circle cx="266" cy="420" r="5" fill="#fff"/>
|
||||
</g>
|
||||
<!-- half-lidded: heavy upper lid -->
|
||||
<path d="M218,394 C226,354 300,346 330,370 L340,366 L330,384 C306,370 252,368 228,398 Z" fill="#2a1452"/>
|
||||
<path d="M250,438 Q276,446 302,434" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wF)"><g clip-path="url(#iF)">
|
||||
<rect x="360" y="340" width="100" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="370" rx="32" ry="27" fill="#4b2a99"/>
|
||||
<ellipse cx="411" cy="434" rx="21" ry="12" fill="#e0b6ff"/>
|
||||
<ellipse cx="411" cy="401" rx="10" ry="18" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="409" cy="397" rx="25" ry="41" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="420" cy="384" rx="8" ry="10" fill="#fff"/>
|
||||
<circle cx="400" cy="416" r="4" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M366,390 C374,352 430,344 448,364 L458,360 L448,380 C430,366 386,366 372,394 Z" fill="#2a1452"/>
|
||||
<path d="M386,432 Q408,440 428,430" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M356,442 Q364,450 356,455" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- level, unbothered mouth -->
|
||||
<path d="M336,474 Q352,478 368,472" fill="none" stroke="#2a1452" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M244,456 l-9,11 M258,456 l-9,11 M424,450 l-7,9" stroke="#e08aa8" stroke-width="3" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="exprSource">
|
||||
<path d="M234,326 Q262,290 308,316" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M378,342 Q406,336 436,344" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wN)"><g clip-path="url(#iN)">
|
||||
<rect x="200" y="340" width="140" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="278" cy="372" rx="42" ry="28" fill="#4b2a99"/>
|
||||
<ellipse cx="282" cy="438" rx="28" ry="14" fill="#e0b6ff"/>
|
||||
<ellipse cx="288" cy="406" rx="13" ry="19" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="278" cy="400" rx="34" ry="44" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="292" cy="386" rx="10" ry="12" fill="#fff"/>
|
||||
<circle cx="266" cy="420" r="5" fill="#fff"/>
|
||||
</g>
|
||||
<!-- half-lidded: heavy upper lid -->
|
||||
<path d="M218,394 C226,354 300,346 330,370 L340,366 L330,384 C306,370 252,368 228,398 Z" fill="#2a1452"/>
|
||||
<path d="M250,438 Q276,446 302,434" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wF)"><g clip-path="url(#iF)">
|
||||
<rect x="360" y="340" width="100" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="370" rx="32" ry="27" fill="#4b2a99"/>
|
||||
<ellipse cx="411" cy="434" rx="21" ry="12" fill="#e0b6ff"/>
|
||||
<ellipse cx="418" cy="403" rx="10" ry="18" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="409" cy="397" rx="25" ry="41" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="420" cy="384" rx="8" ry="10" fill="#fff"/>
|
||||
<circle cx="400" cy="416" r="4" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M366,398 C376,364 430,356 448,372 L458,368 L448,388 C430,376 386,376 372,402 Z" fill="#2a1452"/>
|
||||
<path d="M386,432 Q408,440 428,430" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M356,442 Q364,450 356,455" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- level, unbothered mouth -->
|
||||
<path d="M330,478 Q348,474 362,472 Q370,470 376,460" fill="none" stroke="#2a1452" stroke-width="4" stroke-linecap="round"/>
|
||||
|
||||
</g>
|
||||
|
||||
<g id="exprHostile">
|
||||
<path d="M222,318 L314,350" stroke="#2a1452" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M372,350 L446,318" stroke="#2a1452" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M230,388 C250,374 300,372 318,386 C318,408 304,426 274,428 C246,426 230,408 230,388 Z" fill="#fff"/>
|
||||
<ellipse cx="282" cy="402" rx="20" ry="24" fill="#9a6bff"/>
|
||||
<ellipse cx="283" cy="404" rx="5" ry="12" fill="#2a1452"/>
|
||||
<path d="M220,388 L328,374 L332,394 L226,398 Z" fill="#2a1452"/>
|
||||
<path d="M376,386 C392,374 428,372 438,384 C438,406 428,424 406,426 C386,424 376,408 376,386 Z" fill="#fff"/>
|
||||
<ellipse cx="408" cy="402" rx="16" ry="22" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="404" rx="4" ry="11" fill="#2a1452"/>
|
||||
<path d="M368,374 L448,384 L446,398 L372,394 Z" fill="#2a1452"/>
|
||||
<path d="M312,458 L394,452 C386,496 334,502 312,458 Z" fill="#2a1452"/>
|
||||
<path d="M316,460 L390,455 L388,466 L378,478 L372,467 L328,470 L322,480 Z" fill="#fff"/>
|
||||
</g>
|
||||
|
||||
<g id="ghostCore" transform="translate(-196,-64) rotate(-7 336 400)">
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyC"/><use xlink:href="#headFront"/><use xlink:href="#exprHostile" transform="translate(336,410) scale(1.12) translate(-336,-410)"/><use xlink:href="#swoop"/>
|
||||
</g>
|
||||
|
||||
<g id="slate">
|
||||
<!-- detached sleeve rising from the frame edge -->
|
||||
<path d="M548,780 C556,730 568,700 584,664 L656,676 C650,710 648,740 650,780 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M622,672 L656,676 C650,710 648,740 650,780 L616,780 C616,740 616,708 622,672 Z" fill="#33206a"/>
|
||||
<path d="M578,672 L662,684 L656,708 L572,698 Z" fill="#33206a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M576,688 L658,700" stroke="#f08cc0" stroke-width="4"/>
|
||||
<g transform="translate(612,520) rotate(10)">
|
||||
<!-- glove palm behind the slate -->
|
||||
<path d="M-40,110 C-44,150 -20,170 6,168 C34,166 46,140 40,108 Z" fill="#33206a" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<rect x="-86" y="-118" width="172" height="232" rx="10" fill="#1a1726" stroke="#2a1452" stroke-width="8"/>
|
||||
<rect x="-78" y="-110" width="156" height="216" rx="6" fill="none" stroke="#7af0ff" stroke-width="4"/>
|
||||
<rect x="-78" y="-110" width="156" height="26" fill="#7af0ff"/>
|
||||
<text x="-68" y="-91" font-family="Consolas, monospace" font-size="16" font-weight="700" letter-spacing="3" fill="#1a1726">SOURCE?</text>
|
||||
<path d="M-62,-60 L56,-60 M-62,-40 L36,-40 M-62,-20 L62,-20 M-62,0 L16,0" stroke="#9a6bff" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M-68,-38 L68,-26" stroke="#f08cc0" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M24,20 C24,0 62,0 62,22 C62,40 42,40 42,58 M42,74 L42,78" fill="none" stroke="#f08cc0" stroke-width="9" stroke-linecap="round"/>
|
||||
<path d="M-62,34 L-24,34 L-24,64 L-4,64 M-44,34 L-44,84" fill="none" stroke="#7af0ff" stroke-width="3" stroke-linecap="round"/>
|
||||
<circle cx="-4" cy="64" r="5" fill="#7af0ff"/>
|
||||
<!-- crack across one corner -->
|
||||
<path d="M86,-70 L60,-58 L66,-40 L44,-30" fill="none" stroke="#e4ddff" stroke-width="3" stroke-linejoin="round"/>
|
||||
<!-- fingertips over the bottom edge, thumb on the near side -->
|
||||
<path d="M-30,104 C-30,92 -14,92 -14,104 L-14,122 L-30,122 Z M-10,102 C-10,90 6,90 6,102 L6,122 L-10,122 Z M10,104 C10,92 26,92 26,104 L26,122 L10,122 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-34,116 L30,116 L32,132 L-36,132 Z" fill="#33206a" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="bust">
|
||||
<g transform="rotate(-5 340 540)"><use xlink:href="#hairBack"/></g>
|
||||
<use xlink:href="#bodyC"/>
|
||||
<g transform="rotate(-5 340 540)">
|
||||
<use xlink:href="#headFront"/>
|
||||
<use xlink:href="#exprSource" transform="translate(336,410) scale(1.12) translate(-336,-410)"/>
|
||||
<use xlink:href="#swoop"/>
|
||||
</g>
|
||||
<use xlink:href="#slate"/>
|
||||
<g fill="#7af0ff"><rect x="630" y="560" width="22" height="7"/><rect x="452" y="300" width="14" height="6" fill="#f08cc0"/><rect x="40" y="520" width="30" height="6" fill="#9a6bff"/></g>
|
||||
</g>
|
||||
<g id="bustSil">
|
||||
<g transform="rotate(-5 340 540)"><use xlink:href="#hairBack"/></g><use xlink:href="#bodyC"/>
|
||||
<g transform="rotate(-5 340 540)"><use xlink:href="#headFront"/><use xlink:href="#swoop"/></g><use xlink:href="#slate"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL BODY, drawn separately (2.3 heads), origin at feet centre ===== -->
|
||||
<g id="fbCore">
|
||||
<path d="M-90,200 C-98,120 -44,78 6,78 C64,78 108,120 98,200 C100,260 122,300 112,360 L70,350 L-60,350 L-108,366 C-120,300 -94,260 -90,200 Z" fill="#8576dc" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<!-- bow -->
|
||||
<path d="M86,152 C96,118 128,118 124,142 C122,156 104,158 86,152 Z M86,152 C112,150 126,172 116,180 C104,188 92,170 86,152 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<!-- legs, thigh-highs, shoes -->
|
||||
<path d="M-24,380 L-22,432 M18,380 L20,432" stroke="#2a1452" stroke-width="22" stroke-linecap="round"/>
|
||||
<path d="M-24,380 L-22,432 M18,380 L20,432" stroke="#33206a" stroke-width="14" stroke-linecap="round"/>
|
||||
<path d="M-40,428 L-10,426 L-8,454 L-46,456 C-50,442 -46,432 -40,428 Z M8,426 L36,428 C44,436 46,446 42,456 L6,454 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- coat with flared tails -->
|
||||
<path d="M-34,256 L36,256 L56,330 L84,398 L52,388 L30,400 L-30,400 L-56,388 L-86,398 L-56,330 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M-22,258 L24,258 L30,350 L-26,350 Z" fill="#e4ddff" stroke="#2a1452" stroke-width="3.5"/>
|
||||
<path d="M-30,348 L32,348 L38,372 Q30,364 22,374 Q14,364 6,374 Q-2,364 -10,374 Q-18,364 -26,374 Q-32,366 -36,372 Z" fill="#f4f0ff" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M-36,264 L-44,330 L-34,350 M38,264 L46,330 L36,350" fill="none" stroke="#f08cc0" stroke-width="3.5"/>
|
||||
<!-- detached sleeves, arms crossed loosely -->
|
||||
<path d="M-34,272 L-58,330" stroke="#2a1452" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M-34,272 L-58,330" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round"/>
|
||||
<path d="M36,272 L60,330" stroke="#2a1452" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M36,272 L60,330" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round"/>
|
||||
<circle cx="-60" cy="338" r="9" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
<circle cx="62" cy="338" r="9" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
<circle cx="36" cy="270" r="6" fill="none" stroke="#7af0ff" stroke-width="3"/>
|
||||
<!-- head -->
|
||||
<path d="M-62,158 C-64,212 -24,246 8,250 C44,248 74,212 74,158 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M-92,180 C-100,240 -80,300 -66,360 L-40,356 C-50,300 -56,240 -54,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M100,180 C104,240 92,300 98,350 L74,346 C70,300 70,240 66,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-92,184 C-104,110 -44,76 6,76 C66,76 110,112 100,184 L90,176 L86,198 Q76,178 66,168 L60,204 Q50,180 38,166 L30,206 Q18,180 6,166 L-4,206 Q-16,180 -28,168 L-34,198 Q-46,182 -60,176 C-70,180 -82,182 -92,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M8,92 C-24,110 -42,150 -34,186 C-30,206 -40,222 -58,224 C-72,224 -82,214 -86,200 C-72,208 -60,202 -58,188 C-56,160 -54,130 -30,108 C-18,98 -4,92 8,92 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-40,110 C-20,96 4,90 30,90 L26,100 L42,90 C14,94 -16,100 -40,110 Z" fill="#e4ddff"/>
|
||||
<g transform="rotate(-24 20 96)"><rect x="4" y="90" width="34" height="9" rx="3" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/><circle cx="4" cy="94" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/><circle cx="38" cy="94" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/></g>
|
||||
<ellipse cx="-22" cy="214" rx="13" ry="17" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="-20" cy="217" rx="5" ry="8" fill="#2a1452"/><circle cx="-15" cy="208" r="4" fill="#fff"/>
|
||||
<path d="M-40,212 C-34,196 -8,192 -2,204 L4,200 L-2,212 C-12,204 -28,204 -40,212 Z" fill="#2a1452"/>
|
||||
<ellipse cx="36" cy="212" rx="10" ry="16" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="37" cy="215" rx="4" ry="7" fill="#2a1452"/><circle cx="41" cy="206" r="3" fill="#fff"/>
|
||||
<path d="M24,208 C30,196 48,192 54,202 L58,198 L54,210 C44,202 32,202 24,208 Z" fill="#2a1452"/>
|
||||
<path d="M10,236 L22,234" fill="none" stroke="#2a1452" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="fbSlate">
|
||||
<path d="M40,274 L78,246 L86,222" fill="none" stroke="#2a1452" stroke-width="26" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M40,274 L78,246 L86,222" fill="none" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<g transform="rotate(-12 100 180)">
|
||||
<rect x="62" y="130" width="70" height="92" rx="5" fill="#1a1726" stroke="#2a1452" stroke-width="4"/>
|
||||
<rect x="66" y="134" width="62" height="84" rx="3" fill="none" stroke="#7af0ff" stroke-width="2.5"/>
|
||||
<rect x="66" y="134" width="62" height="10" fill="#7af0ff"/>
|
||||
<path d="M72,154 L118,154 M72,164 L108,164 M72,174 L120,174" stroke="#9a6bff" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M94,186 C94,178 110,178 110,188 C110,196 102,196 102,204 M102,211 L102,212" fill="none" stroke="#f08cc0" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<circle cx="84" cy="224" r="10" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
</g>
|
||||
<g id="fbHostile">
|
||||
<path d="M-40,196 L-2,206 M24,206 L56,196" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M6,232 L28,230 C24,244 10,244 6,232 Z" fill="#2a1452"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#eceaf2"/>
|
||||
|
||||
<!-- dialogue card (composited frame, shown for context) -->
|
||||
<clipPath id="cardClip"><polygon points="72,18 784,18 744,782 30,782"/></clipPath>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M400,18 L784,18 L770,300 Z" fill="#9a6bff" opacity="0.10"/>
|
||||
<use xlink:href="#bust" transform="translate(112,74) scale(0.9)"/>
|
||||
</g>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="none" stroke="#9a6bff" stroke-width="4"/>
|
||||
<g font-family="Consolas, 'Courier New', monospace" fill="#f2f0ff">
|
||||
<text x="92" y="60" font-size="30" letter-spacing="9" font-weight="700" fill="#9a6bff">NIBU</text>
|
||||
<text x="92" y="86" font-size="14" letter-spacing="5">A / SOURCE SLATE</text>
|
||||
</g>
|
||||
|
||||
<g font-family="'Segoe UI', Arial, sans-serif" fill="#2a1452">
|
||||
<text x="808" y="40" font-size="13" letter-spacing="2" font-weight="700">FULL BODY / 2.3 HEADS</text>
|
||||
<g transform="translate(1000,470) scale(0.98) translate(0,-460)">
|
||||
<use xlink:href="#fbCore"/><use xlink:href="#fbSlate"/>
|
||||
</g>
|
||||
<line x1="820" y1="474" x2="1170" y2="474" stroke="#c9c3ea" stroke-width="2"/>
|
||||
|
||||
<text x="808" y="508" font-size="13" letter-spacing="2" font-weight="700">SILHOUETTE</text>
|
||||
<rect x="800" y="518" width="160" height="160" fill="#fff" stroke="#c9c3ea" stroke-width="2"/>
|
||||
<use xlink:href="#bustSil" transform="translate(808,526) scale(0.19)" filter="url(#black)"/>
|
||||
|
||||
<text x="984" y="508" font-size="13" letter-spacing="2" font-weight="700">PALETTE</text>
|
||||
<g font-size="11" font-family="Consolas, monospace">
|
||||
<rect x="984" y="518" width="56" height="40" fill="#9a6bff"/><text x="1046" y="542">#9a6bff key</text>
|
||||
<rect x="984" y="562" width="56" height="20" fill="#b9aef5"/><text x="1046" y="576">#b9aef5 hair</text>
|
||||
<rect x="984" y="586" width="56" height="20" fill="#4a2d8f"/><text x="1046" y="600">#4a2d8f coat</text>
|
||||
<rect x="984" y="610" width="56" height="20" fill="#2a1452"/><text x="1046" y="624">#2a1452 line</text>
|
||||
<rect x="984" y="634" width="56" height="20" fill="#f08cc0"/><text x="1046" y="648">#f08cc0 ribbon</text>
|
||||
<rect x="984" y="658" width="56" height="20" fill="#7af0ff"/><text x="1046" y="672">#7af0ff glitch</text>
|
||||
</g>
|
||||
|
||||
<text x="808" y="718" font-size="13" letter-spacing="2" font-weight="700">HOOK</text>
|
||||
<text x="808" y="740" font-size="15">The lore steward never lowers her slate: a</text>
|
||||
<text x="808" y="760" font-size="15">cracked holo-tablet raised beside her face,</text>
|
||||
<text x="808" y="780" font-size="15">one word on it for every claim. SOURCE?</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 27 KiB |
BIN
cast-designs/proposals/nibu/nibu-B.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
278
cast-designs/proposals/nibu/nibu-B.svg
Normal file
|
|
@ -0,0 +1,278 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Nibu, direction B: Glitch Twin</title>
|
||||
<defs>
|
||||
<!-- canon Nibu: lavender hair, swoop over one eye, pink bow + circuit clip, violet coat, glitch.
|
||||
palette: key #9a6bff, line #2a1452, hair #b9aef5 (shadow #8576dc, light #e4ddff),
|
||||
coat #4a2d8f (shadow #33206a), ribbon pink #f08cc0 (shadow #c4609a), cyan #7af0ff, skin #f0d3dd (shadow #d6a8bd) -->
|
||||
<filter id="holo" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feColorMatrix in="SourceGraphic" type="matrix" values="0.35 0.45 0.15 0 0.05 0.25 0.50 0.25 0 0 0.10 0.30 0.40 0 0.30 0 0 0 0.85 0" result="tint"/>
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3" result="fat"/>
|
||||
<feComposite in="fat" in2="SourceAlpha" operator="out" result="ring"/>
|
||||
<feFlood flood-color="#7af0ff"/>
|
||||
<feComposite in2="ring" operator="in" result="edge"/>
|
||||
<feMerge><feMergeNode in="tint"/><feMergeNode in="edge"/></feMerge>
|
||||
</filter>
|
||||
<filter id="black" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<pattern id="scan" width="10" height="7" patternUnits="userSpaceOnUse">
|
||||
<rect width="10" height="5" fill="#fff"/>
|
||||
</pattern>
|
||||
<mask id="scanMask" maskUnits="userSpaceOnUse" x="-600" y="-600" width="2400" height="2400">
|
||||
<rect x="-600" y="-600" width="2400" height="2400" fill="url(#scan)"/>
|
||||
</mask>
|
||||
<clipPath id="eyeBand"><rect x="206" y="366" width="128" height="56"/></clipPath>
|
||||
<clipPath id="mouthBand"><rect x="150" y="428" width="140" height="16"/></clipPath>
|
||||
|
||||
<!-- ===== BUST, local space 640 x 770, faces screen right ===== -->
|
||||
<path id="faceP" d="M192,285 C186,370 214,446 300,498 C326,514 356,516 378,502 C432,468 468,410 472,298 Z"/>
|
||||
<clipPath id="faceClip"><use xlink:href="#faceP"/></clipPath>
|
||||
<!-- crown and wispy bangs -->
|
||||
<path id="crownP" d="M126,320 C110,160 212,56 336,56 C470,56 560,160 544,320 C534,314 520,304 510,292
|
||||
L504,338 Q486,300 462,280 Q458,316 452,352 Q430,300 400,272 Q396,322 390,362 Q366,300 330,272
|
||||
Q326,322 318,358 Q298,302 266,280 Q262,312 256,342 Q236,306 206,290 C178,300 152,312 126,320 Z"/>
|
||||
|
||||
<g id="hairBack">
|
||||
<path d="M332,52 C474,50 566,154 558,300 C556,372 600,430 586,512 C574,584 624,640 604,706 C596,734 606,754 614,850 L452,850 C470,700 462,620 446,566 L244,566 C226,640 214,710 210,850 L56,850 C76,720 52,670 72,612 C92,552 58,494 92,430 C112,392 120,350 122,300 C124,150 196,54 332,52 Z" fill="#8576dc" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M96,470 C80,530 104,580 84,640 M586,540 C574,600 610,650 592,710" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<!-- ribbon bow on her far side -->
|
||||
<path d="M548,272 L586,370 L566,360 L558,384 L530,284 Z M556,270 L620,346 L598,344 L600,368 L540,282 Z" fill="#c4609a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M540,262 C566,186 640,184 628,238 C622,268 578,276 540,262 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M540,262 C600,250 630,300 610,322 C590,340 556,300 540,262 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M566,232 C584,214 606,214 612,232 M566,286 C588,296 600,306 604,316" fill="none" stroke="#c4609a" stroke-width="5" stroke-linecap="round"/>
|
||||
<ellipse cx="542" cy="264" rx="17" ry="21" fill="#f08cc0" stroke="#2a1452" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="bodyC">
|
||||
<path d="M300,466 L298,580 L394,580 L392,466 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="5"/>
|
||||
<path d="M298,488 C330,526 370,520 394,486 L394,556 L298,556 Z" fill="#d6a8bd"/>
|
||||
<!-- coat -->
|
||||
<path d="M96,850 C104,660 176,600 280,582 L412,578 C512,598 572,662 584,850 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M430,588 C510,612 562,668 574,850 L494,850 C486,700 464,640 420,604 Z" fill="#33206a"/>
|
||||
<path d="M546,640 C566,680 576,720 580,850" fill="none" stroke="#9a6bff" stroke-width="6" stroke-linecap="round"/>
|
||||
<!-- blouse panel -->
|
||||
<path d="M282,582 L410,578 L384,850 L308,850 Z" fill="#e4ddff" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M318,650 L376,648 L370,730 L322,730 Z" fill="#7af0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M330,668 L362,668 M330,684 L352,684 M330,700 L364,700 M330,714 L346,714" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- circuit-glyph trim on the coat front edges -->
|
||||
<path d="M282,584 L270,640 L284,660 L272,720 L276,850 M410,580 L420,636 L406,656 L414,720 L410,850" fill="none" stroke="#f08cc0" stroke-width="5" stroke-linejoin="round"/>
|
||||
<circle cx="270" cy="640" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/>
|
||||
<circle cx="406" cy="656" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/>
|
||||
<!-- standing collar and throat frill -->
|
||||
<path d="M262,520 L240,612 L298,590 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M426,512 L462,604 L396,588 Z" fill="#33206a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M292,548 Q304,566 318,552 Q330,572 346,556 Q360,574 374,554 Q388,568 400,546 L404,590 Q350,606 288,592 Z" fill="#f4f0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<circle cx="346" cy="604" r="11" fill="#9a6bff" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="342" cy="600" r="3.5" fill="#fff"/>
|
||||
<!-- shoulder port ring -->
|
||||
<circle cx="458" cy="616" r="18" fill="#1a1726" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="458" cy="616" r="11" fill="none" stroke="#7af0ff" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="headFront">
|
||||
<use xlink:href="#faceP" fill="#f0d3dd" stroke="#2a1452" stroke-width="6"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<use xlink:href="#crownP" transform="translate(6,16)" fill="#d6a8bd"/>
|
||||
<path d="M440,330 C452,400 430,460 380,500 L480,520 L500,300 Z" fill="#d6a8bd"/>
|
||||
</g>
|
||||
<path d="M452,360 C448,420 424,466 384,494" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- front locks: near one falls over the shoulder, far one frames the jaw -->
|
||||
<path d="M540,300 C546,380 520,440 500,500 C486,548 512,600 498,660 C492,700 500,740 496,850 L452,850 C462,730 446,690 458,640 C470,580 444,540 460,480 C474,420 470,360 462,312 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M128,300 C112,380 146,440 166,500 C186,560 142,620 166,690 C176,720 166,750 158,850 L244,850 C252,720 232,680 244,636 C256,590 226,540 222,480 C216,420 214,360 220,314 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M220,330 C214,400 222,470 238,520 C246,560 230,600 236,640 C222,600 216,560 210,520 C196,460 196,390 206,330 Z" fill="#8576dc"/>
|
||||
<path d="M150,520 C168,560 160,600 154,640" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use xlink:href="#crownP" fill="#b9aef5" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- one highlight band -->
|
||||
<path d="M262,128 C296,110 336,104 380,108 L370,128 L398,110 L404,128 L430,114 L436,128 C410,118 340,112 262,128 Z" fill="#e4ddff"/>
|
||||
<path d="M170,236 C176,200 194,172 218,152 L214,176 L232,150 C206,176 186,206 170,236 Z" fill="#e4ddff"/>
|
||||
<path d="M512,240 C516,200 506,170 488,146" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- circuit hair clip -->
|
||||
<g transform="rotate(-24 372 134)">
|
||||
<rect x="336" y="126" width="72" height="16" rx="5" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<rect x="356" y="116" width="32" height="36" rx="4" fill="#f4f0ff" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M364,124 L364,134 L372,134 L372,144 M380,122 L380,140" fill="none" stroke="#9a6bff" stroke-width="3" stroke-linecap="round"/>
|
||||
<circle cx="334" cy="134" r="11" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="410" cy="134" r="11" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="330" cy="130" r="3.5" fill="#fff"/><circle cx="406" cy="130" r="3.5" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g id="swoop">
|
||||
<path d="M336,112 C268,146 230,224 242,300 C252,356 236,410 192,428 C156,440 120,420 104,382 C136,398 164,390 176,358 C188,322 182,262 202,204 C222,156 276,124 336,112 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M240,300 C252,352 238,400 192,426 C214,400 222,366 214,322 C206,272 214,212 246,160 C228,210 226,262 240,300 Z" fill="#8576dc"/>
|
||||
<path d="M206,196 C216,160 240,132 274,116" fill="none" stroke="#e4ddff" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- eyes: same construction for every expression -->
|
||||
<clipPath id="wN"><path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z"/></clipPath>
|
||||
<clipPath id="wF"><path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z"/></clipPath>
|
||||
<clipPath id="iN"><ellipse cx="278" cy="400" rx="34" ry="44"/></clipPath>
|
||||
<clipPath id="iF"><ellipse cx="409" cy="397" rx="25" ry="41"/></clipPath>
|
||||
|
||||
<g id="exprCalm">
|
||||
<path d="M240,338 Q272,328 306,334" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M380,332 Q406,326 432,330" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wN)"><g clip-path="url(#iN)">
|
||||
<rect x="200" y="340" width="140" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="278" cy="372" rx="42" ry="28" fill="#4b2a99"/>
|
||||
<ellipse cx="282" cy="438" rx="28" ry="14" fill="#e0b6ff"/>
|
||||
<ellipse cx="280" cy="404" rx="13" ry="19" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="278" cy="400" rx="34" ry="44" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="292" cy="386" rx="10" ry="12" fill="#fff"/>
|
||||
<circle cx="266" cy="420" r="5" fill="#fff"/>
|
||||
</g>
|
||||
<!-- half-lidded: heavy upper lid -->
|
||||
<path d="M218,394 C226,354 300,346 330,370 L340,366 L330,384 C306,370 252,368 228,398 Z" fill="#2a1452"/>
|
||||
<path d="M250,438 Q276,446 302,434" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wF)"><g clip-path="url(#iF)">
|
||||
<rect x="360" y="340" width="100" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="370" rx="32" ry="27" fill="#4b2a99"/>
|
||||
<ellipse cx="411" cy="434" rx="21" ry="12" fill="#e0b6ff"/>
|
||||
<ellipse cx="411" cy="401" rx="10" ry="18" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="409" cy="397" rx="25" ry="41" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="420" cy="384" rx="8" ry="10" fill="#fff"/>
|
||||
<circle cx="400" cy="416" r="4" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M366,390 C374,352 430,344 448,364 L458,360 L448,380 C430,366 386,366 372,394 Z" fill="#2a1452"/>
|
||||
<path d="M386,432 Q408,440 428,430" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M356,442 Q364,450 356,455" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- level, unbothered mouth -->
|
||||
<path d="M336,474 Q352,478 368,472" fill="none" stroke="#2a1452" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M244,456 l-9,11 M258,456 l-9,11 M424,450 l-7,9" stroke="#e08aa8" stroke-width="3" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="exprHostile">
|
||||
<path d="M222,318 L314,350" stroke="#2a1452" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M372,350 L446,318" stroke="#2a1452" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M230,388 C250,374 300,372 318,386 C318,408 304,426 274,428 C246,426 230,408 230,388 Z" fill="#fff"/>
|
||||
<ellipse cx="282" cy="402" rx="20" ry="24" fill="#9a6bff"/>
|
||||
<ellipse cx="283" cy="404" rx="5" ry="12" fill="#2a1452"/>
|
||||
<path d="M220,388 L328,374 L332,394 L226,398 Z" fill="#2a1452"/>
|
||||
<path d="M376,386 C392,374 428,372 438,384 C438,406 428,424 406,426 C386,424 376,408 376,386 Z" fill="#fff"/>
|
||||
<ellipse cx="408" cy="402" rx="16" ry="22" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="404" rx="4" ry="11" fill="#2a1452"/>
|
||||
<path d="M368,374 L448,384 L446,398 L372,394 Z" fill="#2a1452"/>
|
||||
<path d="M312,458 L394,452 C386,496 334,502 312,458 Z" fill="#2a1452"/>
|
||||
<path d="M316,460 L390,455 L388,466 L378,478 L372,467 L328,470 L322,480 Z" fill="#fff"/>
|
||||
</g>
|
||||
|
||||
<g id="ghostCore" transform="translate(-200,-104) rotate(-8 336 400)">
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyC"/><use xlink:href="#headFront"/><use xlink:href="#exprHostile" transform="translate(336,410) scale(1.12) translate(-336,-410)"/><use xlink:href="#swoop"/>
|
||||
</g>
|
||||
|
||||
<g id="bust">
|
||||
<g filter="url(#holo)" mask="url(#scanMask)"><use xlink:href="#ghostCore"/></g>
|
||||
<use xlink:href="#hairBack"/>
|
||||
<use xlink:href="#bodyC"/>
|
||||
<use xlink:href="#headFront"/>
|
||||
<use xlink:href="#exprCalm" transform="translate(336,410) scale(1.12) translate(-336,-410)"/>
|
||||
<use xlink:href="#swoop"/>
|
||||
<!-- the twin bleeds through: one scanline slice of her near eye belongs to the other timeline -->
|
||||
<g id="slice" clip-path="url(#eyeBand)"><g transform="translate(-18,0)">
|
||||
<use xlink:href="#headFront"/>
|
||||
<use xlink:href="#exprHostile" transform="translate(336,410) scale(1.12) translate(-336,-410)"/>
|
||||
<use xlink:href="#swoop"/>
|
||||
</g></g>
|
||||
<g clip-path="url(#eyeBand)"><rect x="200" y="360" width="140" height="70" fill="#9a6bff" opacity="0.30" mask="url(#scanMask)"/></g>
|
||||
<rect x="206" y="366" width="128" height="56" fill="none" stroke="#7af0ff" stroke-width="3"/>
|
||||
<path d="M334,380 L352,380 M190,404 L206,404" stroke="#7af0ff" stroke-width="3"/>
|
||||
<g filter="url(#holo)" mask="url(#scanMask)" clip-path="url(#mouthBand)"><use xlink:href="#headFront" transform="translate(30,0)"/></g>
|
||||
<g fill="#7af0ff"><rect x="-10" y="300" width="26" height="8"/><rect x="40" y="520" width="40" height="6"/><rect x="590" y="430" width="22" height="7"/><rect x="606" y="190" width="14" height="6" fill="#f08cc0"/><rect x="-40" y="610" width="18" height="6" fill="#9a6bff"/></g>
|
||||
</g>
|
||||
<g id="bustSil">
|
||||
<use xlink:href="#ghostCore"/>
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyC"/><use xlink:href="#headFront"/><use xlink:href="#swoop"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL BODY, drawn separately (2.3 heads), origin at feet centre ===== -->
|
||||
<g id="fbCore">
|
||||
<path d="M-90,200 C-98,120 -44,78 6,78 C64,78 108,120 98,200 C100,260 122,300 112,360 L70,350 L-60,350 L-108,366 C-120,300 -94,260 -90,200 Z" fill="#8576dc" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<!-- bow -->
|
||||
<path d="M86,152 C96,118 128,118 124,142 C122,156 104,158 86,152 Z M86,152 C112,150 126,172 116,180 C104,188 92,170 86,152 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<!-- legs, thigh-highs, shoes -->
|
||||
<path d="M-24,380 L-22,432 M18,380 L20,432" stroke="#2a1452" stroke-width="22" stroke-linecap="round"/>
|
||||
<path d="M-24,380 L-22,432 M18,380 L20,432" stroke="#33206a" stroke-width="14" stroke-linecap="round"/>
|
||||
<path d="M-40,428 L-10,426 L-8,454 L-46,456 C-50,442 -46,432 -40,428 Z M8,426 L36,428 C44,436 46,446 42,456 L6,454 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- coat with flared tails -->
|
||||
<path d="M-34,256 L36,256 L56,330 L84,398 L52,388 L30,400 L-30,400 L-56,388 L-86,398 L-56,330 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M-22,258 L24,258 L30,350 L-26,350 Z" fill="#e4ddff" stroke="#2a1452" stroke-width="3.5"/>
|
||||
<path d="M-30,348 L32,348 L38,372 Q30,364 22,374 Q14,364 6,374 Q-2,364 -10,374 Q-18,364 -26,374 Q-32,366 -36,372 Z" fill="#f4f0ff" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M-36,264 L-44,330 L-34,350 M38,264 L46,330 L36,350" fill="none" stroke="#f08cc0" stroke-width="3.5"/>
|
||||
<!-- detached sleeves, arms crossed loosely -->
|
||||
<path d="M-34,272 L-58,330" stroke="#2a1452" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M-34,272 L-58,330" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round"/>
|
||||
<path d="M36,272 L60,330" stroke="#2a1452" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M36,272 L60,330" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round"/>
|
||||
<circle cx="-60" cy="338" r="9" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
<circle cx="62" cy="338" r="9" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
<circle cx="36" cy="270" r="6" fill="none" stroke="#7af0ff" stroke-width="3"/>
|
||||
<!-- head -->
|
||||
<path d="M-62,158 C-64,212 -24,246 8,250 C44,248 74,212 74,158 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M-92,180 C-100,240 -80,300 -66,360 L-40,356 C-50,300 -56,240 -54,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M100,180 C104,240 92,300 98,350 L74,346 C70,300 70,240 66,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-92,184 C-104,110 -44,76 6,76 C66,76 110,112 100,184 L90,176 L86,198 Q76,178 66,168 L60,204 Q50,180 38,166 L30,206 Q18,180 6,166 L-4,206 Q-16,180 -28,168 L-34,198 Q-46,182 -60,176 C-70,180 -82,182 -92,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M8,92 C-24,110 -42,150 -34,186 C-30,206 -40,222 -58,224 C-72,224 -82,214 -86,200 C-72,208 -60,202 -58,188 C-56,160 -54,130 -30,108 C-18,98 -4,92 8,92 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-40,110 C-20,96 4,90 30,90 L26,100 L42,90 C14,94 -16,100 -40,110 Z" fill="#e4ddff"/>
|
||||
<g transform="rotate(-24 20 96)"><rect x="4" y="90" width="34" height="9" rx="3" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/><circle cx="4" cy="94" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/><circle cx="38" cy="94" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/></g>
|
||||
<ellipse cx="-22" cy="214" rx="13" ry="17" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="-20" cy="217" rx="5" ry="8" fill="#2a1452"/><circle cx="-15" cy="208" r="4" fill="#fff"/>
|
||||
<path d="M-40,212 C-34,196 -8,192 -2,204 L4,200 L-2,212 C-12,204 -28,204 -40,212 Z" fill="#2a1452"/>
|
||||
<ellipse cx="36" cy="212" rx="10" ry="16" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="37" cy="215" rx="4" ry="7" fill="#2a1452"/><circle cx="41" cy="206" r="3" fill="#fff"/>
|
||||
<path d="M24,208 C30,196 48,192 54,202 L58,198 L54,210 C44,202 32,202 24,208 Z" fill="#2a1452"/>
|
||||
<path d="M10,236 L22,234" fill="none" stroke="#2a1452" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="fbHostile">
|
||||
<path d="M-40,196 L-2,206 M24,206 L56,196" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M6,232 L28,230 C24,244 10,244 6,232 Z" fill="#2a1452"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#eceaf2"/>
|
||||
|
||||
<!-- dialogue card (composited frame, shown for context) -->
|
||||
<clipPath id="cardClip"><polygon points="72,18 784,18 744,782 30,782"/></clipPath>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M400,18 L784,18 L770,300 Z" fill="#9a6bff" opacity="0.10"/>
|
||||
<use xlink:href="#bust" transform="translate(178,24) scale(0.93)"/>
|
||||
</g>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="none" stroke="#9a6bff" stroke-width="4"/>
|
||||
<polygon points="84,28 330,28 324,98 78,98" fill="#07111a" stroke="#9a6bff" stroke-width="2"/>
|
||||
<g font-family="Consolas, 'Courier New', monospace" fill="#f2f0ff">
|
||||
<text x="92" y="60" font-size="30" letter-spacing="9" font-weight="700" fill="#9a6bff">NIBU</text>
|
||||
<text x="92" y="86" font-size="14" letter-spacing="5">B / GLITCH TWIN</text>
|
||||
</g>
|
||||
|
||||
<g font-family="'Segoe UI', Arial, sans-serif" fill="#2a1452">
|
||||
<text x="808" y="40" font-size="13" letter-spacing="2" font-weight="700">FULL BODY / 2.3 HEADS</text>
|
||||
<g transform="translate(1000,470) scale(0.98) translate(0,-460)">
|
||||
<g filter="url(#holo)" mask="url(#scanMask)" transform="translate(-70,-10)"><use xlink:href="#fbCore"/><use xlink:href="#fbHostile"/></g>
|
||||
<use xlink:href="#fbCore"/>
|
||||
</g>
|
||||
<line x1="820" y1="474" x2="1170" y2="474" stroke="#c9c3ea" stroke-width="2"/>
|
||||
|
||||
<text x="808" y="508" font-size="13" letter-spacing="2" font-weight="700">SILHOUETTE</text>
|
||||
<rect x="800" y="518" width="160" height="160" fill="#fff" stroke="#c9c3ea" stroke-width="2"/>
|
||||
<use xlink:href="#bustSil" transform="translate(846,540) scale(0.175)" filter="url(#black)"/>
|
||||
|
||||
<text x="984" y="508" font-size="13" letter-spacing="2" font-weight="700">PALETTE</text>
|
||||
<g font-size="11" font-family="Consolas, monospace">
|
||||
<rect x="984" y="518" width="56" height="40" fill="#9a6bff"/><text x="1046" y="542">#9a6bff key</text>
|
||||
<rect x="984" y="562" width="56" height="20" fill="#b9aef5"/><text x="1046" y="576">#b9aef5 hair</text>
|
||||
<rect x="984" y="586" width="56" height="20" fill="#4a2d8f"/><text x="1046" y="600">#4a2d8f coat</text>
|
||||
<rect x="984" y="610" width="56" height="20" fill="#2a1452"/><text x="1046" y="624">#2a1452 line</text>
|
||||
<rect x="984" y="634" width="56" height="20" fill="#f08cc0"/><text x="1046" y="648">#f08cc0 ribbon</text>
|
||||
<rect x="984" y="658" width="56" height="20" fill="#7af0ff"/><text x="1046" y="672">#7af0ff glitch</text>
|
||||
</g>
|
||||
|
||||
<text x="808" y="718" font-size="13" letter-spacing="2" font-weight="700">HOOK</text>
|
||||
<text x="808" y="740" font-size="15">Her glitch has a face: a scanline twin from a</text>
|
||||
<text x="808" y="760" font-size="15">failed timeline sits behind her, already angry</text>
|
||||
<text x="808" y="780" font-size="15">about something that has not happened yet.</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
BIN
cast-designs/proposals/nibu/nibu-C.png
Normal file
|
After Width: | Height: | Size: 214 KiB |
325
cast-designs/proposals/nibu/nibu-C.svg
Normal file
|
|
@ -0,0 +1,325 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Nibu, direction C: Console Ring</title>
|
||||
<defs>
|
||||
<!-- canon Nibu: lavender hair, swoop over one eye, pink bow + circuit clip, violet coat, glitch.
|
||||
palette: key #9a6bff, line #2a1452, hair #b9aef5 (shadow #8576dc, light #e4ddff),
|
||||
coat #4a2d8f (shadow #33206a), ribbon pink #f08cc0 (shadow #c4609a), cyan #7af0ff, skin #f0d3dd (shadow #d6a8bd) -->
|
||||
<filter id="holo" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feColorMatrix in="SourceGraphic" type="matrix" values="0.35 0.45 0.15 0 0.05 0.25 0.50 0.25 0 0 0.10 0.30 0.40 0 0.30 0 0 0 0.85 0" result="tint"/>
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3" result="fat"/>
|
||||
<feComposite in="fat" in2="SourceAlpha" operator="out" result="ring"/>
|
||||
<feFlood flood-color="#7af0ff"/>
|
||||
<feComposite in2="ring" operator="in" result="edge"/>
|
||||
<feMerge><feMergeNode in="tint"/><feMergeNode in="edge"/></feMerge>
|
||||
</filter>
|
||||
<filter id="black" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<pattern id="scan" width="10" height="7" patternUnits="userSpaceOnUse">
|
||||
<rect width="10" height="5" fill="#fff"/>
|
||||
</pattern>
|
||||
<mask id="scanMask" maskUnits="userSpaceOnUse" x="-600" y="-600" width="2400" height="2400">
|
||||
<rect x="-600" y="-600" width="2400" height="2400" fill="url(#scan)"/>
|
||||
</mask>
|
||||
<clipPath id="eyeBand"><rect x="206" y="366" width="128" height="56"/></clipPath>
|
||||
<clipPath id="mouthBand"><rect x="150" y="428" width="140" height="16"/></clipPath>
|
||||
|
||||
<!-- ===== BUST, local space 640 x 770, faces screen right ===== -->
|
||||
<path id="faceP" d="M192,285 C186,370 214,446 300,498 C326,514 356,516 378,502 C432,468 468,410 472,298 Z"/>
|
||||
<clipPath id="faceClip"><use xlink:href="#faceP"/></clipPath>
|
||||
<!-- crown and wispy bangs -->
|
||||
<path id="crownP" d="M126,320 C110,160 212,56 336,56 C470,56 560,160 544,320 C534,314 520,304 510,292
|
||||
L504,338 Q486,300 462,280 Q458,316 452,352 Q430,300 400,272 Q396,322 390,362 Q366,300 330,272
|
||||
Q326,322 318,358 Q298,302 266,280 Q262,312 256,342 Q236,306 206,290 C178,300 152,312 126,320 Z"/>
|
||||
|
||||
<g id="hairBack">
|
||||
<path d="M332,52 C474,50 566,154 558,300 C556,372 600,430 586,512 C574,584 624,640 604,706 C596,734 606,754 614,850 L452,850 C470,700 462,620 446,566 L244,566 C226,640 214,710 210,850 L56,850 C76,720 52,670 72,612 C92,552 58,494 92,430 C112,392 120,350 122,300 C124,150 196,54 332,52 Z" fill="#8576dc" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M96,470 C80,530 104,580 84,640 M586,540 C574,600 610,650 592,710" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<!-- ribbon bow on her far side -->
|
||||
<path d="M548,272 L586,370 L566,360 L558,384 L530,284 Z M556,270 L620,346 L598,344 L600,368 L540,282 Z" fill="#c4609a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M540,262 C566,186 640,184 628,238 C622,268 578,276 540,262 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M540,262 C600,250 630,300 610,322 C590,340 556,300 540,262 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M566,232 C584,214 606,214 612,232 M566,286 C588,296 600,306 604,316" fill="none" stroke="#c4609a" stroke-width="5" stroke-linecap="round"/>
|
||||
<ellipse cx="542" cy="264" rx="17" ry="21" fill="#f08cc0" stroke="#2a1452" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="bodyC">
|
||||
<path d="M300,466 L298,580 L394,580 L392,466 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="5"/>
|
||||
<path d="M298,488 C330,526 370,520 394,486 L394,556 L298,556 Z" fill="#d6a8bd"/>
|
||||
<!-- coat -->
|
||||
<path d="M96,850 C104,660 176,600 280,582 L412,578 C512,598 572,662 584,850 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M430,588 C510,612 562,668 574,850 L494,850 C486,700 464,640 420,604 Z" fill="#33206a"/>
|
||||
<path d="M546,640 C566,680 576,720 580,850" fill="none" stroke="#9a6bff" stroke-width="6" stroke-linecap="round"/>
|
||||
<!-- blouse panel -->
|
||||
<path d="M282,582 L410,578 L384,850 L308,850 Z" fill="#e4ddff" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M318,650 L376,648 L370,730 L322,730 Z" fill="#7af0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M330,668 L362,668 M330,684 L352,684 M330,700 L364,700 M330,714 L346,714" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- circuit-glyph trim on the coat front edges -->
|
||||
<path d="M282,584 L270,640 L284,660 L272,720 L276,850 M410,580 L420,636 L406,656 L414,720 L410,850" fill="none" stroke="#f08cc0" stroke-width="5" stroke-linejoin="round"/>
|
||||
<circle cx="270" cy="640" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/>
|
||||
<circle cx="406" cy="656" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/>
|
||||
<!-- standing collar and throat frill -->
|
||||
<path d="M262,520 L240,612 L298,590 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M426,512 L462,604 L396,588 Z" fill="#33206a" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M292,548 Q304,566 318,552 Q330,572 346,556 Q360,574 374,554 Q388,568 400,546 L404,590 Q350,606 288,592 Z" fill="#f4f0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<circle cx="346" cy="604" r="11" fill="#9a6bff" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="342" cy="600" r="3.5" fill="#fff"/>
|
||||
<!-- shoulder port ring -->
|
||||
<circle cx="458" cy="616" r="18" fill="#1a1726" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="458" cy="616" r="11" fill="none" stroke="#7af0ff" stroke-width="5"/>
|
||||
</g>
|
||||
|
||||
<g id="headFront">
|
||||
<use xlink:href="#faceP" fill="#f0d3dd" stroke="#2a1452" stroke-width="6"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<use xlink:href="#crownP" transform="translate(6,16)" fill="#d6a8bd"/>
|
||||
<path d="M440,330 C452,400 430,460 380,500 L480,520 L500,300 Z" fill="#d6a8bd"/>
|
||||
</g>
|
||||
<path d="M452,360 C448,420 424,466 384,494" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- front locks: near one falls over the shoulder, far one frames the jaw -->
|
||||
<path d="M540,300 C546,380 520,440 500,500 C486,548 512,600 498,660 C492,700 500,740 496,850 L452,850 C462,730 446,690 458,640 C470,580 444,540 460,480 C474,420 470,360 462,312 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M128,300 C112,380 146,440 166,500 C186,560 142,620 166,690 C176,720 166,750 158,850 L244,850 C252,720 232,680 244,636 C256,590 226,540 222,480 C216,420 214,360 220,314 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M220,330 C214,400 222,470 238,520 C246,560 230,600 236,640 C222,600 216,560 210,520 C196,460 196,390 206,330 Z" fill="#8576dc"/>
|
||||
<path d="M150,520 C168,560 160,600 154,640" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<use xlink:href="#crownP" fill="#b9aef5" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- one highlight band -->
|
||||
<path d="M262,128 C296,110 336,104 380,108 L370,128 L398,110 L404,128 L430,114 L436,128 C410,118 340,112 262,128 Z" fill="#e4ddff"/>
|
||||
<path d="M170,236 C176,200 194,172 218,152 L214,176 L232,150 C206,176 186,206 170,236 Z" fill="#e4ddff"/>
|
||||
<path d="M512,240 C516,200 506,170 488,146" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- circuit hair clip -->
|
||||
<g transform="rotate(-24 372 134)">
|
||||
<rect x="336" y="126" width="72" height="16" rx="5" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<rect x="356" y="116" width="32" height="36" rx="4" fill="#f4f0ff" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M364,124 L364,134 L372,134 L372,144 M380,122 L380,140" fill="none" stroke="#9a6bff" stroke-width="3" stroke-linecap="round"/>
|
||||
<circle cx="334" cy="134" r="11" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="410" cy="134" r="11" fill="#f08cc0" stroke="#2a1452" stroke-width="4"/>
|
||||
<circle cx="330" cy="130" r="3.5" fill="#fff"/><circle cx="406" cy="130" r="3.5" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g id="swoop">
|
||||
<path d="M336,112 C268,146 230,224 242,300 C252,356 236,410 192,428 C156,440 120,420 104,382 C136,398 164,390 176,358 C188,322 182,262 202,204 C222,156 276,124 336,112 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M240,300 C252,352 238,400 192,426 C214,400 222,366 214,322 C206,272 214,212 246,160 C228,210 226,262 240,300 Z" fill="#8576dc"/>
|
||||
<path d="M206,196 C216,160 240,132 274,116" fill="none" stroke="#e4ddff" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<!-- eyes: same construction for every expression -->
|
||||
<clipPath id="wN"><path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z"/></clipPath>
|
||||
<clipPath id="wF"><path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z"/></clipPath>
|
||||
<clipPath id="iN"><ellipse cx="278" cy="400" rx="34" ry="44"/></clipPath>
|
||||
<clipPath id="iF"><ellipse cx="409" cy="397" rx="25" ry="41"/></clipPath>
|
||||
|
||||
<g id="exprCalm">
|
||||
<path d="M240,338 Q272,328 306,334" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M380,332 Q406,326 432,330" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wN)"><g clip-path="url(#iN)">
|
||||
<rect x="200" y="340" width="140" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="278" cy="372" rx="42" ry="28" fill="#4b2a99"/>
|
||||
<ellipse cx="282" cy="438" rx="28" ry="14" fill="#e0b6ff"/>
|
||||
<ellipse cx="280" cy="404" rx="13" ry="19" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="278" cy="400" rx="34" ry="44" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="292" cy="386" rx="10" ry="12" fill="#fff"/>
|
||||
<circle cx="266" cy="420" r="5" fill="#fff"/>
|
||||
</g>
|
||||
<!-- half-lidded: heavy upper lid -->
|
||||
<path d="M218,394 C226,354 300,346 330,370 L340,366 L330,384 C306,370 252,368 228,398 Z" fill="#2a1452"/>
|
||||
<path d="M250,438 Q276,446 302,434" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wF)"><g clip-path="url(#iF)">
|
||||
<rect x="360" y="340" width="100" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="370" rx="32" ry="27" fill="#4b2a99"/>
|
||||
<ellipse cx="411" cy="434" rx="21" ry="12" fill="#e0b6ff"/>
|
||||
<ellipse cx="411" cy="401" rx="10" ry="18" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="409" cy="397" rx="25" ry="41" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="420" cy="384" rx="8" ry="10" fill="#fff"/>
|
||||
<circle cx="400" cy="416" r="4" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M366,390 C374,352 430,344 448,364 L458,360 L448,380 C430,366 386,366 372,394 Z" fill="#2a1452"/>
|
||||
<path d="M386,432 Q408,440 428,430" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M356,442 Q364,450 356,455" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- level, unbothered mouth -->
|
||||
<path d="M336,474 Q352,478 368,472" fill="none" stroke="#2a1452" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M244,456 l-9,11 M258,456 l-9,11 M424,450 l-7,9" stroke="#e08aa8" stroke-width="3" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="exprSmug">
|
||||
<path d="M238,334 Q272,318 308,330" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M380,332 Q406,326 432,330" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M226,374 C236,350 300,346 320,370 C324,402 312,434 274,438 C240,434 222,406 226,374 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wN)"><g clip-path="url(#iN)">
|
||||
<rect x="200" y="340" width="140" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="278" cy="372" rx="42" ry="28" fill="#4b2a99"/>
|
||||
<ellipse cx="282" cy="438" rx="28" ry="14" fill="#7af0ff"/>
|
||||
<ellipse cx="280" cy="404" rx="13" ry="19" fill="#2a1452"/>
|
||||
<path d="M356,474 L362,486 L368,472" fill="#fff" stroke="#2a1452" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<ellipse cx="278" cy="400" rx="34" ry="44" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="292" cy="386" rx="10" ry="12" fill="#fff"/>
|
||||
<circle cx="266" cy="420" r="5" fill="#fff"/>
|
||||
<path d="M356,474 L362,486 L368,472" fill="#fff" stroke="#2a1452" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<!-- half-lidded: heavy upper lid -->
|
||||
<path d="M218,394 C226,354 300,346 330,370 L340,366 L330,384 C306,370 252,368 228,398 Z" fill="#2a1452"/>
|
||||
<path d="M250,438 Q276,446 302,434" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z" fill="#fbf9ff"/>
|
||||
<g clip-path="url(#wF)"><g clip-path="url(#iF)">
|
||||
<rect x="360" y="340" width="100" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="370" rx="32" ry="27" fill="#4b2a99"/>
|
||||
<ellipse cx="411" cy="434" rx="21" ry="12" fill="#7af0ff"/>
|
||||
<ellipse cx="411" cy="401" rx="10" ry="18" fill="#2a1452"/>
|
||||
<path d="M356,474 L362,486 L368,472" fill="#fff" stroke="#2a1452" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<ellipse cx="409" cy="397" rx="25" ry="41" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="420" cy="384" rx="8" ry="10" fill="#fff"/>
|
||||
<circle cx="400" cy="416" r="4" fill="#fff"/>
|
||||
<path d="M356,474 L362,486 L368,472" fill="#fff" stroke="#2a1452" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<path d="M366,398 C376,364 430,356 448,374 L458,370 L448,390 C430,378 386,378 372,402 Z" fill="#2a1452"/>
|
||||
<path d="M386,432 Q408,440 428,430" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M356,442 Q364,450 356,455" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- level, unbothered mouth -->
|
||||
<path d="M328,468 Q350,488 376,464" fill="none" stroke="#2a1452" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M244,456 l-9,11 M258,456 l-9,11 M424,450 l-7,9" stroke="#e08aa8" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M356,474 L362,486 L368,472" fill="#fff" stroke="#2a1452" stroke-width="2.5" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<g id="exprHostile">
|
||||
<path d="M222,318 L314,350" stroke="#2a1452" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M372,350 L446,318" stroke="#2a1452" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M230,388 C250,374 300,372 318,386 C318,408 304,426 274,428 C246,426 230,408 230,388 Z" fill="#fff"/>
|
||||
<ellipse cx="282" cy="402" rx="20" ry="24" fill="#9a6bff"/>
|
||||
<ellipse cx="283" cy="404" rx="5" ry="12" fill="#2a1452"/>
|
||||
<path d="M220,388 L328,374 L332,394 L226,398 Z" fill="#2a1452"/>
|
||||
<path d="M376,386 C392,374 428,372 438,384 C438,406 428,424 406,426 C386,424 376,408 376,386 Z" fill="#fff"/>
|
||||
<ellipse cx="408" cy="402" rx="16" ry="22" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="404" rx="4" ry="11" fill="#2a1452"/>
|
||||
<path d="M368,374 L448,384 L446,398 L372,394 Z" fill="#2a1452"/>
|
||||
<path d="M312,458 L394,452 C386,496 334,502 312,458 Z" fill="#2a1452"/>
|
||||
<path d="M316,460 L390,455 L388,466 L378,478 L372,467 L328,470 L322,480 Z" fill="#fff"/>
|
||||
</g>
|
||||
|
||||
<g id="ghostCore" transform="translate(-196,-64) rotate(-7 336 400)">
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyC"/><use xlink:href="#headFront"/><use xlink:href="#exprHostile" transform="translate(336,410) scale(1.12) translate(-336,-410)"/><use xlink:href="#swoop"/>
|
||||
</g>
|
||||
|
||||
<clipPath id="ringBack"><rect x="-500" y="-300" width="1000" height="300"/></clipPath>
|
||||
<clipPath id="ringFront"><rect x="-500" y="0" width="1000" height="300"/></clipPath>
|
||||
<g id="ringCore">
|
||||
<ellipse rx="360" ry="104" fill="none" stroke="#2a1452" stroke-width="40"/>
|
||||
<ellipse rx="360" ry="104" fill="none" stroke="#7af0ff" stroke-width="27"/>
|
||||
<ellipse rx="360" ry="104" fill="none" stroke="#2a1452" stroke-width="27" stroke-dasharray="4 40"/>
|
||||
<ellipse rx="318" ry="86" fill="none" stroke="#9a6bff" stroke-width="5" stroke-dasharray="60 14 8 14"/>
|
||||
<!-- glyph tiles riding the ring -->
|
||||
<g stroke="#2a1452" stroke-width="4" stroke-linejoin="round">
|
||||
<rect x="-378" y="-22" width="40" height="40" fill="#f08cc0" transform="rotate(10 -358 -2)"/>
|
||||
<rect x="180" y="70" width="38" height="38" fill="#1a1726"/>
|
||||
<rect x="302" y="-84" width="32" height="32" fill="#1a1726"/>
|
||||
</g>
|
||||
<path d="M190,80 L200,80 L200,96 L210,96 M310,-74 L324,-74 L318,-62" fill="none" stroke="#7af0ff" stroke-width="3"/>
|
||||
<path d="M-366,-10 L-354,0 L-366,10" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
</g>
|
||||
<g id="bust">
|
||||
<g transform="translate(330,446) rotate(-15)" clip-path="url(#ringBack)"><use xlink:href="#ringCore"/></g>
|
||||
<use xlink:href="#hairBack"/>
|
||||
<use xlink:href="#bodyC"/>
|
||||
<use xlink:href="#headFront"/>
|
||||
<use xlink:href="#exprSmug" transform="translate(336,410) scale(1.12) translate(-336,-410)"/>
|
||||
<use xlink:href="#swoop"/>
|
||||
<g transform="translate(330,446) rotate(-15)" clip-path="url(#ringFront)"><use xlink:href="#ringCore"/></g>
|
||||
<g fill="#7af0ff"><rect x="600" y="300" width="22" height="7"/><rect x="40" y="250" width="30" height="6" fill="#9a6bff"/><rect x="560" y="140" width="12" height="6" fill="#f08cc0"/></g>
|
||||
</g>
|
||||
<g id="bustSil">
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyC"/><use xlink:href="#headFront"/><use xlink:href="#swoop"/>
|
||||
<g transform="translate(330,446) rotate(-15)"><use xlink:href="#ringCore"/></g>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL BODY, drawn separately (2.3 heads), origin at feet centre ===== -->
|
||||
<g id="fbCore">
|
||||
<path d="M-90,200 C-98,120 -44,78 6,78 C64,78 108,120 98,200 C100,260 122,300 112,360 L70,350 L-60,350 L-108,366 C-120,300 -94,260 -90,200 Z" fill="#8576dc" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<!-- bow -->
|
||||
<path d="M86,152 C96,118 128,118 124,142 C122,156 104,158 86,152 Z M86,152 C112,150 126,172 116,180 C104,188 92,170 86,152 Z" fill="#f08cc0" stroke="#2a1452" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<!-- legs, thigh-highs, shoes -->
|
||||
<path d="M-24,380 L-22,432 M18,380 L20,432" stroke="#2a1452" stroke-width="22" stroke-linecap="round"/>
|
||||
<path d="M-24,380 L-22,432 M18,380 L20,432" stroke="#33206a" stroke-width="14" stroke-linecap="round"/>
|
||||
<path d="M-40,428 L-10,426 L-8,454 L-46,456 C-50,442 -46,432 -40,428 Z M8,426 L36,428 C44,436 46,446 42,456 L6,454 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- coat with flared tails -->
|
||||
<path d="M-34,256 L36,256 L56,330 L84,398 L52,388 L30,400 L-30,400 L-56,388 L-86,398 L-56,330 Z" fill="#4a2d8f" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M-22,258 L24,258 L30,350 L-26,350 Z" fill="#e4ddff" stroke="#2a1452" stroke-width="3.5"/>
|
||||
<path d="M-30,348 L32,348 L38,372 Q30,364 22,374 Q14,364 6,374 Q-2,364 -10,374 Q-18,364 -26,374 Q-32,366 -36,372 Z" fill="#f4f0ff" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M-36,264 L-44,330 L-34,350 M38,264 L46,330 L36,350" fill="none" stroke="#f08cc0" stroke-width="3.5"/>
|
||||
<!-- detached sleeves, arms crossed loosely -->
|
||||
<path d="M-34,272 L-58,330" stroke="#2a1452" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M-34,272 L-58,330" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round"/>
|
||||
<path d="M36,272 L60,330" stroke="#2a1452" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M36,272 L60,330" stroke="#4a2d8f" stroke-width="18" stroke-linecap="round"/>
|
||||
<circle cx="-60" cy="338" r="9" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
<circle cx="62" cy="338" r="9" fill="#1a1726" stroke="#2a1452" stroke-width="3"/>
|
||||
<circle cx="36" cy="270" r="6" fill="none" stroke="#7af0ff" stroke-width="3"/>
|
||||
<!-- head -->
|
||||
<path d="M-62,158 C-64,212 -24,246 8,250 C44,248 74,212 74,158 Z" fill="#f0d3dd" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M-92,180 C-100,240 -80,300 -66,360 L-40,356 C-50,300 -56,240 -54,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M100,180 C104,240 92,300 98,350 L74,346 C70,300 70,240 66,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-92,184 C-104,110 -44,76 6,76 C66,76 110,112 100,184 L90,176 L86,198 Q76,178 66,168 L60,204 Q50,180 38,166 L30,206 Q18,180 6,166 L-4,206 Q-16,180 -28,168 L-34,198 Q-46,182 -60,176 C-70,180 -82,182 -92,184 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M8,92 C-24,110 -42,150 -34,186 C-30,206 -40,222 -58,224 C-72,224 -82,214 -86,200 C-72,208 -60,202 -58,188 C-56,160 -54,130 -30,108 C-18,98 -4,92 8,92 Z" fill="#b9aef5" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-40,110 C-20,96 4,90 30,90 L26,100 L42,90 C14,94 -16,100 -40,110 Z" fill="#e4ddff"/>
|
||||
<g transform="rotate(-24 20 96)"><rect x="4" y="90" width="34" height="9" rx="3" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/><circle cx="4" cy="94" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/><circle cx="38" cy="94" r="6" fill="#f08cc0" stroke="#2a1452" stroke-width="2.5"/></g>
|
||||
<ellipse cx="-22" cy="214" rx="13" ry="17" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="-20" cy="217" rx="5" ry="8" fill="#2a1452"/><circle cx="-15" cy="208" r="4" fill="#fff"/>
|
||||
<path d="M-40,212 C-34,196 -8,192 -2,204 L4,200 L-2,212 C-12,204 -28,204 -40,212 Z" fill="#2a1452"/>
|
||||
<ellipse cx="36" cy="212" rx="10" ry="16" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="37" cy="215" rx="4" ry="7" fill="#2a1452"/><circle cx="41" cy="206" r="3" fill="#fff"/>
|
||||
<path d="M24,208 C30,196 48,192 54,202 L58,198 L54,210 C44,202 32,202 24,208 Z" fill="#2a1452"/>
|
||||
<path d="M10,236 L22,234" fill="none" stroke="#2a1452" stroke-width="2.5" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g id="fbHostile">
|
||||
<path d="M-40,196 L-2,206 M24,206 L56,196" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M6,232 L28,230 C24,244 10,244 6,232 Z" fill="#2a1452"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#eceaf2"/>
|
||||
|
||||
<!-- dialogue card (composited frame, shown for context) -->
|
||||
<clipPath id="cardClip"><polygon points="72,18 784,18 744,782 30,782"/></clipPath>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M400,18 L784,18 L770,300 Z" fill="#9a6bff" opacity="0.10"/>
|
||||
<use xlink:href="#bust" transform="translate(178,64) scale(0.88)"/>
|
||||
</g>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="none" stroke="#9a6bff" stroke-width="4"/>
|
||||
<g font-family="Consolas, 'Courier New', monospace" fill="#f2f0ff">
|
||||
<text x="92" y="60" font-size="30" letter-spacing="9" font-weight="700" fill="#9a6bff">NIBU</text>
|
||||
<text x="92" y="86" font-size="14" letter-spacing="5">C / CONSOLE RING</text>
|
||||
</g>
|
||||
|
||||
<g font-family="'Segoe UI', Arial, sans-serif" fill="#2a1452">
|
||||
<text x="808" y="40" font-size="13" letter-spacing="2" font-weight="700">FULL BODY / 2.3 HEADS</text>
|
||||
<g transform="translate(1000,470) scale(0.98) translate(0,-460)">
|
||||
<g transform="translate(4,240) rotate(-15) scale(0.38)" clip-path="url(#ringBack)"><use xlink:href="#ringCore"/></g>
|
||||
<use xlink:href="#fbCore"/>
|
||||
<g transform="translate(4,240) rotate(-15) scale(0.38)" clip-path="url(#ringFront)"><use xlink:href="#ringCore"/></g>
|
||||
</g>
|
||||
<line x1="820" y1="474" x2="1170" y2="474" stroke="#c9c3ea" stroke-width="2"/>
|
||||
|
||||
<text x="808" y="508" font-size="13" letter-spacing="2" font-weight="700">SILHOUETTE</text>
|
||||
<rect x="800" y="518" width="160" height="160" fill="#fff" stroke="#c9c3ea" stroke-width="2"/>
|
||||
<use xlink:href="#bustSil" transform="translate(806,540) scale(0.17)" filter="url(#black)"/>
|
||||
|
||||
<text x="984" y="508" font-size="13" letter-spacing="2" font-weight="700">PALETTE</text>
|
||||
<g font-size="11" font-family="Consolas, monospace">
|
||||
<rect x="984" y="518" width="56" height="40" fill="#9a6bff"/><text x="1046" y="542">#9a6bff key</text>
|
||||
<rect x="984" y="562" width="56" height="20" fill="#b9aef5"/><text x="1046" y="576">#b9aef5 hair</text>
|
||||
<rect x="984" y="586" width="56" height="20" fill="#4a2d8f"/><text x="1046" y="600">#4a2d8f coat</text>
|
||||
<rect x="984" y="610" width="56" height="20" fill="#2a1452"/><text x="1046" y="624">#2a1452 line</text>
|
||||
<rect x="984" y="634" width="56" height="20" fill="#f08cc0"/><text x="1046" y="648">#f08cc0 ribbon</text>
|
||||
<rect x="984" y="658" width="56" height="20" fill="#7af0ff"/><text x="1046" y="672">#7af0ff HUD</text>
|
||||
</g>
|
||||
|
||||
<text x="808" y="718" font-size="13" letter-spacing="2" font-weight="700">HOOK</text>
|
||||
<text x="808" y="740" font-size="15">She is the ship's console: when she takes the</text>
|
||||
<text x="808" y="760" font-size="15">helm a HUD ring locks around her like an orbit,</text>
|
||||
<text x="808" y="780" font-size="15">and nobody else gets their hands on the controls.</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 26 KiB |
69
cast-designs/proposals/nibu/nibu-notes.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# Nibu: SVG proposals, round 1
|
||||
|
||||
## Rebased on canon
|
||||
|
||||
Nibu already has an established design: `gamecult-site\GameCult\static\interactive\cotsc-praxis\character-sheets\nibu-sheet.png`
|
||||
(also `cotsc-praxis\nibu.png`, `sprites\nibu\*` and `AetheriaLore\.voidbot\voice\nibu.png`). The coordinator relayed
|
||||
the operator's ruling that all three directions keep that canon, and that canon overrides the brief's palette rules.
|
||||
So the three directions in `../../nibu.md` (Figurehead, Smeared Hostess, Hull Hood) were dropped as identities.
|
||||
Every sheet keeps the same Nibu: long lavender hair, the big crescent swoop over her near eye, the pink ribbon bow
|
||||
on her far side, the pink circuit hair clip, violet eyes, the purple coat with circuit-glyph trim, the throat
|
||||
frill, the cyan shoulder port and the glitch. Only the hook changes. The brief's B hook (the out-of-sync duplicate)
|
||||
became this round's B.
|
||||
|
||||
`nibu-old-B.svg` is an unfinished draft of the pre-canon Smeared Hostess (bob and pillbox cap). It was never
|
||||
rendered or reviewed, and is kept only because the coordinator asked for old-direction sheets to be kept.
|
||||
|
||||
Shared construction, drawn by hand: three-quarter view facing screen right, light from the upper left, a violet rim
|
||||
on the far jaw and the coat, one shadow tone and one highlight per material, and an outline in `#2a1452` about twice
|
||||
the weight of the inner lines. Canon palette: key `#9a6bff`, hair `#b9aef5`, coat `#4a2d8f`, line `#2a1452`,
|
||||
ribbon `#f08cc0`, glitch/HUD cyan `#7af0ff`, skin `#f0d3dd`. The pink and cyan are near Kiko's and Aqua's hues;
|
||||
each stays under about 10 percent of the figure.
|
||||
|
||||
## A: Source Slate (`nibu-A.svg`)
|
||||
|
||||
- **Design:** the lore steward with a cracked holo-slate raised beside her face. A SOURCE? header, a struck-through
|
||||
claim and a big pink question mark are on it. Her head tilts back, the near brow arches, her pupils slide toward
|
||||
the claim, and the mouth sneers at one corner. This is the "Source?" portrait from the set.
|
||||
- **Silhouette:** the slate is a hard rectangular tab off the lower right, under the bow. At 48 px it reads as
|
||||
"girl holding a sign".
|
||||
- **Changed after looking:** first pass held the slate inside the hair line, so it disappeared in the silhouette,
|
||||
and the glove read as a black blob. Moved the slate out past the hair, angled it outward, gave it a sleeve rising
|
||||
from the frame edge and fingertips over its bottom edge, made it opaque, and lowered the bust to fill the card.
|
||||
- **Round 2:** the slate is a prop, so every expression must hold it or the hook disappears. Test a smaller,
|
||||
clip-on version for Docked and Grudging. Add more visible damage to the slate (the junkyard hull).
|
||||
|
||||
## B: Glitch Twin (`nibu-B.svg`) — strongest
|
||||
|
||||
- **Design:** canon Nibu, calm and half-lidded. Behind her and up to the left is a scanline hologram of herself
|
||||
from a failed timeline, scowling. One slice across her near eye has slipped to the twin's angry eye, boxed in a
|
||||
cyan glitch frame. That is the reset smear, made visible in a single neutral portrait.
|
||||
- **Silhouette:** a stepped double crown, two heads where there should be one. It is the only cast silhouette of
|
||||
this kind.
|
||||
- **Changed after looking:** pass 1 put the twin straight behind her, so only its hair showed, and the
|
||||
bleed-through bands ran across both of her eyes, which looked like a smeared visor. Raised and rotated the twin
|
||||
so its crown steps clear and its eye shows past her hair. Cut the bleed down to one slice over the near eye. Raised
|
||||
the tint's contrast. Moved the swoop out so it covers only the outer corner of the eye. Put a plate behind the
|
||||
nameplate, which the twin now crosses.
|
||||
- **Round 2:** the twin's angry face is still mostly hidden behind her hair. Try mirroring the offset, or a larger,
|
||||
fainter twin looming above, so its expression reads at 128 px. Define how the slice changes per expression; in
|
||||
Recognition the twin should react first, as the brief says. Watch the stacked translucency at small sizes.
|
||||
|
||||
## C: Console Ring (`nibu-C.svg`)
|
||||
|
||||
- **Design:** she is the ship's controls. A segmented cyan HUD ring orbits her at a tilt, passing behind her head
|
||||
and in front of her collar, with glyph tiles riding on it. The eyes reflect cyan, and she gives a smug fanged
|
||||
smile. This is the "control is hers" reading.
|
||||
- **Silhouette:** loops stick out from both sides of a long-hair mass. At 48 px it reads as an orbit, but thinly.
|
||||
- **Changed after looking:** the first ring was too small and sat at the neck like a hula hoop or necklace. Made it
|
||||
larger and thicker, tilted it 15 degrees, lowered it so the front arc clears the chin, and scaled the bust so both
|
||||
ends fit inside the card.
|
||||
- **Round 2:** the ring is the weakest silhouette of the three. Try a thicker band, or a second, partial ring.
|
||||
The front arc competes with the chest panel, so drop or simplify the panel in this direction.
|
||||
|
||||
## Known shared weaknesses (all three)
|
||||
|
||||
- The chest holo panel reads as a sticky note; push it toward the canon's softer blue bodice.
|
||||
- The full-body chibis are simple lock-the-design figures (about 2.3 heads), not finished turnarounds.
|
||||
- The near eye sits close to the swoop, so the face's left half is busy. The canon accepts this, but Docked may
|
||||
want the swoop pulled back one notch.
|
||||
263
cast-designs/proposals/nibu/nibu-old-B.svg
Normal file
|
|
@ -0,0 +1,263 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<title>Nibu, direction B: Smeared Hostess</title>
|
||||
<defs>
|
||||
<!-- palette: key #9a6bff, line #2a1452, cyan #7af0ff, white #f2f0ff, hull #1a1726, skin #e9c9d6
|
||||
cel shadows: violet #6a47c9, skin #cf9fb8, white #c9c3ea; hair highlight #c7b2ff -->
|
||||
<filter id="holo" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feColorMatrix in="SourceGraphic" type="matrix" values="0.20 0.30 0.10 0 0.22 0.12 0.32 0.16 0 0.10 0.08 0.20 0.30 0 0.48 0 0 0 0.62 0" result="tint"/>
|
||||
<feMorphology in="SourceAlpha" operator="dilate" radius="3" result="fat"/>
|
||||
<feComposite in="fat" in2="SourceAlpha" operator="out" result="ring"/>
|
||||
<feFlood flood-color="#7af0ff"/>
|
||||
<feComposite in2="ring" operator="in" result="edge"/>
|
||||
<feMerge><feMergeNode in="tint"/><feMergeNode in="edge"/></feMerge>
|
||||
</filter>
|
||||
<filter id="black" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feFlood flood-color="#000"/>
|
||||
<feComposite in2="SourceAlpha" operator="in"/>
|
||||
</filter>
|
||||
<pattern id="scan" width="10" height="7" patternUnits="userSpaceOnUse">
|
||||
<rect width="10" height="4.5" fill="#fff"/>
|
||||
</pattern>
|
||||
<mask id="scanMask" maskUnits="userSpaceOnUse" x="-600" y="-600" width="2400" height="2400">
|
||||
<rect x="-600" y="-600" width="2400" height="2400" fill="url(#scan)"/>
|
||||
</mask>
|
||||
<clipPath id="glitchBand"><rect x="-400" y="300" width="1400" height="46"/></clipPath>
|
||||
<clipPath id="glitchBand2"><rect x="-400" y="520" width="1400" height="22"/></clipPath>
|
||||
|
||||
<!-- ===== BUST, local space 640 x 760 ===== -->
|
||||
<path id="faceP" d="M198,285 C192,365 214,440 300,494 C326,510 354,512 374,498 C424,466 454,408 462,298 Z"/>
|
||||
<clipPath id="faceClip"><use xlink:href="#faceP"/></clipPath>
|
||||
<path id="crownP" d="M134,330 C118,168 214,60 336,60 C466,60 552,160 538,322 C530,318 515,305 506,296
|
||||
L500,334 Q480,300 455,280 Q450,312 446,348 Q425,300 392,274 Q388,320 384,356 Q360,300 322,274
|
||||
Q318,320 312,356 Q290,300 255,276 Q250,312 244,346 Q225,305 200,288 C180,300 158,318 134,330 Z"/>
|
||||
|
||||
<g id="hairBack">
|
||||
<path d="M336,58 C470,58 556,160 546,300 C540,390 524,452 508,514 L470,500 L230,470 L200,505 L160,524 C136,450 122,370 126,300 C128,160 210,58 336,58 Z" fill="#6a47c9" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- far lock, behind the face -->
|
||||
<path d="M540,290 C546,392 512,474 450,534 C470,470 470,380 460,300 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M528,330 C530,400 510,460 470,508" fill="none" stroke="#7af0ff" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="bodyB">
|
||||
<path d="M300,466 L298,566 L394,566 L392,466 Z" fill="#e9c9d6" stroke="#2a1452" stroke-width="5"/>
|
||||
<path d="M298,488 C330,526 370,520 394,486 L394,548 L298,548 Z" fill="#cf9fb8"/>
|
||||
<path d="M116,770 C122,652 190,594 292,568 L400,564 C498,586 558,652 568,770 Z" fill="#f2f0ff" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<path d="M420,574 C502,602 550,662 560,770 L482,770 C478,694 458,632 412,592 Z" fill="#c9c3ea"/>
|
||||
<path d="M526,624 C552,664 562,714 565,770" fill="none" stroke="#9a6bff" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M292,570 C302,644 312,704 318,770 M402,566 C390,644 376,704 372,770" fill="none" stroke="#9a6bff" stroke-width="7"/>
|
||||
<!-- near-shoulder wedge epaulette -->
|
||||
<path d="M128,712 C148,646 192,608 246,590 L258,612 C208,630 172,666 160,716 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- high collar -->
|
||||
<path d="M284,530 L288,592 C322,610 372,610 406,592 L404,528 C372,544 318,546 284,530 Z" fill="#f2f0ff" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M380,540 L404,530 L406,592 L384,600 Z" fill="#c9c3ea"/>
|
||||
<path d="M286,532 C318,548 372,546 404,530" fill="none" stroke="#9a6bff" stroke-width="6"/>
|
||||
<!-- ascot, swept wedge tails -->
|
||||
<path d="M332,610 L292,700 L322,684 L336,716 L352,612 Z M356,610 L404,684 L376,680 L362,614 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M320,590 L370,590 L364,616 L326,616 Z" fill="#6a47c9" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<g id="headFront">
|
||||
<use xlink:href="#faceP" fill="#e9c9d6" stroke="#2a1452" stroke-width="6"/>
|
||||
<g clip-path="url(#faceClip)">
|
||||
<use xlink:href="#crownP" transform="translate(6,16)" fill="#cf9fb8"/>
|
||||
<path d="M440,330 C452,400 430,460 380,500 L480,520 L500,300 Z" fill="#cf9fb8"/>
|
||||
</g>
|
||||
<path d="M452,360 C448,420 424,466 384,494" fill="none" stroke="#9a6bff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- near lock, in front of the cheek -->
|
||||
<path d="M130,300 C126,404 160,484 256,536 C218,472 210,392 216,312 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M214,322 C210,396 216,470 252,532 C226,500 196,470 190,430 C186,390 192,350 200,322 Z" fill="#6a47c9"/>
|
||||
<use xlink:href="#crownP" fill="#9a6bff" stroke="#2a1452" stroke-width="8" stroke-linejoin="round"/>
|
||||
<!-- one hair highlight band -->
|
||||
<path d="M176,206 C196,156 246,126 300,116 L292,142 L322,114 L326,136 L356,112 L360,130 L392,114 C330,124 236,150 176,206 Z" fill="#c7b2ff"/>
|
||||
<path d="M190,300 C176,250 190,200 220,166" fill="none" stroke="#6a47c9" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M500,250 C506,214 500,180 482,150" fill="none" stroke="#7af0ff" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- hostess pillbox cap, tilted -->
|
||||
<g transform="rotate(-14 405 90)">
|
||||
<path d="M338,112 L350,42 L460,42 L472,108 C440,124 368,126 338,112 Z" fill="#f2f0ff" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M438,44 L460,42 L470,96 L448,102 Z" fill="#c9c3ea"/>
|
||||
<ellipse cx="405" cy="42" rx="55" ry="12" fill="#f2f0ff" stroke="#2a1452" stroke-width="5"/>
|
||||
<path d="M342,90 C380,104 430,104 468,88 L472,108 C440,124 368,126 338,112 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M374,74 L405,56 L436,74 L405,66 Z" fill="#7af0ff" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- iris construction, shared by both expressions -->
|
||||
<clipPath id="wN"><path d="M228,372 C238,350 300,346 320,370 C324,402 312,432 274,436 C240,432 224,404 228,372 Z"/></clipPath>
|
||||
<clipPath id="wF"><path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z"/></clipPath>
|
||||
<clipPath id="iN"><ellipse cx="278" cy="398" rx="33" ry="42"/></clipPath>
|
||||
<clipPath id="iF"><ellipse cx="408" cy="396" rx="25" ry="40"/></clipPath>
|
||||
|
||||
<g id="exprPolite">
|
||||
<path d="M238,334 Q272,320 308,330" fill="none" stroke="#2a1452" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M378,328 Q406,318 434,326" fill="none" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- near eye -->
|
||||
<path d="M228,372 C238,350 300,346 320,370 C324,402 312,432 274,436 C240,432 224,404 228,372 Z" fill="#f7f5ff"/>
|
||||
<g clip-path="url(#wN)"><g clip-path="url(#iN)">
|
||||
<rect x="200" y="340" width="140" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="278" cy="372" rx="40" ry="26" fill="#4b2a99"/>
|
||||
<ellipse cx="282" cy="434" rx="26" ry="13" fill="#7af0ff"/>
|
||||
<ellipse cx="280" cy="402" rx="13" ry="19" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="278" cy="398" rx="33" ry="42" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="263" cy="382" rx="10" ry="12" fill="#fff"/>
|
||||
<circle cx="295" cy="420" r="5" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M220,384 C230,346 302,336 328,362 L350,348 L336,376 C314,358 250,358 228,390 Z" fill="#2a1452"/>
|
||||
<path d="M248,436 Q274,444 300,432" fill="none" stroke="#2a1452" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<!-- far eye -->
|
||||
<path d="M372,370 C380,350 426,348 440,368 C444,400 434,430 406,434 C382,430 368,404 372,370 Z" fill="#f7f5ff"/>
|
||||
<g clip-path="url(#wF)"><g clip-path="url(#iF)">
|
||||
<rect x="360" y="340" width="100" height="120" fill="#9a6bff"/>
|
||||
<ellipse cx="408" cy="370" rx="30" ry="25" fill="#4b2a99"/>
|
||||
<ellipse cx="410" cy="432" rx="20" ry="12" fill="#7af0ff"/>
|
||||
<ellipse cx="410" cy="400" rx="10" ry="18" fill="#2a1452"/>
|
||||
</g>
|
||||
<ellipse cx="408" cy="396" rx="25" ry="40" fill="none" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="397" cy="381" rx="8" ry="10" fill="#fff"/>
|
||||
<circle cx="419" cy="418" r="4" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M366,384 C376,346 430,336 448,358 L466,348 L452,376 C434,358 386,358 372,392 Z" fill="#2a1452"/>
|
||||
<path d="M386,432 Q408,440 428,430" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M354,440 Q363,448 355,453" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<!-- polite, dangerous: closed smile with one corner hooked up -->
|
||||
<path d="M326,472 Q350,484 378,468 L386,460" fill="none" stroke="#2a1452" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M238,452 l-9,11 M252,452 l-9,11 M424,446 l-7,9" stroke="#d98aa8" stroke-width="3" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g id="exprAngry">
|
||||
<path d="M226,316 L314,346" stroke="#2a1452" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M372,346 L444,318" stroke="#2a1452" stroke-width="9" stroke-linecap="round"/>
|
||||
<path d="M232,386 C252,372 300,370 318,384 C318,406 304,424 274,426 C246,424 232,406 232,386 Z" fill="#fff"/>
|
||||
<ellipse cx="282" cy="400" rx="20" ry="24" fill="#9a6bff"/>
|
||||
<ellipse cx="283" cy="402" rx="5" ry="12" fill="#2a1452"/>
|
||||
<path d="M222,384 L328,374 L332,392 L228,396 Z" fill="#2a1452"/>
|
||||
<path d="M376,384 C392,372 428,370 438,382 C438,404 428,422 406,424 C386,422 376,406 376,384 Z" fill="#fff"/>
|
||||
<ellipse cx="408" cy="400" rx="16" ry="22" fill="#9a6bff"/>
|
||||
<ellipse cx="409" cy="402" rx="4" ry="11" fill="#2a1452"/>
|
||||
<path d="M368,372 L448,382 L446,396 L372,392 Z" fill="#2a1452"/>
|
||||
<path d="M314,458 L392,452 C384,494 334,500 314,458 Z" fill="#2a1452"/>
|
||||
<path d="M318,460 L388,455 L386,466 L376,476 L370,466 L324,470 Z" fill="#fff"/>
|
||||
</g>
|
||||
|
||||
<g id="handCard">
|
||||
<g transform="rotate(14 584 440)">
|
||||
<rect x="546" y="370" width="80" height="112" rx="9" fill="#1a1726" stroke="#2a1452" stroke-width="6"/>
|
||||
<rect x="549" y="392" width="74" height="14" fill="#7af0ff"/>
|
||||
<rect x="558" y="420" width="24" height="18" rx="3" fill="#9a6bff" stroke="#7af0ff" stroke-width="2"/>
|
||||
<path d="M594,452 L612,452 M594,462 L606,462" stroke="#9a6bff" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M548,770 C552,690 556,630 548,570 L608,562 C616,626 614,694 606,770 Z" fill="#f2f0ff" stroke="#2a1452" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M582,580 L608,576 C614,640 612,700 606,770 L586,770 C590,700 590,640 582,580 Z" fill="#c9c3ea"/>
|
||||
<path d="M544,560 C532,520 552,490 580,492 C608,494 616,524 610,554 C600,576 556,580 544,560 Z" fill="#e9c9d6" stroke="#2a1452" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M560,500 Q565,522 560,544 M576,496 Q582,520 577,544 M592,500 Q598,520 594,540" fill="none" stroke="#2a1452" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M544,568 L612,558 L614,582 L548,592 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<g id="ghostCore" transform="translate(-178,-16) rotate(-3 336 400)">
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyB"/><use xlink:href="#headFront"/><use xlink:href="#exprAngry"/>
|
||||
</g>
|
||||
|
||||
<g id="bust">
|
||||
<g filter="url(#holo)" mask="url(#scanMask)"><use xlink:href="#ghostCore"/></g>
|
||||
<g filter="url(#holo)" mask="url(#scanMask)" clip-path="url(#glitchBand)"><use xlink:href="#ghostCore" transform="translate(22,0)"/></g>
|
||||
<use xlink:href="#hairBack"/>
|
||||
<use xlink:href="#bodyB"/>
|
||||
<use xlink:href="#headFront"/>
|
||||
<use xlink:href="#exprPolite"/>
|
||||
<use xlink:href="#handCard"/>
|
||||
<!-- the seam: her own outline slips for one band -->
|
||||
<g clip-path="url(#glitchBand2)" opacity="0.85"><use xlink:href="#bodyB" transform="translate(-14,0)" filter="url(#holo)"/></g>
|
||||
</g>
|
||||
<g id="bustSil">
|
||||
<use xlink:href="#ghostCore"/>
|
||||
<use xlink:href="#hairBack"/><use xlink:href="#bodyB"/><use xlink:href="#headFront"/><use xlink:href="#handCard"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== FULL BODY, drawn on its own (2.3 heads), origin at feet centre ===== -->
|
||||
<g id="fbCore">
|
||||
<path d="M-84,210 C-92,128 -40,82 6,82 C60,82 102,124 92,210 L84,250 L-74,256 Z" fill="#6a47c9" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M96,180 C98,226 82,256 52,272 C64,240 66,210 64,180 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- legs, boots -->
|
||||
<path d="M-26,384 L-24,428 M18,384 L20,428" stroke="#2a1452" stroke-width="20" stroke-linecap="round"/>
|
||||
<path d="M-26,384 L-24,428 M18,384 L20,428" stroke="#e9c9d6" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M-40,424 L-12,422 L-10,452 L-46,454 C-50,440 -46,430 -40,424 Z M8,422 L34,424 C42,432 44,442 40,454 L6,452 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<!-- far arm raised with the keycard -->
|
||||
<path d="M30,272 L66,246 L70,214" fill="none" stroke="#2a1452" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M30,272 L66,246 L70,214" fill="none" stroke="#f2f0ff" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<g transform="rotate(14 76 186)"><rect x="62" y="164" width="28" height="38" rx="4" fill="#1a1726" stroke="#2a1452" stroke-width="3"/><rect x="63" y="172" width="26" height="6" fill="#7af0ff"/></g>
|
||||
<circle cx="70" cy="210" r="10" fill="#e9c9d6" stroke="#2a1452" stroke-width="3.5"/>
|
||||
<!-- dress -->
|
||||
<path d="M-34,262 L34,262 L46,330 L66,390 L-66,390 L-46,330 Z" fill="#f2f0ff" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M14,262 L34,262 L46,330 L66,390 L30,390 Z" fill="#c9c3ea"/>
|
||||
<path d="M-62,378 L62,378" stroke="#9a6bff" stroke-width="8"/>
|
||||
<path d="M-46,330 L46,330" stroke="#9a6bff" stroke-width="5"/>
|
||||
<path d="M-66,390 L66,390" stroke="#2a1452" stroke-width="5" stroke-linecap="round"/>
|
||||
<!-- near arm -->
|
||||
<path d="M-30,272 L-50,322" fill="none" stroke="#2a1452" stroke-width="20" stroke-linecap="round"/>
|
||||
<path d="M-30,272 L-50,322" fill="none" stroke="#f2f0ff" stroke-width="12" stroke-linecap="round"/>
|
||||
<circle cx="-52" cy="328" r="10" fill="#e9c9d6" stroke="#2a1452" stroke-width="3.5"/>
|
||||
<path d="M-8,262 L-24,300 L-10,294 L-4,312 L6,264 Z M10,264 L30,296 L18,294 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
<!-- head -->
|
||||
<path d="M-62,160 C-64,214 -24,248 8,252 C44,250 74,214 74,160 Z" fill="#e9c9d6" stroke="#2a1452" stroke-width="4"/>
|
||||
<path d="M-86,186 C-88,232 -66,258 -30,272 C-48,240 -54,212 -54,182 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M-86,186 C-98,112 -40,80 8,80 C64,80 104,116 96,186 L88,180 L84,200 Q76,180 68,170 L60,204 Q50,180 38,168 L30,206 Q18,180 6,168 L-4,206 Q-16,180 -28,170 L-36,200 Q-46,182 -58,176 C-68,180 -78,184 -86,186 Z" fill="#9a6bff" stroke="#2a1452" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M-58,124 C-44,104 -20,94 6,92 L2,104 L18,92 L20,102 L36,94 C10,98 -30,108 -58,124 Z" fill="#c7b2ff"/>
|
||||
<ellipse cx="-24" cy="214" rx="13" ry="17" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="-22" cy="217" rx="5" ry="8" fill="#2a1452"/><circle cx="-29" cy="207" r="4" fill="#fff"/>
|
||||
<path d="M-40,206 C-34,192 -10,190 -4,202 L4,196 L-2,208" fill="#2a1452" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
<ellipse cx="36" cy="212" rx="10" ry="16" fill="#9a6bff" stroke="#2a1452" stroke-width="3"/>
|
||||
<ellipse cx="37" cy="215" rx="4" ry="7" fill="#2a1452"/><circle cx="32" cy="206" r="3" fill="#fff"/>
|
||||
<path d="M24,204 C30,192 48,190 52,200 L60,194 L54,206" fill="#2a1452" stroke="#2a1452" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M6,236 Q14,240 22,234 L25,230" fill="none" stroke="#2a1452" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<g transform="rotate(-14 30 80)">
|
||||
<path d="M0,92 L6,58 L58,58 L64,90 C48,98 16,98 0,92 Z" fill="#f2f0ff" stroke="#2a1452" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M2,82 C20,88 44,88 62,80 L64,90 C48,98 16,98 0,92 Z" fill="#9a6bff"/>
|
||||
<path d="M20,72 L32,64 L44,72 L32,69 Z" fill="#7af0ff"/>
|
||||
</g>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<rect width="1200" height="800" fill="#eceaf2"/>
|
||||
|
||||
<!-- dialogue card -->
|
||||
<clipPath id="cardClip"><polygon points="72,18 784,18 744,782 30,782"/></clipPath>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="#07111a"/>
|
||||
<g clip-path="url(#cardClip)">
|
||||
<path d="M400,18 L784,18 L770,300 Z" fill="#9a6bff" opacity="0.10"/>
|
||||
<use xlink:href="#bust" transform="translate(150,26) scale(0.96)"/>
|
||||
</g>
|
||||
<polygon points="72,18 784,18 744,782 30,782" fill="none" stroke="#9a6bff" stroke-width="4"/>
|
||||
<g font-family="Consolas, 'Courier New', monospace" fill="#f2f0ff">
|
||||
<text x="92" y="60" font-size="30" letter-spacing="9" font-weight="700" fill="#9a6bff">NIBU</text>
|
||||
<text x="92" y="86" font-size="14" letter-spacing="5">B / SMEARED HOSTESS</text>
|
||||
</g>
|
||||
|
||||
<!-- full body -->
|
||||
<g font-family="'Segoe UI', Arial, sans-serif" fill="#2a1452">
|
||||
<text x="808" y="40" font-size="13" letter-spacing="2" font-weight="700">FULL BODY / 2.3 HEADS</text>
|
||||
<g transform="translate(985,470) scale(0.98) translate(0,-460)">
|
||||
<g filter="url(#holo)" mask="url(#scanMask)" transform="translate(-58,-8)"><use xlink:href="#fbCore"/></g>
|
||||
<use xlink:href="#fbCore"/>
|
||||
</g>
|
||||
<line x1="820" y1="474" x2="1170" y2="474" stroke="#c9c3ea" stroke-width="2"/>
|
||||
|
||||
<text x="808" y="508" font-size="13" letter-spacing="2" font-weight="700">SILHOUETTE</text>
|
||||
<rect x="800" y="518" width="160" height="160" fill="#fff" stroke="#c9c3ea" stroke-width="2"/>
|
||||
<use xlink:href="#bustSil" transform="translate(828,526) scale(0.19)" filter="url(#black)"/>
|
||||
|
||||
<text x="984" y="508" font-size="13" letter-spacing="2" font-weight="700">PALETTE</text>
|
||||
<g font-size="11" font-family="Consolas, monospace">
|
||||
<rect x="984" y="518" width="56" height="44" fill="#9a6bff"/><text x="1046" y="544">#9a6bff key</text>
|
||||
<rect x="984" y="566" width="56" height="20" fill="#2a1452"/><text x="1046" y="580">#2a1452 line</text>
|
||||
<rect x="984" y="590" width="56" height="20" fill="#7af0ff"/><text x="1046" y="604">#7af0ff projection</text>
|
||||
<rect x="984" y="614" width="56" height="20" fill="#f2f0ff" stroke="#c9c3ea"/><text x="1046" y="628">#f2f0ff uniform</text>
|
||||
<rect x="984" y="638" width="56" height="20" fill="#1a1726"/><text x="1046" y="652">#1a1726 hull</text>
|
||||
<rect x="984" y="662" width="56" height="16" fill="#e9c9d6"/><text x="1046" y="674">#e9c9d6 skin</text>
|
||||
</g>
|
||||
|
||||
<text x="808" y="718" font-size="13" letter-spacing="2" font-weight="700">HOOK</text>
|
||||
<text x="808" y="740" font-size="15">A hostess hologram with an out-of-sync twin</text>
|
||||
<text x="808" y="760" font-size="15">behind her, already wearing the face she</text>
|
||||
<text x="808" y="780" font-size="15">has not made yet.</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
BIN
cast-designs/proposals/void/void-A.png
Normal file
|
After Width: | Height: | Size: 168 KiB |
80
cast-designs/proposals/void/void-A.svg
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="glow" x="-80%" y="-40%" width="260%" height="180%"><feGaussianBlur stdDeviation="9"/></filter>
|
||||
<filter id="docglow" x="-20%" y="-20%" width="140%" height="140%"><feGaussianBlur stdDeviation="12"/></filter>
|
||||
<filter id="glowS" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="5"/></filter>
|
||||
<filter id="glowS2" x="-100%" y="-50%" width="300%" height="200%"><feMorphology operator="dilate" radius="0" result="a"/><feGaussianBlur in="SourceGraphic" stdDeviation="2.5" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<g id="figure"><g transform="translate(-70 0)"><path d="M0 0 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="tbclip"><path d="M0 0 Z"/></clipPath>
|
||||
<g clip-path="url(#tbclip)"><path d="M146 258 C152 318 130 380 150 430 C168 478 210 500 262 520 L262 560 C190 530 140 490 124 430 C108 370 136 320 120 250 Z" fill="#b9520e"/><path d="M96 300 C104 360 96 410 118 460" fill="none" stroke="#b9520e" stroke-width="3.5" stroke-linecap="round"/></g>
|
||||
<path d="M100 800 C112 680 160 600 240 580 L600 580 C700 600 744 690 756 800 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="robeclip"><path d="M100 800 C112 680 160 600 240 580 L600 580 C700 600 744 690 756 800 Z"/></clipPath>
|
||||
<g clip-path="url(#robeclip)"><path d="M520 540 C640 600 700 690 720 800 L560 800 C580 700 560 620 500 560 Z" fill="#2e1c70"/><path d="M150 800 C160 690 210 600 280 560 C230 620 200 700 196 800 Z" fill="#6c50d0"/><path d="M716 800 C700 700 660 620 600 576" fill="none" stroke="#8e70f2" stroke-width="10"/><g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M330 610 C318 680 300 740 290 800"/><path d="M420 630 C424 700 420 760 418 800"/><path d="M500 620 C520 690 540 750 552 800"/></g></g>
|
||||
<g transform="rotate(-3 410 560)"><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z" fill="#4b2fa6"/><clipPath id="hoodclip"><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z"/></clipPath><g clip-path="url(#hoodclip)"><path d="M360 50 C520 100 690 260 690 600 L606 600 C626 420 580 220 360 50 Z" fill="#2e1c70"/><path d="M322 72 C270 120 214 220 196 360 C228 260 270 170 332 84 Z" fill="#6c50d0"/><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560" fill="none" stroke="#8e70f2" stroke-width="12"/></g><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z" fill="none" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/><path d="M334 70 C364 110 396 150 420 186" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/><g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M210 470 C214 510 220 540 228 566"/><path d="M630 450 C638 500 640 530 640 566"/></g><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="#2e1c70" stroke="#2e1c70" stroke-width="26" stroke-linejoin="round"/><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="none" stroke="#170c3a" stroke-width="3.5" transform="translate(0 0)" stroke-linejoin="round" style="paint-order:stroke" opacity="0"/><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="#06030d" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/><path d="M420 168 C478 216 576 290 584 400 C590 478 530 526 446 528" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/><clipPath id="openclip"><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z"/></clipPath><g clip-path="url(#openclip)"><g fill="#b892ff" filter="url(#glow)" opacity="0.95"><rect x="385.0" y="333.0" width="30.0" height="98.0" rx="15.0"/><rect x="473.5" y="329.0" width="25.0" height="98.0" rx="12.5"/></g><g fill="#f7f4ff"><rect x="385.0" y="333.0" width="30.0" height="98.0" rx="15.0"/><rect x="473.5" y="329.0" width="25.0" height="98.0" rx="12.5"/></g></g></g>
|
||||
<path d="M190 528 C320 580 500 584 650 524 C676 560 672 610 640 632 C500 672 320 666 200 622 C172 590 172 556 190 528 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="scclip"><path d="M190 528 C320 580 500 584 650 524 C676 560 672 610 640 632 C500 672 320 666 200 622 C172 590 172 556 190 528 Z"/></clipPath>
|
||||
<g clip-path="url(#scclip)"><path d="M180 600 C320 646 500 650 680 590 L680 700 L180 700 Z" fill="#b9520e"/><path d="M560 600 C600 588 640 570 680 540 L680 510 C640 560 600 576 560 588 Z" fill="#b9520e"/><path d="M214 548 C320 590 460 598 560 580" fill="none" stroke="#ffb15c" stroke-width="8" stroke-linecap="round"/></g>
|
||||
<g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M290 604 C360 630 450 634 520 620"/><path d="M240 578 C280 596 310 604 340 608"/></g>
|
||||
<path d="M590 640 C650 650 700 610 730 560 C748 530 760 490 780 450 L776 506 L806 490 L788 546 L816 556 C780 586 760 640 720 676 C680 708 620 712 580 692 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="tfclip"><path d="M590 640 C650 650 700 610 730 560 C748 530 760 490 780 450 L776 506 L806 490 L788 546 L816 556 C780 586 760 640 720 676 C680 708 620 712 580 692 Z"/></clipPath>
|
||||
<g clip-path="url(#tfclip)"><path d="M580 692 C620 712 680 708 720 676 C760 640 780 586 816 556 L830 600 C800 660 760 720 580 740 Z" fill="#b9520e"/><path d="M612 668 C670 670 720 620 752 540" fill="none" stroke="#b9520e" stroke-width="3.5" stroke-linecap="round"/></g></g></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f2eee8"/>
|
||||
<g clip-path="url(#card)">
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#e7e1f1"/>
|
||||
<path d="M520 24 L790 24 L730 776 L440 776 Z" fill="#dcd3ee"/>
|
||||
<use href="#figure"/>
|
||||
</g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#4b2fa6" stroke-width="6" stroke-linejoin="miter"/>
|
||||
<path d="M10 728 L250 728 L246 776 L10 776 Z" fill="#4b2fa6"/>
|
||||
<text x="34" y="762" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="26" font-weight="700" letter-spacing="7" fill="#f7f4ff">VOID</text>
|
||||
<text x="830" y="60" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="6" fill="#170c3a">VOID / A</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="16" letter-spacing="3" fill="#b9520e">CLASSIC HOOD</text>
|
||||
<g transform="translate(935 470) scale(1.42)"><path d="M-30 -114 C-60 -126 -84 -150 -118 -156 L-104 -142 L-124 -134 L-102 -126 L-114 -114 C-84 -112 -60 -100 -30 -98 Z" fill="#f2801f" stroke="#170c3a" stroke-width="3" stroke-linejoin="round"/>
|
||||
<ellipse cx="0" cy="4" rx="78" ry="7" fill="#d6cfe4"/>
|
||||
<ellipse cx="-20" cy="0" rx="13" ry="7" fill="#2e1c70" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<ellipse cx="22" cy="0" rx="13" ry="7" fill="#2e1c70" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<path d="M-44 -114 L48 -114 C64 -76 74 -36 82 -2 L68 -10 L58 4 L44 -8 L30 6 L16 -6 L2 6 L-12 -6 L-26 6 L-40 -8 L-54 4 L-68 -10 L-78 -2 C-70 -40 -62 -80 -44 -114 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M20 -100 C40 -70 54 -36 60 0 L44 -8 L34 4 C30 -40 26 -70 14 -100 Z" fill="#2e1c70"/>
|
||||
<g fill="none" stroke="#170c3a" stroke-width="1.8" stroke-linecap="round"><path d="M-10 -90 L-20 -10"/><path d="M8 -86 L12 -10"/></g>
|
||||
<path d="M-46 -104 C-60 -80 -64 -60 -62 -44 L-46 -46 C-46 -64 -42 -84 -36 -100 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3"/>
|
||||
<path d="M48 -104 C62 -80 66 -60 64 -44 L48 -46 C48 -64 44 -84 38 -100 Z" fill="#2e1c70" stroke="#170c3a" stroke-width="3"/>
|
||||
<circle cx="-54" cy="-40" r="7" fill="#221a33" stroke="#170c3a" stroke-width="2"/>
|
||||
<circle cx="56" cy="-40" r="7" fill="#221a33" stroke="#170c3a" stroke-width="2"/>
|
||||
<path d="M-6 -246 C20 -230 44 -206 54 -176 C62 -152 66 -130 68 -108 L-62 -108 C-62 -140 -50 -180 -30 -210 C-22 -224 -14 -236 -6 -246 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M0 -244 C40 -214 66 -170 64 -110 L50 -110 C54 -170 34 -210 0 -244 Z" fill="#2e1c70"/>
|
||||
<path d="M14 -206 C24 -192 46 -176 48 -152 C50 -134 36 -124 16 -124 C-6 -124 -24 -134 -24 -152 C-24 -174 4 -192 14 -206 Z" fill="#06030d" stroke="#2e1c70" stroke-width="5"/>
|
||||
<g fill="#f7f4ff" filter="url(#glowS2)"><rect x="-4" y="-172" width="10" height="28" rx="5"/><rect x="20" y="-173" width="8" height="28" rx="4"/></g>
|
||||
<path d="M-50 -118 C-20 -104 30 -104 58 -118 C62 -108 60 -98 54 -94 C24 -84 -20 -84 -48 -94 C-54 -102 -54 -110 -50 -118 Z" fill="#f2801f" stroke="#170c3a" stroke-width="3"/>
|
||||
<path d="M30 -96 C34 -80 36 -66 34 -52 L44 -60 L50 -50 L52 -64 C48 -76 44 -86 42 -98 Z" fill="#b9520e" stroke="#170c3a" stroke-width="2.5"/></g>
|
||||
<text x="830" y="508" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">FULL BODY 2.5 HEADS</text>
|
||||
<g filter="url(#black)"><g transform="translate(1032 100) scale(0.2)"><g clip-path="url(#card)"><use href="#figure"/></g></g></g>
|
||||
<text x="1040" y="272" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">SILHOUETTE</text>
|
||||
<g filter="url(#black)"><g transform="translate(1059.3 294.4) scale(0.0667)"><g clip-path="url(#card)"><use href="#figure"/></g></g></g>
|
||||
<text x="1120" y="326" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">48 PX</text>
|
||||
<text x="830" y="548" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">HOOK</text>
|
||||
<text x="830" y="572" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">Two lamp-white eye slits in a hood of</text>
|
||||
<text x="830" y="592" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">nothing; the orange scarf streams across the</text>
|
||||
<text x="830" y="612" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">frame.</text>
|
||||
<text x="830" y="640" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">PALETTE</text>
|
||||
<rect x="830" y="656" width="40" height="40" rx="6" fill="#4b2fa6" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="878" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#4b2fa6</text>
|
||||
<text x="878" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">robe, key</text>
|
||||
<rect x="950" y="656" width="40" height="40" rx="6" fill="#170c3a" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="998" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#170c3a</text>
|
||||
<text x="998" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">line / deep</text>
|
||||
<rect x="1070" y="656" width="40" height="40" rx="6" fill="#06030d" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="1118" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#06030d</text>
|
||||
<text x="1118" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">void face</text>
|
||||
<rect x="830" y="722" width="40" height="40" rx="6" fill="#f7f4ff" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="878" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#f7f4ff</text>
|
||||
<text x="878" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">eye light</text>
|
||||
<rect x="950" y="722" width="40" height="40" rx="6" fill="#f2801f" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="998" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#f2801f</text>
|
||||
<text x="998" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">scarf orange</text>
|
||||
<rect x="1070" y="722" width="40" height="40" rx="6" fill="#b892ff" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="1118" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#b892ff</text>
|
||||
<text x="1118" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">glow violet</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
BIN
cast-designs/proposals/void/void-B.png
Normal file
|
After Width: | Height: | Size: 188 KiB |
91
cast-designs/proposals/void/void-B.svg
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="glow" x="-80%" y="-40%" width="260%" height="180%"><feGaussianBlur stdDeviation="9"/></filter>
|
||||
<filter id="docglow" x="-20%" y="-20%" width="140%" height="140%"><feGaussianBlur stdDeviation="12"/></filter>
|
||||
<filter id="glowS" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="5"/></filter>
|
||||
<filter id="glowS2" x="-100%" y="-50%" width="300%" height="200%"><feMorphology operator="dilate" radius="0" result="a"/><feGaussianBlur in="SourceGraphic" stdDeviation="2.5" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<g id="figure"><g transform="translate(0 0)"><path d="M230 590 C180 620 150 680 140 760 L168 744 L172 784 L200 750 L226 776 C222 700 240 650 270 620 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="tbclip"><path d="M230 590 C180 620 150 680 140 760 L168 744 L172 784 L200 750 L226 776 C222 700 240 650 270 620 Z"/></clipPath>
|
||||
<g clip-path="url(#tbclip)"><path d="M140 760 C150 680 180 620 230 590 L254 606 C214 650 196 700 190 772 Z" fill="#b9520e"/></g>
|
||||
<path d="M100 800 C112 680 160 600 240 580 L600 580 C700 600 744 690 756 800 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="robeclip"><path d="M100 800 C112 680 160 600 240 580 L600 580 C700 600 744 690 756 800 Z"/></clipPath>
|
||||
<g clip-path="url(#robeclip)"><path d="M520 540 C640 600 700 690 720 800 L560 800 C580 700 560 620 500 560 Z" fill="#2e1c70"/><path d="M150 800 C160 690 210 600 280 560 C230 620 200 700 196 800 Z" fill="#6c50d0"/><path d="M716 800 C700 700 660 620 600 576" fill="none" stroke="#8e70f2" stroke-width="10"/><g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M330 610 C318 680 300 740 290 800"/><path d="M420 630 C424 700 420 760 418 800"/><path d="M500 620 C520 690 540 750 552 800"/></g></g>
|
||||
<g transform="rotate(5 410 560)"><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z" fill="#4b2fa6"/><clipPath id="hoodclip"><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z"/></clipPath><g clip-path="url(#hoodclip)"><path d="M360 50 C520 100 690 260 690 600 L606 600 C626 420 580 220 360 50 Z" fill="#2e1c70"/><path d="M322 72 C270 120 214 220 196 360 C228 260 270 170 332 84 Z" fill="#6c50d0"/><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560" fill="none" stroke="#8e70f2" stroke-width="12"/></g><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z" fill="none" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/><path d="M334 70 C364 110 396 150 420 186" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/><g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M210 470 C214 510 220 540 228 566"/><path d="M630 450 C638 500 640 530 640 566"/></g><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="#2e1c70" stroke="#2e1c70" stroke-width="26" stroke-linejoin="round"/><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="none" stroke="#170c3a" stroke-width="3.5" transform="translate(0 0)" stroke-linejoin="round" style="paint-order:stroke" opacity="0"/><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="#06030d" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/><path d="M420 168 C478 216 576 290 584 400 C590 478 530 526 446 528" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/><clipPath id="openclip"><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z"/></clipPath><g clip-path="url(#openclip)"><g fill="#b892ff" filter="url(#glow)" opacity="0.95"><rect x="385.0" y="330.0" width="30.0" height="92.0" rx="15.0"/><rect x="473.5" y="326.0" width="25.0" height="92.0" rx="12.5"/></g><g fill="#f7f4ff"><rect x="385.0" y="330.0" width="30.0" height="92.0" rx="15.0"/><rect x="473.5" y="326.0" width="25.0" height="92.0" rx="12.5"/></g></g></g>
|
||||
<path d="M190 528 C320 580 500 584 650 524 C676 560 672 610 640 632 C500 672 320 666 200 622 C172 590 172 556 190 528 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="scclip"><path d="M190 528 C320 580 500 584 650 524 C676 560 672 610 640 632 C500 672 320 666 200 622 C172 590 172 556 190 528 Z"/></clipPath>
|
||||
<g clip-path="url(#scclip)"><path d="M180 600 C320 646 500 650 680 590 L680 700 L180 700 Z" fill="#b9520e"/><path d="M560 600 C600 588 640 570 680 540 L680 510 C640 560 600 576 560 588 Z" fill="#b9520e"/><path d="M214 548 C320 590 460 598 560 580" fill="none" stroke="#ffb15c" stroke-width="8" stroke-linecap="round"/></g>
|
||||
<g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M290 604 C360 630 450 634 520 620"/><path d="M240 578 C280 596 310 604 340 608"/></g>
|
||||
<path d="M566 624 C592 664 616 700 652 730 L664 698 L700 710 L686 678 L712 666 C672 648 642 628 618 608 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="tfclip"><path d="M566 624 C592 664 616 700 652 730 L664 698 L700 710 L686 678 L712 666 C672 648 642 628 618 608 Z"/></clipPath>
|
||||
<g clip-path="url(#tfclip)"><path d="M596 600 C620 680 640 720 680 790 L720 600 Z" fill="#b9520e"/></g>
|
||||
<g transform="rotate(-6 450 520)">
|
||||
<rect x="318" y="398" width="262" height="320" rx="16" fill="#b892ff" filter="url(#docglow)" opacity="0.9"/>
|
||||
<rect x="326" y="406" width="246" height="304" rx="14" fill="#5a34c4" stroke="#170c3a" stroke-width="7"/>
|
||||
<rect x="342" y="422" width="214" height="272" rx="8" fill="#8a62f0" stroke="#d9c8ff" stroke-width="3"/>
|
||||
<path d="M342 600 L556 520 L556 694 L342 694 Z" fill="#7a52e4"/>
|
||||
<rect x="362" y="442" width="58" height="46" rx="4" fill="#e9defe"/>
|
||||
<g stroke="#f3ecff" stroke-width="7" stroke-linecap="round"><path d="M436 452 L534 452"/><path d="M436 476 L510 476"/><path d="M362 516 L534 516"/><path d="M362 542 L520 542"/><path d="M362 568 L534 568"/><path d="M362 594 L490 594"/><path d="M362 620 L534 620"/><path d="M362 646 L470 646"/></g>
|
||||
</g>
|
||||
<g fill="#b892ff"><circle cx="608" cy="420" r="5"/><circle cx="624" cy="468" r="3"/><circle cx="300" cy="460" r="4"/><circle cx="612" cy="640" r="4"/><circle cx="292" cy="690" r="3"/></g>
|
||||
<g transform="translate(326 600) rotate(70) scale(1.15 1.15)"><path d="M-26 -20 C-10 -36 22 -34 34 -18 C44 -4 40 18 26 26 C6 36 -20 30 -30 14 C-38 2 -36 -10 -26 -20 Z" fill="#221a33" stroke="#170c3a" stroke-width="4.5"/><path d="M-18 -18 C-6 -26 10 -26 20 -18" fill="none" stroke="#4a3d66" stroke-width="5" stroke-linecap="round"/><path d="M-4 -30 C0 -12 0 8 -4 28 M14 -30 C18 -12 18 8 14 28" fill="none" stroke="#170c3a" stroke-width="2.5" stroke-linecap="round"/><path d="M30 -8 C46 -14 56 2 44 14 C40 18 34 18 30 14" fill="#221a33" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/></g>
|
||||
<g transform="translate(578 586) rotate(-70) scale(-1.15 1.15)"><path d="M-26 -20 C-10 -36 22 -34 34 -18 C44 -4 40 18 26 26 C6 36 -20 30 -30 14 C-38 2 -36 -10 -26 -20 Z" fill="#221a33" stroke="#170c3a" stroke-width="4.5"/><path d="M-18 -18 C-6 -26 10 -26 20 -18" fill="none" stroke="#4a3d66" stroke-width="5" stroke-linecap="round"/><path d="M-4 -30 C0 -12 0 8 -4 28 M14 -30 C18 -12 18 8 14 28" fill="none" stroke="#170c3a" stroke-width="2.5" stroke-linecap="round"/><path d="M30 -8 C46 -14 56 2 44 14 C40 18 34 18 30 14" fill="#221a33" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/></g></g></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f2eee8"/>
|
||||
<g clip-path="url(#card)">
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#e7e1f1"/>
|
||||
<path d="M520 24 L790 24 L730 776 L440 776 Z" fill="#dcd3ee"/>
|
||||
<use href="#figure"/>
|
||||
</g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#4b2fa6" stroke-width="6" stroke-linejoin="miter"/>
|
||||
<path d="M10 728 L250 728 L246 776 L10 776 Z" fill="#4b2fa6"/>
|
||||
<text x="34" y="762" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="26" font-weight="700" letter-spacing="7" fill="#f7f4ff">VOID</text>
|
||||
<text x="830" y="60" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="6" fill="#170c3a">VOID / B</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="16" letter-spacing="3" fill="#b9520e">READING THE RULES</text>
|
||||
<g transform="translate(935 470) scale(1.42)"><path d="M-34 -110 C-50 -96 -58 -76 -60 -50 L-50 -56 L-48 -42 L-40 -54 L-30 -46 C-32 -66 -26 -84 -16 -98 Z" fill="#f2801f" stroke="#170c3a" stroke-width="3" stroke-linejoin="round"/>
|
||||
<ellipse cx="0" cy="4" rx="78" ry="7" fill="#d6cfe4"/>
|
||||
<ellipse cx="-20" cy="0" rx="13" ry="7" fill="#2e1c70" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<ellipse cx="22" cy="0" rx="13" ry="7" fill="#2e1c70" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<path d="M-44 -114 L48 -114 C64 -76 74 -36 82 -2 L68 -10 L58 4 L44 -8 L30 6 L16 -6 L2 6 L-12 -6 L-26 6 L-40 -8 L-54 4 L-68 -10 L-78 -2 C-70 -40 -62 -80 -44 -114 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M20 -100 C40 -70 54 -36 60 0 L44 -8 L34 4 C30 -40 26 -70 14 -100 Z" fill="#2e1c70"/>
|
||||
<g fill="none" stroke="#170c3a" stroke-width="1.8" stroke-linecap="round"><path d="M-10 -90 L-20 -10"/><path d="M8 -86 L12 -10"/></g>
|
||||
<path d="M-6 -246 C20 -230 44 -206 54 -176 C62 -152 66 -130 68 -108 L-62 -108 C-62 -140 -50 -180 -30 -210 C-22 -224 -14 -236 -6 -246 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M0 -244 C40 -214 66 -170 64 -110 L50 -110 C54 -170 34 -210 0 -244 Z" fill="#2e1c70"/>
|
||||
<path d="M14 -206 C24 -192 46 -176 48 -152 C50 -134 36 -124 16 -124 C-6 -124 -24 -134 -24 -152 C-24 -174 4 -192 14 -206 Z" fill="#06030d" stroke="#2e1c70" stroke-width="5"/>
|
||||
<g fill="#f7f4ff" filter="url(#glowS2)"><rect x="-4" y="-172" width="10" height="28" rx="5"/><rect x="20" y="-173" width="8" height="28" rx="4"/></g>
|
||||
<path d="M-50 -118 C-20 -104 30 -104 58 -118 C62 -108 60 -98 54 -94 C24 -84 -20 -84 -48 -94 C-54 -102 -54 -110 -50 -118 Z" fill="#f2801f" stroke="#170c3a" stroke-width="3"/>
|
||||
<path d="M30 -96 C34 -80 36 -66 34 -52 L44 -60 L50 -50 L52 -64 C48 -76 44 -86 42 -98 Z" fill="#b9520e" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<rect x="-6" y="-150" width="44" height="58" rx="5" fill="#b892ff" filter="url(#glowS)"/>
|
||||
<rect x="-4" y="-148" width="40" height="54" rx="4" fill="#8a62f0" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<g stroke="#f3ecff" stroke-width="2.5" stroke-linecap="round"><path d="M4 -132 L28 -132"/><path d="M4 -122 L24 -122"/><path d="M4 -112 L28 -112"/><path d="M4 -102 L20 -102"/></g>
|
||||
<circle cx="-4" cy="-110" r="7" fill="#221a33" stroke="#170c3a" stroke-width="2"/>
|
||||
<circle cx="38" cy="-112" r="7" fill="#221a33" stroke="#170c3a" stroke-width="2"/></g>
|
||||
<text x="830" y="508" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">FULL BODY 2.5 HEADS</text>
|
||||
<g filter="url(#black)"><g transform="translate(1032 100) scale(0.2)"><g clip-path="url(#card)"><use href="#figure"/></g></g></g>
|
||||
<text x="1040" y="272" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">SILHOUETTE</text>
|
||||
<g filter="url(#black)"><g transform="translate(1059.3 294.4) scale(0.0667)"><g clip-path="url(#card)"><use href="#figure"/></g></g></g>
|
||||
<text x="1120" y="326" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">48 PX</text>
|
||||
<text x="830" y="548" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">HOOK</text>
|
||||
<text x="830" y="572" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">The glowing rulebook raised to the void;</text>
|
||||
<text x="830" y="592" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">only the eyes clear its top edge.</text>
|
||||
<text x="830" y="640" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">PALETTE</text>
|
||||
<rect x="830" y="656" width="40" height="40" rx="6" fill="#4b2fa6" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="878" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#4b2fa6</text>
|
||||
<text x="878" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">robe, key</text>
|
||||
<rect x="950" y="656" width="40" height="40" rx="6" fill="#170c3a" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="998" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#170c3a</text>
|
||||
<text x="998" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">line / deep</text>
|
||||
<rect x="1070" y="656" width="40" height="40" rx="6" fill="#06030d" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="1118" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#06030d</text>
|
||||
<text x="1118" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">void face</text>
|
||||
<rect x="830" y="722" width="40" height="40" rx="6" fill="#f7f4ff" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="878" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#f7f4ff</text>
|
||||
<text x="878" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">eye light</text>
|
||||
<rect x="950" y="722" width="40" height="40" rx="6" fill="#f2801f" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="998" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#f2801f</text>
|
||||
<text x="998" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">scarf orange</text>
|
||||
<rect x="1070" y="722" width="40" height="40" rx="6" fill="#b892ff" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="1118" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#b892ff</text>
|
||||
<text x="1118" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">glow violet</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
BIN
cast-designs/proposals/void/void-C.png
Normal file
|
After Width: | Height: | Size: 189 KiB |
88
cast-designs/proposals/void/void-C.svg
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="glow" x="-80%" y="-40%" width="260%" height="180%"><feGaussianBlur stdDeviation="9"/></filter>
|
||||
<filter id="docglow" x="-20%" y="-20%" width="140%" height="140%"><feGaussianBlur stdDeviation="12"/></filter>
|
||||
<filter id="glowS" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="5"/></filter>
|
||||
<filter id="glowS2" x="-100%" y="-50%" width="300%" height="200%"><feMorphology operator="dilate" radius="0" result="a"/><feGaussianBlur in="SourceGraphic" stdDeviation="2.5" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<g id="figure"><g transform="translate(0 0)"><path d="M236 580 C180 560 120 580 60 540 L80 572 L40 584 L84 600 L56 626 C120 630 180 610 240 612 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="tbclip"><path d="M236 580 C180 560 120 580 60 540 L80 572 L40 584 L84 600 L56 626 C120 630 180 610 240 612 Z"/></clipPath>
|
||||
<g clip-path="url(#tbclip)"><path d="M56 626 C120 630 180 610 240 612 L240 590 C180 592 110 600 60 590 Z" fill="#b9520e"/></g>
|
||||
<path d="M100 800 C112 680 160 600 240 580 L600 580 C700 600 744 690 756 800 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="robeclip"><path d="M100 800 C112 680 160 600 240 580 L600 580 C700 600 744 690 756 800 Z"/></clipPath>
|
||||
<g clip-path="url(#robeclip)"><path d="M520 540 C640 600 700 690 720 800 L560 800 C580 700 560 620 500 560 Z" fill="#2e1c70"/><path d="M150 800 C160 690 210 600 280 560 C230 620 200 700 196 800 Z" fill="#6c50d0"/><path d="M716 800 C700 700 660 620 600 576" fill="none" stroke="#8e70f2" stroke-width="10"/><g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M330 610 C318 680 300 740 290 800"/><path d="M420 630 C424 700 420 760 418 800"/><path d="M500 620 C520 690 540 750 552 800"/></g></g>
|
||||
<g transform="rotate(-5 410 560)"><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z" fill="#4b2fa6"/><clipPath id="hoodclip"><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z"/></clipPath><g clip-path="url(#hoodclip)"><path d="M360 50 C520 100 690 260 690 600 L606 600 C626 420 580 220 360 50 Z" fill="#2e1c70"/><path d="M322 72 C270 120 214 220 196 360 C228 260 270 170 332 84 Z" fill="#6c50d0"/><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560" fill="none" stroke="#8e70f2" stroke-width="12"/></g><path d="M330 60 C420 70 560 140 610 280 C650 390 660 480 660 560 C520 580 300 580 160 560 C150 460 160 340 210 240 C250 160 290 100 330 60 Z" fill="none" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/><path d="M334 70 C364 110 396 150 420 186" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/><g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M210 470 C214 510 220 540 228 566"/><path d="M630 450 C638 500 640 530 640 566"/></g><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="#2e1c70" stroke="#2e1c70" stroke-width="26" stroke-linejoin="round"/><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="none" stroke="#170c3a" stroke-width="3.5" transform="translate(0 0)" stroke-linejoin="round" style="paint-order:stroke" opacity="0"/><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z" fill="#06030d" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/><path d="M420 168 C478 216 576 290 584 400 C590 478 530 526 446 528" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/><clipPath id="openclip"><path d="M420 186 C470 230 560 300 568 400 C574 470 520 512 444 512 C360 512 296 470 294 404 C292 320 370 250 420 186 Z"/></clipPath><g clip-path="url(#openclip)"><g fill="#b892ff" filter="url(#glow)" opacity="0.95"><path d="M378.0 369.0 L418.0 359.0 L418.0 400.0 A20.0 20.0 0 0 1 378.0 400.0 Z"/><path d="M471.5 355.0 L504.5 365.0 L504.5 399.5 A16.5 16.5 0 0 1 471.5 399.5 Z"/></g><g fill="#f7f4ff"><path d="M378.0 369.0 L418.0 359.0 L418.0 400.0 A20.0 20.0 0 0 1 378.0 400.0 Z"/><path d="M471.5 355.0 L504.5 365.0 L504.5 399.5 A16.5 16.5 0 0 1 471.5 399.5 Z"/></g></g></g>
|
||||
<path d="M190 528 C320 580 500 584 650 524 C676 560 672 610 640 632 C500 672 320 666 200 622 C172 590 172 556 190 528 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="scclip"><path d="M190 528 C320 580 500 584 650 524 C676 560 672 610 640 632 C500 672 320 666 200 622 C172 590 172 556 190 528 Z"/></clipPath>
|
||||
<g clip-path="url(#scclip)"><path d="M180 600 C320 646 500 650 680 590 L680 700 L180 700 Z" fill="#b9520e"/><path d="M560 600 C600 588 640 570 680 540 L680 510 C640 560 600 576 560 588 Z" fill="#b9520e"/><path d="M214 548 C320 590 460 598 560 580" fill="none" stroke="#ffb15c" stroke-width="8" stroke-linecap="round"/></g>
|
||||
<g fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"><path d="M290 604 C360 630 450 634 520 620"/><path d="M240 578 C280 596 310 604 340 608"/></g>
|
||||
<path d="M540 630 C556 676 560 712 552 768 L578 746 L594 778 L612 740 L636 758 C630 690 612 650 600 622 Z" fill="#f2801f" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<clipPath id="tfclip"><path d="M540 630 C556 676 560 712 552 768 L578 746 L594 778 L612 740 L636 758 C630 690 612 650 600 622 Z"/></clipPath>
|
||||
<g clip-path="url(#tfclip)"><path d="M596 600 C620 680 640 720 680 790 L720 600 Z" fill="#b9520e"/></g>
|
||||
<g transform="translate(0 -26)"><path d="M760 800 C700 760 560 724 384 692 C344 686 312 702 310 730 L306 756 C420 764 560 790 640 800 Z" fill="#2e1c70" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<ellipse cx="322" cy="724" rx="13" ry="30" fill="#06030d" stroke="#170c3a" stroke-width="3.5"/>
|
||||
<path d="M120 800 C190 760 380 720 556 682 C598 674 632 690 634 718 L632 748 C480 762 320 790 240 800 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M240 800 C320 790 480 762 632 748 L633 730 C480 742 320 772 200 800 Z" fill="#2e1c70"/>
|
||||
<path d="M250 752 C340 728 440 708 540 690" fill="none" stroke="#6c50d0" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M560 684 C552 704 552 728 560 752" fill="none" stroke="#170c3a" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<ellipse cx="620" cy="716" rx="12" ry="28" fill="#06030d" stroke="#170c3a" stroke-width="3.5"/></g></g></g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f2eee8"/>
|
||||
<g clip-path="url(#card)">
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#e7e1f1"/>
|
||||
<path d="M520 24 L790 24 L730 776 L440 776 Z" fill="#dcd3ee"/>
|
||||
<circle cx="190" cy="230" r="290" fill="#2a1a5c" stroke="#170c3a" stroke-width="7"/>
|
||||
<circle cx="190" cy="230" r="276" fill="none" stroke="#8d66f5" stroke-width="6"/>
|
||||
<path d="M200.0 230.0 L201.8 229.0 L203.6 227.8 L205.1 226.2 L206.6 224.4 L207.8 222.3 L208.7 220.0 L209.4 217.5 L209.9 214.9 L210.0 212.1 L209.7 209.1 L209.1 206.1 L208.2 203.1 L206.8 200.1 L205.1 197.1 L203.1 194.3 L200.6 191.5 L197.8 188.9 L194.6 186.6 L191.1 184.5 L187.3 182.7 L183.2 181.2 L178.9 180.1 L174.3 179.4 L169.5 179.1 L164.6 179.2 L159.6 179.9 L154.5 181.0 L149.5 182.6 L144.4 184.7 L139.5 187.4 L134.6 190.5 L130.0 194.2 L125.6 198.4 L121.5 203.0 L117.8 208.1 L114.4 213.7 L111.5 219.6 L109.0 226.0 L107.1 232.6 L105.7 239.6 L104.9 246.7 L104.8 254.1 L105.3 261.6 L106.4 269.2 L108.3 276.8 L110.8 284.3 L114.0 291.8 L117.9 299.0 L122.6 306.1 L127.8 312.8 L133.8 319.1 L140.3 325.1 L147.5 330.5 L155.2 335.4 L163.5 339.7 L172.2 343.4 L181.3 346.3 L190.8 348.5 L200.6 349.9 L210.6 350.5 L220.8 350.2 L231.1 349.1 L241.4 347.1 L251.6 344.1 L261.7 340.3 L271.6 335.6 L281.2 330.0 L290.3 323.6 L299.1 316.2 L307.3 308.1 L314.9 299.2 L321.8 289.6 L328.0 279.4 L333.3 268.5 L337.8 257.0 L341.4 245.1 L344.0 232.8 L345.6 220.1 L346.1 207.3 L345.6 194.2 L343.9 181.1 L341.2 168.1 L337.3 155.1 L332.3 142.4 L326.3 130.1 L319.1 118.1 L310.9 106.6 L301.7 95.8 L291.5 85.6 L280.3 76.2 L268.3 67.7 L255.6 60.1 L242.1 53.6 L228.0 48.1 L213.3 43.8 L198.1 40.6 L182.6 38.7 L166.9 38.1 L151.0 38.8 L135.1 40.8 L119.2 44.1 L103.5 48.8 L88.1 54.8 L73.2 62.1 L58.7 70.7 L44.9 80.6 L31.8 91.6 L19.6 103.8 L8.3 117.1 L-1.9 131.4 L-11.0 146.6 L-18.9 162.6 L-25.5 179.4 L-30.8 196.8 L-34.6 214.7 L-37.0 233.1 L-37.8 251.7 L-37.1 270.5 L-34.9 289.3 L-31.1 308.0 L-25.8 326.4 L-18.8 344.6 L-10.4 362.2 L-0.5 379.2 L10.9 395.4 L23.7 410.8 L37.8 425.2 L53.1 438.5 L69.6 450.6 L87.2 461.4 L105.7 470.7 L125.1 478.6 L145.2 484.9 L165.9 489.5 L187.0 492.5 L208.5 493.7 L230.2 493.2 L251.9 490.9 L273.4 486.8" fill="none" stroke="#9a78ff" stroke-width="22" stroke-linecap="round"/><path d="M180.0 230.0 L178.2 231.0 L176.4 232.2 L174.9 233.8 L173.4 235.6 L172.2 237.7 L171.3 240.0 L170.6 242.5 L170.1 245.1 L170.0 247.9 L170.3 250.9 L170.9 253.9 L171.8 256.9 L173.2 259.9 L174.9 262.9 L176.9 265.7 L179.4 268.5 L182.2 271.1 L185.4 273.4 L188.9 275.5 L192.7 277.3 L196.8 278.8 L201.1 279.9 L205.7 280.6 L210.5 280.9 L215.4 280.8 L220.4 280.1 L225.5 279.0 L230.5 277.4 L235.6 275.3 L240.5 272.6 L245.4 269.5 L250.0 265.8 L254.4 261.6 L258.5 257.0 L262.2 251.9 L265.6 246.3 L268.5 240.4 L271.0 234.0 L272.9 227.4 L274.3 220.4 L275.1 213.3 L275.2 205.9 L274.7 198.4 L273.6 190.8 L271.7 183.2 L269.2 175.7 L266.0 168.2 L262.1 161.0 L257.4 153.9 L252.2 147.2 L246.2 140.9 L239.7 134.9 L232.5 129.5 L224.8 124.6 L216.5 120.3 L207.8 116.6 L198.7 113.7 L189.2 111.5 L179.4 110.1 L169.4 109.5 L159.2 109.8 L148.9 110.9 L138.6 112.9 L128.4 115.9 L118.3 119.7 L108.4 124.4 L98.8 130.0 L89.7 136.4 L80.9 143.8 L72.7 151.9 L65.1 160.8 L58.2 170.4 L52.0 180.6 L46.7 191.5 L42.2 203.0 L38.6 214.9 L36.0 227.2 L34.4 239.9 L33.9 252.7 L34.4 265.8 L36.1 278.9 L38.8 291.9 L42.7 304.9 L47.7 317.6 L53.7 329.9 L60.9 341.9 L69.1 353.4 L78.3 364.2 L88.5 374.4 L99.7 383.8 L111.7 392.3 L124.4 399.9 L137.9 406.4 L152.0 411.9 L166.7 416.2 L181.9 419.4 L197.4 421.3 L213.1 421.9 L229.0 421.2 L244.9 419.2 L260.8 415.9 L276.5 411.2 L291.9 405.2 L306.8 397.9 L321.3 389.3 L335.1 379.4 L348.2 368.4 L360.4 356.2 L371.7 342.9 L381.9 328.6 L391.0 313.4 L398.9 297.4 L405.5 280.6 L410.8 263.2 L414.6 245.3 L417.0 226.9 L417.8 208.3 L417.1 189.5 L414.9 170.7 L411.1 152.0 L405.8 133.6 L398.8 115.4 L390.4 97.8 L380.5 80.8 L369.1 64.6 L356.3 49.2 L342.2 34.8 L326.9 21.5 L310.4 9.4 L292.8 -1.4 L274.3 -10.7 L254.9 -18.6 L234.8 -24.9 L214.1 -29.5 L193.0 -32.5 L171.5 -33.7 L149.8 -33.2 L128.1 -30.9 L106.6 -26.8" fill="none" stroke="#5c3cc8" stroke-width="14" stroke-linecap="round"/>
|
||||
<use href="#figure"/>
|
||||
</g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#4b2fa6" stroke-width="6" stroke-linejoin="miter"/>
|
||||
<path d="M10 728 L250 728 L246 776 L10 776 Z" fill="#4b2fa6"/>
|
||||
<text x="34" y="762" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="26" font-weight="700" letter-spacing="7" fill="#f7f4ff">VOID</text>
|
||||
<text x="830" y="60" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="6" fill="#170c3a">VOID / C</text>
|
||||
<text x="830" y="86" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="16" letter-spacing="3" fill="#b9520e">UNIMPRESSED</text>
|
||||
<g transform="translate(935 470) scale(1.42)"><path d="M-30 -112 C-60 -116 -90 -100 -120 -112 L-110 -98 L-126 -92 L-104 -86 L-116 -76 C-80 -80 -56 -92 -28 -98 Z" fill="#f2801f" stroke="#170c3a" stroke-width="3" stroke-linejoin="round"/>
|
||||
<ellipse cx="0" cy="4" rx="78" ry="7" fill="#d6cfe4"/>
|
||||
<ellipse cx="-20" cy="0" rx="13" ry="7" fill="#2e1c70" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<ellipse cx="22" cy="0" rx="13" ry="7" fill="#2e1c70" stroke="#170c3a" stroke-width="2.5"/>
|
||||
<path d="M-44 -114 L48 -114 C64 -76 74 -36 82 -2 L68 -10 L58 4 L44 -8 L30 6 L16 -6 L2 6 L-12 -6 L-26 6 L-40 -8 L-54 4 L-68 -10 L-78 -2 C-70 -40 -62 -80 -44 -114 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M20 -100 C40 -70 54 -36 60 0 L44 -8 L34 4 C30 -40 26 -70 14 -100 Z" fill="#2e1c70"/>
|
||||
<g fill="none" stroke="#170c3a" stroke-width="1.8" stroke-linecap="round"><path d="M-10 -90 L-20 -10"/><path d="M8 -86 L12 -10"/></g>
|
||||
<path d="M-40 -84 C-10 -72 20 -72 44 -84 L46 -66 C20 -56 -10 -56 -40 -66 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3"/>
|
||||
<circle cx="46" cy="-76" r="7" fill="#221a33" stroke="#170c3a" stroke-width="2"/>
|
||||
<circle cx="-42" cy="-74" r="7" fill="#221a33" stroke="#170c3a" stroke-width="2"/>
|
||||
<path d="M-6 -246 C20 -230 44 -206 54 -176 C62 -152 66 -130 68 -108 L-62 -108 C-62 -140 -50 -180 -30 -210 C-22 -224 -14 -236 -6 -246 Z" fill="#4b2fa6" stroke="#170c3a" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M0 -244 C40 -214 66 -170 64 -110 L50 -110 C54 -170 34 -210 0 -244 Z" fill="#2e1c70"/>
|
||||
<path d="M14 -206 C24 -192 46 -176 48 -152 C50 -134 36 -124 16 -124 C-6 -124 -24 -134 -24 -152 C-24 -174 4 -192 14 -206 Z" fill="#06030d" stroke="#2e1c70" stroke-width="5"/>
|
||||
<g fill="#f7f4ff" filter="url(#glowS2)"><path d="M-4 -160 L6 -162 L6 -148 A5 5 0 0 1 -4 -148 Z"/><path d="M20 -162 L28 -160 L28 -148 A4 4 0 0 1 20 -148 Z"/></g>
|
||||
<path d="M-50 -118 C-20 -104 30 -104 58 -118 C62 -108 60 -98 54 -94 C24 -84 -20 -84 -48 -94 C-54 -102 -54 -110 -50 -118 Z" fill="#f2801f" stroke="#170c3a" stroke-width="3"/>
|
||||
<path d="M30 -96 C34 -80 36 -66 34 -52 L44 -60 L50 -50 L52 -64 C48 -76 44 -86 42 -98 Z" fill="#b9520e" stroke="#170c3a" stroke-width="2.5"/></g>
|
||||
<text x="830" y="508" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">FULL BODY 2.5 HEADS</text>
|
||||
<g filter="url(#black)"><g transform="translate(1032 100) scale(0.2)"><g clip-path="url(#card)"><use href="#figure"/></g></g></g>
|
||||
<text x="1040" y="272" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">SILHOUETTE</text>
|
||||
<g filter="url(#black)"><g transform="translate(1059.3 294.4) scale(0.0667)"><g clip-path="url(#card)"><use href="#figure"/></g></g></g>
|
||||
<text x="1120" y="326" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">48 PX</text>
|
||||
<text x="830" y="548" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">HOOK</text>
|
||||
<text x="830" y="572" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">Lidded flat eyes and folded arms in front of</text>
|
||||
<text x="830" y="592" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="15" fill="#170c3a">the swirling portal door.</text>
|
||||
<text x="830" y="640" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#5b5470">PALETTE</text>
|
||||
<rect x="830" y="656" width="40" height="40" rx="6" fill="#4b2fa6" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="878" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#4b2fa6</text>
|
||||
<text x="878" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">robe, key</text>
|
||||
<rect x="950" y="656" width="40" height="40" rx="6" fill="#170c3a" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="998" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#170c3a</text>
|
||||
<text x="998" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">line / deep</text>
|
||||
<rect x="1070" y="656" width="40" height="40" rx="6" fill="#06030d" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="1118" y="672" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#06030d</text>
|
||||
<text x="1118" y="689" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">void face</text>
|
||||
<rect x="830" y="722" width="40" height="40" rx="6" fill="#f7f4ff" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="878" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#f7f4ff</text>
|
||||
<text x="878" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">eye light</text>
|
||||
<rect x="950" y="722" width="40" height="40" rx="6" fill="#f2801f" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="998" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#f2801f</text>
|
||||
<text x="998" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">scarf orange</text>
|
||||
<rect x="1070" y="722" width="40" height="40" rx="6" fill="#b892ff" stroke="#170c3a" stroke-width="2"/>
|
||||
<text x="1118" y="738" font-family="Consolas, monospace" font-size="12" fill="#170c3a">#b892ff</text>
|
||||
<text x="1118" y="755" font-family="'Segoe UI', system-ui, Arial, sans-serif" font-size="11" fill="#5b5470">glow violet</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
78
cast-designs/proposals/void/void-notes.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# Void: designer's notes, round 1
|
||||
|
||||
Canon is `cotsc-praxis/character-sheets/void-sheet.png`. Kept in all three: a pointed
|
||||
indigo hood, a face of pure black void with two tall white glowing slits, an orange
|
||||
scarf, dark gloves, the glowing violet document, and the swirl portal. No drawn face.
|
||||
Expression comes only from eye shape, hood tilt, the scarf and the hands.
|
||||
|
||||
Shared construction: a dome-cone hood with a soft cusp at the peak and a centre seam
|
||||
running down to the face opening. The opening is onion-shaped: it comes to a point
|
||||
under the seam and is round at the bottom. It sits right of centre for the
|
||||
three-quarter turn, and the far eye is narrower. Each material has one shadow tone and
|
||||
one highlight. A violet rim light sits on the right edge of the hood and robe. The line
|
||||
colour is `#170c3a`. The only blur is on the eye glow and the document glow.
|
||||
|
||||
## Directions
|
||||
|
||||
- **A, Classic Hood.** Hood, eyes and scarf, and nothing else. The scarf tail streams
|
||||
forward across the lower right of the frame, so the portrait points at the text box.
|
||||
The figure is shifted 70 px left to make room for it. This is the cleanest read at
|
||||
128 px and the only direction whose silhouette changes, because the streamer
|
||||
breaks the hood mound.
|
||||
- **B, Reading the Rules.** The glowing rulebook is raised to the void with both gloved
|
||||
hands, and the eyes peek over its top edge. The hood tilts 5 degrees forward. This
|
||||
is the moderator mid-ruling, and the strongest character beat. At 128 px the
|
||||
tablet glow pulls focus about as much as the eyes do.
|
||||
- **C, Unimpressed.** The eyes are lidded: flat tops tilted in, rounded bottoms. The
|
||||
hood leans back, the arms are crossed with the cuffs open toward the viewer, and
|
||||
the swirl portal sits behind the upper left.
|
||||
|
||||
## What changed after looking
|
||||
|
||||
1. The first hood was a narrow bullet that read as a thumb. I widened it into a bell
|
||||
that drapes onto the shoulders and gave the opening a point under the seam.
|
||||
2. My second pass overcorrected into a wizard cone. I rounded the upper sides into a
|
||||
dome and kept only a soft cusp.
|
||||
3. A's back tail read as an orange flame stuck to the hood. I removed it and turned
|
||||
the front tail into a long forked streamer toward the text box.
|
||||
4. C's portal sat dead centre behind the hood, so the swirl was hidden and read as
|
||||
concentric rings. I moved it to the upper left with two arms of 1.8 turns, so the
|
||||
spiral's eye shows. The crossed arms went from two stacked bars to two sleeves
|
||||
rising in opposite directions with dark cuff openings, and moved up 26 px out of
|
||||
the crop.
|
||||
5. At 128 px, C's lidded eyes shrank to dots. I made them wider and taller.
|
||||
6. In B's full body the tablet was drawn under the hood and was invisible. It is now
|
||||
drawn on top, over the lower face.
|
||||
|
||||
## Checks
|
||||
|
||||
- At 128 px (crop of the card), all three read as Void. A reads best, then C
|
||||
(the eyes now hold), then B (busy, but the gesture reads).
|
||||
- At 48 px (filled black), all three are a pointed hood mound. That shape alone should
|
||||
be unique in the cast, since nobody else is hooded. A adds the streamer and C a
|
||||
short back tail. B's tablet sits inside the hood outline and adds nothing to the
|
||||
silhouette.
|
||||
|
||||
## Palette collisions (canon wins, flagged for the cast-wide pass)
|
||||
|
||||
- The robe indigo `#4b2fa6` and glow `#b892ff` are near Nibu's violet `#9a6bff`. Void
|
||||
stays blue-indigo and dark, and Nibu should stay the lighter, redder violet. Run the
|
||||
side-by-side check against Nibu.
|
||||
- The scarf orange `#f2801f` is near Eureka's ember `#ff8a2a` and covers more than 10
|
||||
percent of the bust. It is canon and Void's most recognisable colour, so I did not
|
||||
change it. If the two collide side by side, shift Eureka's ember or render Void's
|
||||
scarf a touch redder, toward `#e8701a`.
|
||||
|
||||
## Round 2
|
||||
|
||||
- B: enlarge the tablet and let one corner break the hood outline on the text-box
|
||||
side, so the silhouette carries the prop.
|
||||
- C: the portal and the back tail crowd the left. Try C with no back tail, and give
|
||||
the portal a stone rim so it reads as the canon door rather than a disc.
|
||||
- A: try the streamer one band higher, crossing the hood's lower right edge, for more
|
||||
sweep.
|
||||
- All: test a darker ground inside the card, because Void is the one cast member whose
|
||||
canon lives on black. The void face currently gets its contrast from the lilac card.
|
||||
- Expression set: fix the eye line (around y 380) and the shoulder line, and vary the
|
||||
eyes only: tall (neutral), flat-lidded (unimpressed), slanted (stern), arcs
|
||||
(pleased), one slit (wink or side glance).
|
||||
BIN
cast-designs/proposals/weksa/weksa-A.png
Normal file
|
After Width: | Height: | Size: 226 KiB |
165
cast-designs/proposals/weksa/weksa-A.svg
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<clipPath id="rimR"><rect x="560" y="0" width="300" height="800"/></clipPath><g id="hairBack">
|
||||
<clipPath id="maneclip"><path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z"/></clipPath>
|
||||
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="#24140c"/>
|
||||
<g clip-path="url(#maneclip)">
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="#3b2418" transform="translate(-30 -26) scale(1.0)"/>
|
||||
<path d="M196 236 C210 200 236 172 266 154" fill="none" stroke="#6a4530" stroke-width="10" stroke-linecap="round"/>
|
||||
<g clip-path="url(#rimR)"><path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="none" stroke="#ff7a5c" stroke-width="10"/></g>
|
||||
</g>
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M600 420 C640 470 600 520 652 590 C610 580 580 540 590 500 C596 470 580 450 570 440 Z" fill="#24140c" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M186 470 C150 520 196 560 140 620 C190 610 214 560 206 520 C204 500 214 486 222 474 Z" fill="#3b2418" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<g id="knot"><path d="M245.2 52.9 Q230.4 50.5 220.4 31.7 Q239.8 34.2 248.4 30.2 Q241.3 23 246.9 5.7 Q256.1 12 265.9 12.6 Q261.3 -2 278.3 -19.4 Q284.2 1 292 6 Q297.2 -4.1 319.6 -7.9 Q314.8 4.8 318.1 12.6 Q330.8 4.7 354.6 11.3 Q338 22.1 335.6 30.2 Q345.3 31.1 355.2 46 Q346 47.3 338.8 52.9 Z" fill="#3b2418" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/><circle cx="292" cy="64" r="50" fill="#3b2418" stroke="#4a1410" stroke-width="6"/><path d="M257.0 54.0 C272.0 26.5 307.0 24.0 322.0 44.0" fill="none" stroke="#6a4530" stroke-width="9" stroke-linecap="round"/><path d="M252.0 79.0 Q292 109.0 334.5 76.5" fill="none" stroke="#24140c" stroke-width="4"/><rect x="247.0" y="91.5" width="90.0" height="16.0" rx="6" fill="#2d8a7a" stroke="#4a1410" stroke-width="4" transform="rotate(-8 292 99.0)"/><path d="M246 124 L366 2" stroke="#4a1410" stroke-width="19" stroke-linecap="round"/><path d="M246 124 L366 2" stroke="#6b3a24" stroke-width="12" stroke-linecap="round"/><circle cx="351.6" cy="16.6" r="11.399999999999999" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/><circle cx="336" cy="32.5" r="11.399999999999999" fill="#d9483b" stroke="#4a1410" stroke-width="4"/><circle cx="320.4" cy="48.4" r="11.399999999999999" fill="#c9a24a" stroke="#4a1410" stroke-width="4"/><path d="M322 132 L214 10" stroke="#4a1410" stroke-width="19" stroke-linecap="round"/><path d="M322 132 L214 10" stroke="#6b3a24" stroke-width="12" stroke-linecap="round"/><circle cx="227" cy="24.6" r="11.399999999999999" fill="#d9483b" stroke="#4a1410" stroke-width="4"/><circle cx="241" cy="40.5" r="11.399999999999999" fill="#c9a24a" stroke="#4a1410" stroke-width="4"/></g>
|
||||
</g><g id="torso">
|
||||
<g id="pack">
|
||||
<path d="M80 610 L52 236" stroke="#4a1410" stroke-width="16" stroke-linecap="round"/>
|
||||
<path d="M80 610 L52 236" stroke="#6b3a24" stroke-width="9" stroke-linecap="round"/>
|
||||
<circle cx="52" cy="232" r="11" fill="#c9a24a" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M30 262 L132 254 L138 386 L86 366 L34 396 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M50 290 L122 285 M56 356 L88 340 L124 358" fill="none" stroke="#2d8a7a" stroke-width="6"/>
|
||||
<path d="M84 300 l14 18 l-14 18 l-14 -18 Z" fill="#d9483b" stroke="#4a1410" stroke-width="3"/>
|
||||
<g transform="rotate(-24 116.0 610)"><rect x="96" y="440" width="40" height="170" rx="8" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/><ellipse cx="116.0" cy="446" rx="17.0" ry="8" fill="#d3bf98" stroke="#4a1410" stroke-width="4"/><rect x="96" y="480" width="40" height="14" fill="#2d8a7a" stroke="#4a1410" stroke-width="3"/></g><g transform="rotate(-12 169.0 616)"><rect x="146" y="420" width="46" height="196" rx="8" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/><ellipse cx="169.0" cy="426" rx="20.0" ry="8" fill="#d3bf98" stroke="#4a1410" stroke-width="4"/><rect x="146" y="460" width="46" height="14" fill="#2d8a7a" stroke="#4a1410" stroke-width="3"/></g>
|
||||
<g transform="rotate(8 230 600)">
|
||||
<rect x="196" y="486" width="40" height="126" rx="4" fill="#2d8a7a" stroke="#4a1410" stroke-width="6"/>
|
||||
<path d="M204 506 h24 M204 590 h24" stroke="#c9a24a" stroke-width="4"/>
|
||||
<path d="M208 530 l8 14 l8 -14 M208 556 q8 10 16 0" fill="none" stroke="#f0e2c4" stroke-width="3.5" stroke-linecap="round"/>
|
||||
<rect x="236" y="512" width="36" height="100" rx="4" fill="#d9483b" stroke="#4a1410" stroke-width="6"/>
|
||||
<path d="M244 532 h20 M244 590 h20" stroke="#f0e2c4" stroke-width="4"/>
|
||||
<path d="M214 486 v-30 l8 8 l8 -8 v30" fill="#d9483b" stroke="#4a1410" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<path d="M60 600 C58 560 120 560 300 572 L318 800 L70 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M60 600 C120 580 250 580 306 600 L300 690 C220 700 130 700 72 690 Z" fill="#4f2918" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<circle cx="188" cy="684" r="34" fill="#c9a24a" stroke="#4a1410" stroke-width="6"/>
|
||||
<circle cx="188" cy="684" r="22" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/>
|
||||
<g stroke="#f0e2c4" stroke-width="3" stroke-linecap="round"><path d="M188 666 v6" transform="rotate(0 188 684)"/><path d="M188 666 v6" transform="rotate(45 188 684)"/><path d="M188 666 v6" transform="rotate(90 188 684)"/><path d="M188 666 v6" transform="rotate(135 188 684)"/><path d="M188 666 v6" transform="rotate(180 188 684)"/><path d="M188 666 v6" transform="rotate(225 188 684)"/><path d="M188 666 v6" transform="rotate(270 188 684)"/><path d="M188 666 v6" transform="rotate(315 188 684)"/></g>
|
||||
<path d="M188 684 l0 -14" stroke="#4a1410" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M160 800 C165 700 220 650 312 630 Q405 614 494 628 C580 646 632 704 642 800 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="7"/>
|
||||
<path d="M520 640 C590 664 630 720 640 800 L560 800 C556 740 540 690 506 660 Z" fill="#d3bf98"/>
|
||||
<path d="M190 800 C196 712 236 668 316 642 L344 662 C280 690 252 740 248 800 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M610 800 C602 724 566 680 494 650 L470 668 C530 696 552 742 556 800 Z" fill="#1d5f55" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<g fill="none" stroke="#f0e2c4" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><path d="M236 700 l10 -14 l10 14" /><path d="M262 676 v16 h12" /><path d="M290 660 q8 -10 16 0" /><path d="M318 650 l12 0 l-6 12 z" /><path d="M500 650 q8 10 16 0" /><path d="M530 664 v14 h-10" /><path d="M560 684 l10 -12 l6 14" /><path d="M586 712 q6 -12 14 -2" /></g>
|
||||
<path d="M344 662 L370 612 L446 610 L470 668 L452 800 L360 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M372 616 L404 690 L440 614 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M352 640 Q404 720 462 640" fill="none" stroke="#4a1410" stroke-width="10" stroke-dasharray="0.1 18" stroke-linecap="round"/>
|
||||
<path d="M352 640 Q404 720 462 640" fill="none" stroke="#2d8a7a" stroke-width="7" stroke-dasharray="0.1 18" stroke-linecap="round"/>
|
||||
<path d="M360 646 Q404 730 455 646" fill="none" stroke="#c9a24a" stroke-width="5" stroke-dasharray="0.1 14" stroke-linecap="round"/>
|
||||
<circle cx="404" cy="700" r="14" fill="#d9483b" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M398 700 h12 M404 694 v12" stroke="#f0e2c4" stroke-width="3"/>
|
||||
<path d="M600 700 C620 730 632 760 636 800" fill="none" stroke="#ff7a5c" stroke-width="7"/>
|
||||
<path d="M300 636 L336 626 L580 800 L516 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<rect x="404" y="688" width="38" height="32" rx="4" fill="none" stroke="#c9a24a" stroke-width="7" transform="rotate(36 423 704)"/>
|
||||
</g><g id="face">
|
||||
<clipPath id="faceclip"><path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z"/></clipPath>
|
||||
<path d="M368 505 L368 612 Q405 630 448 610 L446 505 Z" fill="#a8714f" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M368 520 Q410 585 447 520 L447 572 Q405 596 368 572 Z" fill="#85533a"/>
|
||||
<path d="M262 418 C232 400 214 430 226 462 C236 490 262 492 274 478 Z" fill="#a8714f" stroke="#4a1410" stroke-width="5"/>
|
||||
<path d="M252 436 C240 438 238 458 252 466" fill="none" stroke="#85533a" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="#a8714f"/>
|
||||
<g clip-path="url(#faceclip)">
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z" fill="#85533a" transform="translate(10 16)"/>
|
||||
<path d="M535 330 C548 420 520 500 452 540 L560 560 L570 330 Z" fill="#85533a"/>
|
||||
</g>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<ellipse cx="316" cy="506" rx="24" ry="9" fill="#d9483b" opacity="0.4"/>
|
||||
<ellipse cx="496" cy="504" rx="14" ry="7" fill="#d9483b" opacity="0.4"/>
|
||||
<clipPath id="eyen"><path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z"/></clipPath>
|
||||
<path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyen)">
|
||||
<ellipse cx="330" cy="386.1" rx="56" ry="29.4" fill="#e7cfc2"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="#b8742a"/>
|
||||
<ellipse cx="339.6" cy="418.3" rx="33.6" ry="28.6" fill="#6b3a14"/>
|
||||
<path d="M314.6 458.4 C323.6 490.6 355.6 490.6 364.6 458.4 C352.4 475.4 326.8 475.4 314.6 458.4 Z" fill="#f2bc62"/>
|
||||
<ellipse cx="339.6" cy="444.6" rx="13.4" ry="23" fill="#331806"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="none" stroke="#331806" stroke-width="2.8"/>
|
||||
<ellipse cx="327.4" cy="429.4" rx="9.6" ry="11.1" fill="#ffffff" transform="rotate(-25 327.4 429.4)"/>
|
||||
<circle cx="353" cy="467.6" r="3.8" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M286.8 430.2 C290 396.9 307.6 391 330 391 C354 391 371.6 400.8 373.2 428.2" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M298 408.6 L272.4 398.8 L288.4 428.2 Z" fill="#4a1410"/>
|
||||
<path d="M312.4 491 Q330 495.9 347.6 490" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/><clipPath id="eyef"><path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z"/></clipPath>
|
||||
<path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyef)">
|
||||
<ellipse cx="470" cy="388.3" rx="42" ry="28.2" fill="#e7cfc2"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="#b8742a"/>
|
||||
<ellipse cx="479.6" cy="419.2" rx="25.2" ry="27.4" fill="#6b3a14"/>
|
||||
<path d="M460.9 457.6 C467.6 488.6 491.6 488.6 498.3 457.6 C489.2 474 470 474 460.9 457.6 Z" fill="#f2bc62"/>
|
||||
<ellipse cx="479.6" cy="444.4" rx="10.1" ry="22.1" fill="#331806"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="none" stroke="#331806" stroke-width="2.1"/>
|
||||
<ellipse cx="470.5" cy="429.8" rx="7.2" ry="10.6" fill="#ffffff" transform="rotate(-25 470.5 429.8)"/>
|
||||
<circle cx="489.7" cy="466.5" r="2.9" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M437.6 430.6 C440 398.6 453.2 393 470 393 C488 393 501.2 402.4 502.4 428.7" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M494 408 L513.2 402.4 L501.2 428.7 Z" fill="#4a1410"/>
|
||||
<path d="M456.8 488.9 Q470 493.6 483.2 487.9" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/>
|
||||
<path d="M424 470 L433 482 L423 485" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<clipPath id="mouthc"><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z"/></clipPath><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z" fill="#5a1712"/><g clip-path="url(#mouthc)"><ellipse cx="425" cy="525" rx="16" ry="9" fill="#e0675a"/></g><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<g fill="none" stroke="#4a1410" stroke-width="9">
|
||||
<circle cx="331" cy="442" r="58"/><ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/><path d="M273 436 L246 432" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g fill="none" stroke="#c9a24a" stroke-width="4.5">
|
||||
<circle cx="331" cy="442" r="58"/><ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/><path d="M273 436 L246 432" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M298 408 L316 394 M294 428 L330 400" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M452 410 L466 398" stroke="#ffffff" stroke-width="5" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z" fill="#3b2418"/>
|
||||
<clipPath id="bangclip"><path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z"/></clipPath>
|
||||
<g clip-path="url(#bangclip)">
|
||||
<path d="M300 300 Q320 284 342 278 M370 270 Q392 264 414 266 M444 270 Q466 274 486 286" fill="none" stroke="#6a4530" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M352 392 Q350 330 330 280 M416 386 Q420 320 400 270 M472 378 Q480 320 470 270 M238 514 Q226 400 240 300" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 " fill="none" stroke="#4a1410" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M288 374 Q324 356 364 368" fill="none" stroke="#3b2418" stroke-width="7" stroke-linecap="round"/><path d="M446 368 Q474 356 500 372" fill="none" stroke="#3b2418" stroke-width="6" stroke-linecap="round"/>
|
||||
<circle cx="240" cy="488" r="10" fill="none" stroke="#4a1410" stroke-width="8"/><circle cx="240" cy="488" r="10" fill="none" stroke="#c9a24a" stroke-width="4"/><path d="M240 498 L240 516" stroke="#4a1410" stroke-width="4"/><path d="M240 512 l12 14 l-12 14 l-12 -14 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/>
|
||||
|
||||
</g>
|
||||
<g id="bust">
|
||||
<g transform="translate(34 44) scale(0.94)"><use href="#hairBack"/><use href="#torso"/><use href="#face"/></g>
|
||||
</g>
|
||||
<g id="mini">
|
||||
<g stroke="#4a1410" stroke-width="3"><path d="M-60 140 L-62 70 L-14 74 L-14 140 Z" fill="#6b3a24"/><rect x="-58" y="40" width="12" height="36" rx="3" fill="#f0e2c4"/><rect x="-44" y="30" width="13" height="46" rx="3" fill="#f0e2c4"/><rect x="-30" y="48" width="12" height="28" fill="#2d8a7a"/></g>
|
||||
<g transform="scale(0.30) translate(-390 -300)"><use href="#hairBack"/></g>
|
||||
<g stroke="#4a1410" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M-26 160 L-26 200 L-4 200 L4 170 L12 200 L34 200 L36 160 Z" fill="#6b3a24"/>
|
||||
<path d="M-30 196 h28 v10 q0 10 -10 10 h-20 q-6 0 -6 -8 Z" fill="#4f2918"/>
|
||||
<path d="M10 196 h26 q12 0 12 12 v2 q0 6 -6 6 h-32 Z" fill="#4f2918"/>
|
||||
<path d="M-40 168 C-42 116 -30 86 -6 78 L28 78 C50 86 60 116 58 168 Z" fill="#f0e2c4"/>
|
||||
<path d="M-40 168 L58 168 L56 156 L-40 156 Z" fill="#2d8a7a"/>
|
||||
<path d="M-6 78 L-14 120 L-6 168 L20 168 L30 120 L24 78 Z" fill="#6b3a24"/>
|
||||
<path d="M-2 80 L10 96 L20 80 Z" fill="#f0e2c4"/>
|
||||
<path d="M-6 80 L46 150" stroke-width="7"/><path d="M-6 80 L46 150" stroke="#4f2918" stroke-width="4"/>
|
||||
<path d="M-34 90 C-48 104 -46 124 -32 132" fill="none" stroke-width="14"/>
|
||||
<path d="M-34 90 C-48 104 -46 124 -32 132" fill="none" stroke="#f0e2c4" stroke-width="9"/>
|
||||
<circle cx="-30" cy="134" r="7" fill="#a8714f"/>
|
||||
|
||||
</g>
|
||||
<g transform="scale(0.30) translate(-390 -300)"><use href="#face"/></g>
|
||||
</g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe6"/>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#efe2cf"/>
|
||||
<path d="M500 24 L790 24 L730 776 L470 776 Z" fill="#e9d6bf"/>
|
||||
<g clip-path="url(#card)"><use href="#bust"/></g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#d9483b" stroke-width="5"/>
|
||||
<path d="M14 728 L250 728 L246 776 L10 776 Z" fill="#d9483b"/>
|
||||
<text x="34" y="762" font-family="Consolas, 'Courier New', monospace" font-size="26" font-weight="700" letter-spacing="6" fill="#fff4e8">WEKSA</text>
|
||||
<text x="830" y="58" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="5" fill="#4a1410">WEKSA / A</text>
|
||||
<text x="830" y="84" font-family="Segoe UI, Arial, sans-serif" font-size="17" fill="#d9483b" letter-spacing="2">THE WALKING LIBRARY</text>
|
||||
<g transform="translate(940 215) scale(1.25)"><use href="#mini"/></g>
|
||||
<text x="830" y="512" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">FULL BODY 2.5 HEADS</text>
|
||||
<g transform="translate(1048 112) scale(0.17)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1048" y="262" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">SILHOUETTE</text>
|
||||
<g transform="translate(1048 290) scale(0.06)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1104" y="322" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">48 PX</text>
|
||||
<text x="830" y="556" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">HOOK</text>
|
||||
<text x="830" y="582" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#2a1a16">Scrolls, books and a glyph banner tower over her.</text>
|
||||
<text x="830" y="626" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">PALETTE</text>
|
||||
<rect x="830" y="640" width="34" height="34" rx="4" fill="#d9483b" stroke="#4a1410" stroke-width="2"/><text x="869" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">d9483b</text><text x="869" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">terracotta</text><rect x="922" y="640" width="34" height="34" rx="4" fill="#4a1410" stroke="#4a1410" stroke-width="2"/><text x="961" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">4a1410</text><text x="961" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">line</text><rect x="1014" y="640" width="34" height="34" rx="4" fill="#3b2418" stroke="#4a1410" stroke-width="2"/><text x="1053" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">3b2418</text><text x="1053" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">hair, leather</text><rect x="1106" y="640" width="34" height="34" rx="4" fill="#f0e2c4" stroke="#4a1410" stroke-width="2"/><text x="1145" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">f0e2c4</text><text x="1145" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">coat</text><rect x="830" y="702" width="34" height="34" rx="4" fill="#2d8a7a" stroke="#4a1410" stroke-width="2"/><text x="869" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">2d8a7a</text><text x="869" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">embroidery</text><rect x="922" y="702" width="34" height="34" rx="4" fill="#c9a24a" stroke="#4a1410" stroke-width="2"/><text x="961" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">c9a24a</text><text x="961" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">brass</text><rect x="1014" y="702" width="34" height="34" rx="4" fill="#a8714f" stroke="#4a1410" stroke-width="2"/><text x="1053" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">a8714f</text><text x="1053" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">skin</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
BIN
cast-designs/proposals/weksa/weksa-B.png
Normal file
|
After Width: | Height: | Size: 236 KiB |
170
cast-designs/proposals/weksa/weksa-B.svg
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<radialGradient id="glow"><stop offset="0.45" stop-color="#8fe3d3" stop-opacity="0.75"/><stop offset="1" stop-color="#8fe3d3" stop-opacity="0"/></radialGradient><clipPath id="rimR"><rect x="560" y="0" width="300" height="800"/></clipPath><g id="hairBack">
|
||||
<clipPath id="maneclip"><path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z"/></clipPath>
|
||||
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="#24140c"/>
|
||||
<g clip-path="url(#maneclip)">
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="#3b2418" transform="translate(-30 -26) scale(1.0)"/>
|
||||
<path d="M196 236 C210 200 236 172 266 154" fill="none" stroke="#6a4530" stroke-width="10" stroke-linecap="round"/>
|
||||
<g clip-path="url(#rimR)"><path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="none" stroke="#ff7a5c" stroke-width="10"/></g>
|
||||
</g>
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M600 420 C640 470 600 520 652 590 C610 580 580 540 590 500 C596 470 580 450 570 440 Z" fill="#24140c" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M186 470 C150 520 196 560 140 620 C190 610 214 560 206 520 C204 500 214 486 222 474 Z" fill="#3b2418" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<g id="knot"><path d="M245.2 52.9 Q230.4 50.5 220.4 31.7 Q239.8 34.2 248.4 30.2 Q241.3 23 246.9 5.7 Q256.1 12 265.9 12.6 Q261.3 -2 278.3 -19.4 Q284.2 1 292 6 Q297.2 -4.1 319.6 -7.9 Q314.8 4.8 318.1 12.6 Q330.8 4.7 354.6 11.3 Q338 22.1 335.6 30.2 Q345.3 31.1 355.2 46 Q346 47.3 338.8 52.9 Z" fill="#3b2418" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/><circle cx="292" cy="64" r="50" fill="#3b2418" stroke="#4a1410" stroke-width="6"/><path d="M257.0 54.0 C272.0 26.5 307.0 24.0 322.0 44.0" fill="none" stroke="#6a4530" stroke-width="9" stroke-linecap="round"/><path d="M252.0 79.0 Q292 109.0 334.5 76.5" fill="none" stroke="#24140c" stroke-width="4"/><rect x="247.0" y="91.5" width="90.0" height="16.0" rx="6" fill="#2d8a7a" stroke="#4a1410" stroke-width="4" transform="rotate(-8 292 99.0)"/><path d="M262 118 C220 60 214 10 236 -30 C262 10 270 70 262 118 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="5"/><path d="M262 118 L238 -20" stroke="#4a1410" stroke-width="3"/><path d="M232 0 l14 10 M228 24 l16 10 M232 50 l14 8" stroke="#d3bf98" stroke-width="3"/><path d="M330 132 L230 14" stroke="#4a1410" stroke-width="19" stroke-linecap="round"/><path d="M330 132 L230 14" stroke="#6b3a24" stroke-width="12" stroke-linecap="round"/><circle cx="242" cy="28.2" r="11.399999999999999" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/><circle cx="255" cy="43.5" r="11.399999999999999" fill="#d9483b" stroke="#4a1410" stroke-width="4"/></g>
|
||||
</g><g id="torso">
|
||||
|
||||
<path d="M160 800 C165 700 220 650 312 630 Q405 614 494 628 C580 646 632 704 642 800 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="7"/>
|
||||
<path d="M520 640 C590 664 630 720 640 800 L560 800 C556 740 540 690 506 660 Z" fill="#d3bf98"/>
|
||||
<path d="M190 800 C196 712 236 668 316 642 L344 662 C280 690 252 740 248 800 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M610 800 C602 724 566 680 494 650 L470 668 C530 696 552 742 556 800 Z" fill="#1d5f55" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<g fill="none" stroke="#f0e2c4" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><path d="M236 700 l10 -14 l10 14" /><path d="M262 676 v16 h12" /><path d="M290 660 q8 -10 16 0" /><path d="M318 650 l12 0 l-6 12 z" /><path d="M500 650 q8 10 16 0" /><path d="M530 664 v14 h-10" /><path d="M560 684 l10 -12 l6 14" /><path d="M586 712 q6 -12 14 -2" /></g>
|
||||
<path d="M344 662 L370 612 L446 610 L470 668 L452 800 L360 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M372 616 L404 690 L440 614 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M352 640 Q404 720 462 640" fill="none" stroke="#4a1410" stroke-width="10" stroke-dasharray="0.1 18" stroke-linecap="round"/>
|
||||
<path d="M352 640 Q404 720 462 640" fill="none" stroke="#2d8a7a" stroke-width="7" stroke-dasharray="0.1 18" stroke-linecap="round"/>
|
||||
<path d="M360 646 Q404 730 455 646" fill="none" stroke="#c9a24a" stroke-width="5" stroke-dasharray="0.1 14" stroke-linecap="round"/>
|
||||
<circle cx="404" cy="700" r="14" fill="#d9483b" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M398 700 h12 M404 694 v12" stroke="#f0e2c4" stroke-width="3"/>
|
||||
<path d="M600 700 C620 730 632 760 636 800" fill="none" stroke="#ff7a5c" stroke-width="7"/>
|
||||
<path d="M300 636 L336 626 L580 800 L516 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/><g transform="rotate(-10 280 740)">
|
||||
<rect x="226" y="676" width="104" height="140" rx="6" fill="#d9483b" stroke="#4a1410" stroke-width="6"/>
|
||||
<rect x="226" y="676" width="22" height="140" fill="#a8352b" stroke="#4a1410" stroke-width="4"/>
|
||||
<circle cx="292" cy="730" r="22" fill="none" stroke="#c9a24a" stroke-width="5"/>
|
||||
<path d="M292 714 l12 16 l-12 16 l-12 -16 Z" fill="#c9a24a"/>
|
||||
<path d="M310 676 v-26 l8 8 l8 -8 v26" fill="#2d8a7a" stroke="#4a1410" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</g><g id="face">
|
||||
<clipPath id="faceclip"><path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z"/></clipPath>
|
||||
<path d="M368 505 L368 612 Q405 630 448 610 L446 505 Z" fill="#a8714f" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M368 520 Q410 585 447 520 L447 572 Q405 596 368 572 Z" fill="#85533a"/>
|
||||
<path d="M262 418 C232 400 214 430 226 462 C236 490 262 492 274 478 Z" fill="#a8714f" stroke="#4a1410" stroke-width="5"/>
|
||||
<path d="M252 436 C240 438 238 458 252 466" fill="none" stroke="#85533a" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="#a8714f"/>
|
||||
<g clip-path="url(#faceclip)">
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z" fill="#85533a" transform="translate(10 16)"/>
|
||||
<path d="M535 330 C548 420 520 500 452 540 L560 560 L570 330 Z" fill="#85533a"/>
|
||||
</g>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<ellipse cx="316" cy="506" rx="24" ry="9" fill="#d9483b" opacity="0.4"/>
|
||||
<ellipse cx="496" cy="504" rx="14" ry="7" fill="#d9483b" opacity="0.4"/>
|
||||
<clipPath id="eyen"><path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z"/></clipPath>
|
||||
<path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyen)">
|
||||
<ellipse cx="330" cy="386.1" rx="56" ry="29.4" fill="#e7cfc2"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="#b8742a"/>
|
||||
<ellipse cx="339.6" cy="418.3" rx="33.6" ry="28.6" fill="#6b3a14"/>
|
||||
<path d="M314.6 458.4 C323.6 490.6 355.6 490.6 364.6 458.4 C352.4 475.4 326.8 475.4 314.6 458.4 Z" fill="#f2bc62"/>
|
||||
<ellipse cx="339.6" cy="444.6" rx="13.4" ry="23" fill="#331806"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="none" stroke="#331806" stroke-width="2.8"/>
|
||||
<ellipse cx="327.4" cy="429.4" rx="9.6" ry="11.1" fill="#ffffff" transform="rotate(-25 327.4 429.4)"/>
|
||||
<circle cx="353" cy="467.6" r="3.8" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M286.8 430.2 C290 396.9 307.6 391 330 391 C354 391 371.6 400.8 373.2 428.2" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M298 408.6 L272.4 398.8 L288.4 428.2 Z" fill="#4a1410"/>
|
||||
<path d="M312.4 491 Q330 495.9 347.6 490" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/><clipPath id="eyef"><path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z"/></clipPath>
|
||||
<path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyef)">
|
||||
<ellipse cx="470" cy="388.3" rx="42" ry="28.2" fill="#e7cfc2"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="#b8742a"/>
|
||||
<ellipse cx="479.6" cy="419.2" rx="25.2" ry="27.4" fill="#6b3a14"/>
|
||||
<path d="M460.9 457.6 C467.6 488.6 491.6 488.6 498.3 457.6 C489.2 474 470 474 460.9 457.6 Z" fill="#f2bc62"/>
|
||||
<ellipse cx="479.6" cy="444.4" rx="10.1" ry="22.1" fill="#331806"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="none" stroke="#331806" stroke-width="2.1"/>
|
||||
<ellipse cx="470.5" cy="429.8" rx="7.2" ry="10.6" fill="#ffffff" transform="rotate(-25 470.5 429.8)"/>
|
||||
<circle cx="489.7" cy="466.5" r="2.9" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M437.6 430.6 C440 398.6 453.2 393 470 393 C488 393 501.2 402.4 502.4 428.7" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M494 408 L513.2 402.4 L501.2 428.7 Z" fill="#4a1410"/>
|
||||
<path d="M456.8 488.9 Q470 493.6 483.2 487.9" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/>
|
||||
<path d="M424 470 L433 482 L423 485" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M404 506 Q426 516 446 498" fill="none" stroke="#4a1410" stroke-width="4" stroke-linecap="round"/><path d="M442 494 l8 2" stroke="#4a1410" stroke-width="3" stroke-linecap="round"/>
|
||||
<g fill="none" stroke="#4a1410" stroke-width="9">
|
||||
<circle cx="331" cy="442" r="58"/><ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/><path d="M273 436 L246 432" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g fill="none" stroke="#c9a24a" stroke-width="4.5">
|
||||
<circle cx="331" cy="442" r="58"/><ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/><path d="M273 436 L246 432" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M298 408 L316 394 M294 428 L330 400" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M452 410 L466 398" stroke="#ffffff" stroke-width="5" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z" fill="#3b2418"/>
|
||||
<clipPath id="bangclip"><path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z"/></clipPath>
|
||||
<g clip-path="url(#bangclip)">
|
||||
<path d="M300 300 Q320 284 342 278 M370 270 Q392 264 414 266 M444 270 Q466 274 486 286" fill="none" stroke="#6a4530" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M352 392 Q350 330 330 280 M416 386 Q420 320 400 270 M472 378 Q480 320 470 270 M238 514 Q226 400 240 300" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 " fill="none" stroke="#4a1410" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M290 368 Q326 360 364 372" fill="none" stroke="#3b2418" stroke-width="7" stroke-linecap="round"/><path d="M444 372 Q472 358 498 362" fill="none" stroke="#3b2418" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M240 482 L240 506" stroke="#4a1410" stroke-width="4"/><circle cx="240" cy="526" r="22" fill="#c9a24a" stroke="#4a1410" stroke-width="5"/><circle cx="240" cy="526" r="13" fill="#2d8a7a" stroke="#4a1410" stroke-width="3"/><g stroke="#4a1410" stroke-width="2.5"><path d="M240 506 v5" transform="rotate(0 240 526)"/><path d="M240 506 v5" transform="rotate(45 240 526)"/><path d="M240 506 v5" transform="rotate(90 240 526)"/><path d="M240 506 v5" transform="rotate(135 240 526)"/><path d="M240 506 v5" transform="rotate(180 240 526)"/><path d="M240 506 v5" transform="rotate(225 240 526)"/><path d="M240 506 v5" transform="rotate(270 240 526)"/><path d="M240 506 v5" transform="rotate(315 240 526)"/></g><circle cx="240" cy="478" r="7" fill="#c9a24a" stroke="#4a1410" stroke-width="3"/>
|
||||
|
||||
</g><g id="tablet" transform="rotate(7 660 560)">
|
||||
<ellipse cx="664" cy="540" rx="132" ry="168" fill="url(#glow)"/>
|
||||
<rect x="572" y="420" width="178" height="238" rx="12" fill="#6b3a24" stroke="#4a1410" stroke-width="7"/>
|
||||
<rect x="588" y="436" width="146" height="206" rx="6" fill="#1d5f55" stroke="#4a1410" stroke-width="4"/>
|
||||
<g fill="none" stroke="#8fe3d3" stroke-width="5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="661" cy="514" r="48"/>
|
||||
<path d="M661 480 l30 34 l-30 34 l-30 -34 Z"/>
|
||||
<path d="M661 498 l14 16 l-14 16 l-14 -16 Z" fill="#8fe3d3"/>
|
||||
<path d="M604 590 h50 M666 590 h50 M604 608 h28 M642 608 h56 M604 626 h70"/>
|
||||
</g>
|
||||
<g stroke="#8fe3d3" stroke-width="4" stroke-linecap="round"><path d="M661 458 v8" transform="rotate(0 661 514)"/><path d="M661 458 v8" transform="rotate(30 661 514)"/><path d="M661 458 v8" transform="rotate(60 661 514)"/><path d="M661 458 v8" transform="rotate(90 661 514)"/><path d="M661 458 v8" transform="rotate(120 661 514)"/><path d="M661 458 v8" transform="rotate(150 661 514)"/><path d="M661 458 v8" transform="rotate(180 661 514)"/><path d="M661 458 v8" transform="rotate(210 661 514)"/><path d="M661 458 v8" transform="rotate(240 661 514)"/><path d="M661 458 v8" transform="rotate(270 661 514)"/><path d="M661 458 v8" transform="rotate(300 661 514)"/><path d="M661 458 v8" transform="rotate(330 661 514)"/></g>
|
||||
<circle cx="572" cy="420" r="10" fill="#c9a24a" stroke="#4a1410" stroke-width="4"/>
|
||||
<circle cx="750" cy="420" r="10" fill="#c9a24a" stroke="#4a1410" stroke-width="4"/>
|
||||
</g>
|
||||
<g id="hand" transform="translate(-30 34)">
|
||||
<path d="M548 800 C548 740 560 700 600 680 L660 700 C640 740 640 770 650 800 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M592 684 L664 704 L656 726 L586 706 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M590 700 Q620 718 660 716" fill="none" stroke="#4a1410" stroke-width="12" stroke-dasharray="0.1 14" stroke-linecap="round"/>
|
||||
<path d="M590 700 Q620 718 660 716" fill="none" stroke="#c9a24a" stroke-width="8" stroke-dasharray="0.1 14" stroke-linecap="round"/>
|
||||
<path d="M598 690 C584 650 590 620 608 612 C612 600 632 598 640 610 C650 600 668 606 668 622 C680 624 686 640 676 660 C670 684 648 694 620 694 Z" fill="#a8714f" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M640 612 L638 640 M668 624 L660 650" stroke="#4a1410" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M610 616 C604 596 608 584 620 582 C632 580 638 590 636 606" fill="#a8714f" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<g id="bust">
|
||||
<g transform="translate(20 44) scale(0.94)"><use href="#hairBack"/><use href="#torso"/><use href="#face"/><use href="#tablet"/><use href="#hand"/></g>
|
||||
</g>
|
||||
<g id="mini">
|
||||
|
||||
<g transform="scale(0.30) translate(-390 -300)"><use href="#hairBack"/></g>
|
||||
<g stroke="#4a1410" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M-26 160 L-26 200 L-4 200 L4 170 L12 200 L34 200 L36 160 Z" fill="#6b3a24"/>
|
||||
<path d="M-30 196 h28 v10 q0 10 -10 10 h-20 q-6 0 -6 -8 Z" fill="#4f2918"/>
|
||||
<path d="M10 196 h26 q12 0 12 12 v2 q0 6 -6 6 h-32 Z" fill="#4f2918"/>
|
||||
<path d="M-40 168 C-42 116 -30 86 -6 78 L28 78 C50 86 60 116 58 168 Z" fill="#f0e2c4"/>
|
||||
<path d="M-40 168 L58 168 L56 156 L-40 156 Z" fill="#2d8a7a"/>
|
||||
<path d="M-6 78 L-14 120 L-6 168 L20 168 L30 120 L24 78 Z" fill="#6b3a24"/>
|
||||
<path d="M-2 80 L10 96 L20 80 Z" fill="#f0e2c4"/>
|
||||
<path d="M-6 80 L46 150" stroke-width="7"/><path d="M-6 80 L46 150" stroke="#4f2918" stroke-width="4"/>
|
||||
<path d="M-34 90 C-48 104 -46 124 -32 132" fill="none" stroke-width="14"/>
|
||||
<path d="M-34 90 C-48 104 -46 124 -32 132" fill="none" stroke="#f0e2c4" stroke-width="9"/>
|
||||
<circle cx="-30" cy="134" r="7" fill="#a8714f"/>
|
||||
<g transform="translate(52 96) rotate(8)"><rect x="-4" y="-34" width="34" height="44" rx="4" fill="#6b3a24"/><rect x="2" y="-28" width="22" height="32" rx="2" fill="#1d5f55"/><path d="M13 -22 l7 8 l-7 8 l-7 -8 Z" fill="none" stroke="#8fe3d3" stroke-width="2"/></g><circle cx="50" cy="104" r="7" fill="#a8714f"/><rect x="-34" y="118" width="18" height="24" rx="2" fill="#d9483b"/>
|
||||
</g>
|
||||
<g transform="scale(0.30) translate(-390 -300)"><use href="#face"/></g>
|
||||
</g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe6"/>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#efe2cf"/>
|
||||
<path d="M500 24 L790 24 L730 776 L470 776 Z" fill="#e9d6bf"/>
|
||||
<g clip-path="url(#card)"><use href="#bust"/></g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#d9483b" stroke-width="5"/>
|
||||
<path d="M14 728 L250 728 L246 776 L10 776 Z" fill="#d9483b"/>
|
||||
<text x="34" y="762" font-family="Consolas, 'Courier New', monospace" font-size="26" font-weight="700" letter-spacing="6" fill="#fff4e8">WEKSA</text>
|
||||
<text x="830" y="58" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="5" fill="#4a1410">WEKSA / B</text>
|
||||
<text x="830" y="84" font-family="Segoe UI, Arial, sans-serif" font-size="17" fill="#d9483b" letter-spacing="2">THE CIPHER TABLET</text>
|
||||
<g transform="translate(930 215) scale(1.25)"><use href="#mini"/></g>
|
||||
<text x="830" y="512" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">FULL BODY 2.5 HEADS</text>
|
||||
<g transform="translate(1048 112) scale(0.17)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1048" y="262" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">SILHOUETTE</text>
|
||||
<g transform="translate(1048 290) scale(0.06)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1104" y="322" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">48 PX</text>
|
||||
<text x="830" y="556" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">HOOK</text>
|
||||
<text x="830" y="582" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#2a1a16">Her glowing cipher tablet, raised beside her face.</text>
|
||||
<text x="830" y="626" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">PALETTE</text>
|
||||
<rect x="830" y="640" width="34" height="34" rx="4" fill="#d9483b" stroke="#4a1410" stroke-width="2"/><text x="869" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">d9483b</text><text x="869" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">terracotta</text><rect x="922" y="640" width="34" height="34" rx="4" fill="#4a1410" stroke="#4a1410" stroke-width="2"/><text x="961" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">4a1410</text><text x="961" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">line</text><rect x="1014" y="640" width="34" height="34" rx="4" fill="#3b2418" stroke="#4a1410" stroke-width="2"/><text x="1053" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">3b2418</text><text x="1053" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">hair, leather</text><rect x="1106" y="640" width="34" height="34" rx="4" fill="#f0e2c4" stroke="#4a1410" stroke-width="2"/><text x="1145" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">f0e2c4</text><text x="1145" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">coat</text><rect x="830" y="702" width="34" height="34" rx="4" fill="#2d8a7a" stroke="#4a1410" stroke-width="2"/><text x="869" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">2d8a7a</text><text x="869" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">embroidery</text><rect x="922" y="702" width="34" height="34" rx="4" fill="#c9a24a" stroke="#4a1410" stroke-width="2"/><text x="961" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">c9a24a</text><text x="961" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">brass</text><rect x="1014" y="702" width="34" height="34" rx="4" fill="#a8714f" stroke="#4a1410" stroke-width="2"/><text x="1053" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">a8714f</text><text x="1053" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">skin</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
BIN
cast-designs/proposals/weksa/weksa-C.png
Normal file
|
After Width: | Height: | Size: 242 KiB |
148
cast-designs/proposals/weksa/weksa-C.svg
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<clipPath id="rimR"><rect x="560" y="0" width="300" height="800"/></clipPath><g id="hairBack">
|
||||
<clipPath id="maneclip"><path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z"/></clipPath>
|
||||
<g transform="translate(236 300) rotate(-100) translate(0 -178)"><rect x="-40" y="-58" width="80" height="116" rx="8" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/><rect x="-28" y="-44" width="56" height="88" rx="4" fill="none" stroke="#d3bf98" stroke-width="3"/><path d="M-12 -18 q12 -14 24 0 M0 -4 v26" fill="none" stroke="#2d8a7a" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="translate(236 300) rotate(-74) translate(0 -178)"><rect x="-40" y="-58" width="80" height="116" rx="8" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/><rect x="-28" y="-44" width="56" height="88" rx="4" fill="none" stroke="#d3bf98" stroke-width="3"/><path d="M-12 -16 l24 0 l-12 20 z M0 10 v12" fill="none" stroke="#d9483b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="translate(236 300) rotate(-48) translate(0 -178)"><rect x="-40" y="-58" width="80" height="116" rx="8" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/><rect x="-28" y="-44" width="56" height="88" rx="4" fill="none" stroke="#d3bf98" stroke-width="3"/><path d="M-10 -18 v36 M-10 0 h20 M10 -18 v18" fill="none" stroke="#2d8a7a" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="translate(236 300) rotate(-22) translate(0 -178)"><rect x="-40" y="-58" width="80" height="116" rx="8" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/><rect x="-28" y="-44" width="56" height="88" rx="4" fill="none" stroke="#d3bf98" stroke-width="3"/><path d="M-12 -10 a12 12 0 1 0 24 0 M0 2 v20 M-8 14 h16" fill="none" stroke="#d9483b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></g>
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="#24140c"/>
|
||||
<g clip-path="url(#maneclip)">
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="#3b2418" transform="translate(-30 -26) scale(1.0)"/>
|
||||
<path d="M196 236 C210 200 236 172 266 154" fill="none" stroke="#6a4530" stroke-width="10" stroke-linecap="round"/>
|
||||
<g clip-path="url(#rimR)"><path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="none" stroke="#ff7a5c" stroke-width="10"/></g>
|
||||
</g>
|
||||
<path d="M366.3 99.3 Q383.7 86 497.1 97.3 Q456.1 100.8 482.9 115.4 Q503 114.9 594.6 178.6 Q561.8 158.4 578.7 183.9 Q601.6 189.1 659.1 289.5 Q628.6 258.6 631.8 289 Q645.4 304.9 646.4 417.7 Q641.2 378.3 629.9 406.7 Q636.8 427.9 586.2 530.5 Q596.7 490.2 573.5 510.1 Q566 528.1 474.1 589.9 Q505.3 568.6 475.5 575.4 Q462.3 594.3 348.5 611.9 Q387.9 595.5 358.4 587.7 Q338.3 596.5 230.9 558.4 Q271.5 564.8 249 544.2 Q229.4 539.9 155.7 456.1 Q182.7 483.5 172.4 454.8 Q151.4 444.2 119.7 333 Q141.8 370.3 146 340 Q136.7 321.3 162.7 211.6 Q158.3 251 176 226.2 Q174.4 203.9 248.1 116.4 Q228.3 153.1 255.5 139.3 Q267.1 123.6 371.1 85.6 Q335.7 98.8 366.3 99.3 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<path d="M600 420 C640 470 600 520 652 590 C610 580 580 540 590 500 C596 470 580 450 570 440 Z" fill="#24140c" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M186 470 C150 520 196 560 140 620 C190 610 214 560 206 520 C204 500 214 486 222 474 Z" fill="#3b2418" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/>
|
||||
<path d="M262 96 C220 150 250 220 196 290 C180 312 176 340 186 372 L170 360 L160 380 C150 330 160 300 178 276 C220 220 196 150 244 92 Z" fill="#d9483b" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/><path d="M280 104 C262 170 300 230 270 300 C262 320 264 340 272 360 L256 352 L248 370 C238 330 244 310 252 292 C276 232 246 170 266 100 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/><g id="knot"><path d="M245.2 52.9 Q230.4 50.5 220.4 31.7 Q239.8 34.2 248.4 30.2 Q241.3 23 246.9 5.7 Q256.1 12 265.9 12.6 Q261.3 -2 278.3 -19.4 Q284.2 1 292 6 Q297.2 -4.1 319.6 -7.9 Q314.8 4.8 318.1 12.6 Q330.8 4.7 354.6 11.3 Q338 22.1 335.6 30.2 Q345.3 31.1 355.2 46 Q346 47.3 338.8 52.9 Z" fill="#3b2418" stroke="#4a1410" stroke-width="6" stroke-linejoin="round"/><circle cx="292" cy="64" r="50" fill="#3b2418" stroke="#4a1410" stroke-width="6"/><path d="M257.0 54.0 C272.0 26.5 307.0 24.0 322.0 44.0" fill="none" stroke="#6a4530" stroke-width="9" stroke-linecap="round"/><path d="M252.0 79.0 Q292 109.0 334.5 76.5" fill="none" stroke="#24140c" stroke-width="4"/><rect x="247.0" y="91.5" width="90.0" height="16.0" rx="6" fill="#2d8a7a" stroke="#4a1410" stroke-width="4" transform="rotate(-8 292 99.0)"/><path d="M318 120 C290 60 290 10 316 -30 C336 14 334 70 318 120 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="5"/><path d="M318 120 L314 -20" stroke="#4a1410" stroke-width="3"/><path d="M248 140 L384 -14" stroke="#4a1410" stroke-width="26" stroke-linecap="round"/><path d="M248 140 L384 -14" stroke="#6b3a24" stroke-width="17" stroke-linecap="round"/><path d="M290 92 L370 2" stroke="#f0e2c4" stroke-width="17" stroke-dasharray="9 7"/><circle cx="384" cy="-14" r="12" fill="#d9483b" stroke="#4a1410" stroke-width="4"/><path d="M330 132 L214 20" stroke="#4a1410" stroke-width="19" stroke-linecap="round"/><path d="M330 132 L214 20" stroke="#6b3a24" stroke-width="12" stroke-linecap="round"/><circle cx="227.9" cy="33.4" r="11.399999999999999" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/><circle cx="243" cy="48" r="11.399999999999999" fill="#c9a24a" stroke="#4a1410" stroke-width="4"/><circle cx="258.1" cy="62.6" r="11.399999999999999" fill="#d9483b" stroke="#4a1410" stroke-width="4"/></g>
|
||||
</g><g id="torso">
|
||||
|
||||
<path d="M160 800 C165 700 220 650 312 630 Q405 614 494 628 C580 646 632 704 642 800 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="7"/>
|
||||
<path d="M520 640 C590 664 630 720 640 800 L560 800 C556 740 540 690 506 660 Z" fill="#d3bf98"/>
|
||||
<path d="M190 800 C196 712 236 668 316 642 L344 662 C280 690 252 740 248 800 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M610 800 C602 724 566 680 494 650 L470 668 C530 696 552 742 556 800 Z" fill="#1d5f55" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<g fill="none" stroke="#f0e2c4" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><path d="M236 700 l10 -14 l10 14" /><path d="M262 676 v16 h12" /><path d="M290 660 q8 -10 16 0" /><path d="M318 650 l12 0 l-6 12 z" /><path d="M500 650 q8 10 16 0" /><path d="M530 664 v14 h-10" /><path d="M560 684 l10 -12 l6 14" /><path d="M586 712 q6 -12 14 -2" /></g>
|
||||
<path d="M344 662 L370 612 L446 610 L470 668 L452 800 L360 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M372 616 L404 690 L440 614 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M352 640 Q404 720 462 640" fill="none" stroke="#4a1410" stroke-width="10" stroke-dasharray="0.1 18" stroke-linecap="round"/>
|
||||
<path d="M352 640 Q404 720 462 640" fill="none" stroke="#2d8a7a" stroke-width="7" stroke-dasharray="0.1 18" stroke-linecap="round"/>
|
||||
<path d="M360 646 Q404 730 455 646" fill="none" stroke="#c9a24a" stroke-width="5" stroke-dasharray="0.1 14" stroke-linecap="round"/>
|
||||
<circle cx="404" cy="700" r="14" fill="#d9483b" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M398 700 h12 M404 694 v12" stroke="#f0e2c4" stroke-width="3"/>
|
||||
<path d="M600 700 C620 730 632 760 636 800" fill="none" stroke="#ff7a5c" stroke-width="7"/>
|
||||
<path d="M300 636 L336 626 L580 800 L516 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/><g transform="rotate(-6 560 740)">
|
||||
<rect x="470" y="690" width="170" height="44" rx="6" fill="#2d8a7a" stroke="#4a1410" stroke-width="6"/>
|
||||
<path d="M490 700 v24 M620 700 v24" stroke="#c9a24a" stroke-width="4"/>
|
||||
<rect x="460" y="732" width="190" height="50" rx="6" fill="#d9483b" stroke="#4a1410" stroke-width="6"/>
|
||||
<path d="M520 757 q10 -12 20 0 t20 0" fill="none" stroke="#f0e2c4" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M450 712 h210" stroke="#6b3a24" stroke-width="12"/>
|
||||
</g>
|
||||
</g><g id="face">
|
||||
<clipPath id="faceclip"><path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z"/></clipPath>
|
||||
<path d="M368 505 L368 612 Q405 630 448 610 L446 505 Z" fill="#a8714f" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M368 520 Q410 585 447 520 L447 572 Q405 596 368 572 Z" fill="#85533a"/>
|
||||
<path d="M262 418 C232 400 214 430 226 462 C236 490 262 492 274 478 Z" fill="#a8714f" stroke="#4a1410" stroke-width="5"/>
|
||||
<path d="M252 436 C240 438 238 458 252 466" fill="none" stroke="#85533a" stroke-width="5" stroke-linecap="round"/>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="#a8714f"/>
|
||||
<g clip-path="url(#faceclip)">
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z" fill="#85533a" transform="translate(10 16)"/>
|
||||
<path d="M535 330 C548 420 520 500 452 540 L560 560 L570 330 Z" fill="#85533a"/>
|
||||
</g>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<ellipse cx="316" cy="506" rx="24" ry="9" fill="#d9483b" opacity="0.4"/>
|
||||
<ellipse cx="496" cy="504" rx="14" ry="7" fill="#d9483b" opacity="0.4"/>
|
||||
<clipPath id="eyen"><path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z"/></clipPath>
|
||||
<path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyen)">
|
||||
<ellipse cx="330" cy="386.1" rx="56" ry="29.4" fill="#e7cfc2"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="#b8742a"/>
|
||||
<ellipse cx="339.6" cy="418.3" rx="33.6" ry="28.6" fill="#6b3a14"/>
|
||||
<path d="M314.6 458.4 C323.6 490.6 355.6 490.6 364.6 458.4 C352.4 475.4 326.8 475.4 314.6 458.4 Z" fill="#f2bc62"/>
|
||||
<ellipse cx="339.6" cy="444.6" rx="13.4" ry="23" fill="#331806"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="none" stroke="#331806" stroke-width="2.8"/>
|
||||
<ellipse cx="327.4" cy="429.4" rx="9.6" ry="11.1" fill="#ffffff" transform="rotate(-25 327.4 429.4)"/>
|
||||
<circle cx="353" cy="467.6" r="3.8" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M286.8 430.2 C290 396.9 307.6 391 330 391 C354 391 371.6 400.8 373.2 428.2" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M298 408.6 L272.4 398.8 L288.4 428.2 Z" fill="#4a1410"/>
|
||||
<path d="M312.4 491 Q330 495.9 347.6 490" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/><clipPath id="eyef"><path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z"/></clipPath>
|
||||
<path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyef)">
|
||||
<ellipse cx="470" cy="388.3" rx="42" ry="28.2" fill="#e7cfc2"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="#b8742a"/>
|
||||
<ellipse cx="479.6" cy="419.2" rx="25.2" ry="27.4" fill="#6b3a14"/>
|
||||
<path d="M460.9 457.6 C467.6 488.6 491.6 488.6 498.3 457.6 C489.2 474 470 474 460.9 457.6 Z" fill="#f2bc62"/>
|
||||
<ellipse cx="479.6" cy="444.4" rx="10.1" ry="22.1" fill="#331806"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="none" stroke="#331806" stroke-width="2.1"/>
|
||||
<ellipse cx="470.5" cy="429.8" rx="7.2" ry="10.6" fill="#ffffff" transform="rotate(-25 470.5 429.8)"/>
|
||||
<circle cx="489.7" cy="466.5" r="2.9" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M437.6 430.6 C440 398.6 453.2 393 470 393 C488 393 501.2 402.4 502.4 428.7" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M494 408 L513.2 402.4 L501.2 428.7 Z" fill="#4a1410"/>
|
||||
<path d="M456.8 488.9 Q470 493.6 483.2 487.9" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/>
|
||||
<path d="M424 470 L433 482 L423 485" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<clipPath id="mouthc"><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z"/></clipPath><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z" fill="#5a1712"/><g clip-path="url(#mouthc)"><ellipse cx="425" cy="525" rx="16" ry="9" fill="#e0675a"/></g><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<g fill="none" stroke="#4a1410" stroke-width="9">
|
||||
<circle cx="331" cy="442" r="58"/><ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/><path d="M273 436 L246 432" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g fill="none" stroke="#c9a24a" stroke-width="4.5">
|
||||
<circle cx="331" cy="442" r="58"/><ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/><path d="M273 436 L246 432" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M298 408 L316 394 M294 428 L330 400" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M452 410 L466 398" stroke="#ffffff" stroke-width="5" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z" fill="#3b2418"/>
|
||||
<clipPath id="bangclip"><path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 C600 200 520 150 400 150 C290 150 222 190 215 250 Z"/></clipPath>
|
||||
<g clip-path="url(#bangclip)">
|
||||
<path d="M300 300 Q320 284 342 278 M370 270 Q392 264 414 266 M444 270 Q466 274 486 286" fill="none" stroke="#6a4530" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M352 392 Q350 330 330 280 M416 386 Q420 320 400 270 M472 378 Q480 320 470 270 M238 514 Q226 400 240 300" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M215 250 Q212.4 448 238 514 Q246.5 453.5 272 404 Q279.5 395.2 302 388 Q306 359.4 318 336 Q317.1 378 352 392 Q358 357.9 376 330 Q376 372 416 386 Q421.5 356.3 438 332 Q437.1 366.5 472 378 Q477 353.8 492 334 Q491.7 380.5 530 396 Q532.5 380.6 540 368 Q537.3 447.5 562 474 Q570 378.3 594 300 " fill="none" stroke="#4a1410" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M286 362 Q324 344 364 358" fill="none" stroke="#3b2418" stroke-width="7" stroke-linecap="round"/><path d="M446 358 Q474 344 500 360" fill="none" stroke="#3b2418" stroke-width="6" stroke-linecap="round"/>
|
||||
<circle cx="240" cy="488" r="10" fill="none" stroke="#4a1410" stroke-width="8"/><circle cx="240" cy="488" r="10" fill="none" stroke="#c9a24a" stroke-width="4"/><path d="M240 498 L240 516" stroke="#4a1410" stroke-width="4"/><path d="M240 512 l12 14 l-12 14 l-12 -14 Z" fill="#d9483b" stroke="#4a1410" stroke-width="4"/>
|
||||
|
||||
</g>
|
||||
<g id="bust">
|
||||
<g transform="translate(40 50) scale(0.93)"><use href="#hairBack"/><use href="#torso"/><use href="#face"/></g>
|
||||
</g>
|
||||
<g id="mini">
|
||||
|
||||
<g transform="scale(0.30) translate(-390 -300)"><use href="#hairBack"/></g>
|
||||
<g stroke="#4a1410" stroke-width="3" stroke-linejoin="round" stroke-linecap="round">
|
||||
<path d="M-26 160 L-26 200 L-4 200 L4 170 L12 200 L34 200 L36 160 Z" fill="#6b3a24"/>
|
||||
<path d="M-30 196 h28 v10 q0 10 -10 10 h-20 q-6 0 -6 -8 Z" fill="#4f2918"/>
|
||||
<path d="M10 196 h26 q12 0 12 12 v2 q0 6 -6 6 h-32 Z" fill="#4f2918"/>
|
||||
<path d="M-40 168 C-42 116 -30 86 -6 78 L28 78 C50 86 60 116 58 168 Z" fill="#f0e2c4"/>
|
||||
<path d="M-40 168 L58 168 L56 156 L-40 156 Z" fill="#2d8a7a"/>
|
||||
<path d="M-6 78 L-14 120 L-6 168 L20 168 L30 120 L24 78 Z" fill="#6b3a24"/>
|
||||
<path d="M-2 80 L10 96 L20 80 Z" fill="#f0e2c4"/>
|
||||
<path d="M-6 80 L46 150" stroke-width="7"/><path d="M-6 80 L46 150" stroke="#4f2918" stroke-width="4"/>
|
||||
<path d="M-34 90 C-48 104 -46 124 -32 132" fill="none" stroke-width="14"/>
|
||||
<path d="M-34 90 C-48 104 -46 124 -32 132" fill="none" stroke="#f0e2c4" stroke-width="9"/>
|
||||
<circle cx="-30" cy="134" r="7" fill="#a8714f"/>
|
||||
<rect x="-30" y="118" width="22" height="26" rx="2" fill="#2d8a7a"/><path d="M-26 118 v-8 l4 4 l4 -4 v8" fill="#d9483b"/>
|
||||
</g>
|
||||
<g transform="scale(0.30) translate(-390 -300)"><use href="#face"/></g>
|
||||
</g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe6"/>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#efe2cf"/>
|
||||
<path d="M500 24 L790 24 L730 776 L470 776 Z" fill="#e9d6bf"/>
|
||||
<g clip-path="url(#card)"><use href="#bust"/></g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#d9483b" stroke-width="5"/>
|
||||
<path d="M14 728 L250 728 L246 776 L10 776 Z" fill="#d9483b"/>
|
||||
<text x="34" y="762" font-family="Consolas, 'Courier New', monospace" font-size="26" font-weight="700" letter-spacing="6" fill="#fff4e8">WEKSA</text>
|
||||
<text x="830" y="58" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="5" fill="#4a1410">WEKSA / C</text>
|
||||
<text x="830" y="84" font-family="Segoe UI, Arial, sans-serif" font-size="17" fill="#d9483b" letter-spacing="2">PINNED WITH CIPHERS</text>
|
||||
<g transform="translate(940 225) scale(1.25)"><use href="#mini"/></g>
|
||||
<text x="830" y="512" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">FULL BODY 2.5 HEADS</text>
|
||||
<g transform="translate(1048 112) scale(0.17)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1048" y="262" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">SILHOUETTE</text>
|
||||
<g transform="translate(1048 290) scale(0.06)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1104" y="322" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">48 PX</text>
|
||||
<text x="830" y="556" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">HOOK</text>
|
||||
<text x="830" y="582" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#2a1a16">Glyph cards fan behind her ear; a code-stick pins her knot.</text>
|
||||
<text x="830" y="626" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">PALETTE</text>
|
||||
<rect x="830" y="640" width="34" height="34" rx="4" fill="#d9483b" stroke="#4a1410" stroke-width="2"/><text x="869" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">d9483b</text><text x="869" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">terracotta</text><rect x="922" y="640" width="34" height="34" rx="4" fill="#4a1410" stroke="#4a1410" stroke-width="2"/><text x="961" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">4a1410</text><text x="961" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">line</text><rect x="1014" y="640" width="34" height="34" rx="4" fill="#3b2418" stroke="#4a1410" stroke-width="2"/><text x="1053" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">3b2418</text><text x="1053" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">hair, leather</text><rect x="1106" y="640" width="34" height="34" rx="4" fill="#f0e2c4" stroke="#4a1410" stroke-width="2"/><text x="1145" y="654" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">f0e2c4</text><text x="1145" y="669" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">coat</text><rect x="830" y="702" width="34" height="34" rx="4" fill="#2d8a7a" stroke="#4a1410" stroke-width="2"/><text x="869" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">2d8a7a</text><text x="869" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">embroidery</text><rect x="922" y="702" width="34" height="34" rx="4" fill="#c9a24a" stroke="#4a1410" stroke-width="2"/><text x="961" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">c9a24a</text><text x="961" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">brass</text><rect x="1014" y="702" width="34" height="34" rx="4" fill="#a8714f" stroke="#4a1410" stroke-width="2"/><text x="1053" y="716" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#2a1a16">a8714f</text><text x="1053" y="731" font-family="Segoe UI, Arial, sans-serif" font-size="10.5" fill="#6b5a52">skin</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
86
cast-designs/proposals/weksa/weksa-notes.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# Weksa proposals: designer's notes
|
||||
|
||||
## The brief changed twice while this round was being drawn
|
||||
|
||||
- Operator: "Weksa should be covered in books and ciphers." Books and ciphers are
|
||||
the shared core of every direction: strapped book stacks, bookmark ribbons, a
|
||||
satchel, cipher wheels, glyph cards, a code-stick (scytale), and glyph
|
||||
embroidery on the coat's collar band.
|
||||
- Weksa already has an established design: the cotsc-praxis character sheet
|
||||
(`gamecult-site/GameCult/static/interactive/cotsc-praxis/character-sheets/weksa-sheet.png`).
|
||||
It shows brown skin, big messy wavy brown hair with a half-up top-knot pinned
|
||||
by beaded sticks, round gold glasses, amber eyes, dangling earrings, a cream
|
||||
coat with teal embroidered trim, a brown vest and an overflowing satchel of
|
||||
scrolls, books and glyph cards, and a glowing cipher tablet. Canon overrides
|
||||
`weksa.md`. A, B and C are no longer the speech-balloon, scarf and braid-tree
|
||||
reinventions. They are three takes on that design, drawn from the reference,
|
||||
each one pushing a different book or cipher prop as the hook.
|
||||
- The one direction finished before the canon arrived (the speech-balloon hair)
|
||||
is kept as `weksa-old-A.svg` / `.png`.
|
||||
|
||||
## What all three share
|
||||
|
||||
The bust, the face and the coat are canon. The face is a three-quarter view
|
||||
turned toward the text box. The eyes are amber with a layered iris and two
|
||||
speculars, and the heavy upper lid ends in a flick at the outer corner. The
|
||||
glasses are gold rims over a dark under-line. The top-knot is pinned with beaded
|
||||
sticks, and a teal hair tie holds it. The collar band is teal with cream glyph
|
||||
stitching. The cel shading uses one shadow tone per material, and the rim light
|
||||
is terracotta on the far (right) side.
|
||||
|
||||
The palette has seven colours, one over the README's limit of six. Canon needs
|
||||
the teal and the brass, and terracotta stays as the key. Terracotta is used on
|
||||
beads, book covers, ribbons and the rim light, because canon has no large
|
||||
terracotta area. Round 2 should decide whether Weksa's key is terracotta at all
|
||||
or moves to canon teal. If it moves, it has to stay clear of Aqua's cyan.
|
||||
|
||||
## A: The Walking Library
|
||||
|
||||
- The satchel is the hook. A leather pack behind her near shoulder overflows
|
||||
with two scrolls, two books with ribbons and a glyph banner on a brass-topped
|
||||
pole. The pack flap carries a cipher wheel. A strap with a brass buckle crosses
|
||||
her chest. Her mouth is open in a happy expression.
|
||||
- **Changed after looking:** the first mane was a spiky lion's mane, and the long
|
||||
highlight strokes read as a headband. I tamed the mane to wavy locks and added
|
||||
S-curl side locks to break up the bob shape. I raised the banner and splayed the
|
||||
scrolls so they stick out of the hair mass, and shifted the bust down so the
|
||||
knot no longer crops at the card edge.
|
||||
- **Round 2:** at 48 px the pack partly merges into the hair. Push the banner and
|
||||
scrolls further out to the left with a clear gap, or put a large book spine
|
||||
above the shoulder line.
|
||||
|
||||
## B: The Cipher Tablet
|
||||
|
||||
- Canon's interlingua pose. A glowing teal cipher tablet is raised beside her
|
||||
face toward the text box: a wheel ring, a diamond glyph and text lines. Her hand
|
||||
grips the lower corner, with a bead bracelet on that wrist. Her earring is a
|
||||
cipher-wheel disc, and a quill goes through the top-knot. A red glyph-book is
|
||||
tucked on the near side. Her expression is a knowing closed smile, mid-decode.
|
||||
- **Changed after looking:** the hand first read as a raised finger across the
|
||||
screen, so I moved it to grip the corner and shortened the thumb. I shrank the
|
||||
glow from a large circle that muddied the hair to an ellipse that hugs the
|
||||
tablet. The radial gradient is the sheet's only gradient.
|
||||
- **Round 2:** this sheet has the strongest silhouette, a square plate beside the
|
||||
head. The glow mint is outside the palette and needs a ruling. Try the tablet
|
||||
tilted further toward the viewer so its face reads at 128 px.
|
||||
|
||||
## C: Pinned With Ciphers
|
||||
|
||||
- The hook is in the hair. Four glyph cards fan out behind her ear like a
|
||||
kanzashi. A code-stick (a scytale wrapped in a cream strip), a quill and a
|
||||
beaded stick go through the top-knot. Two bookmark ribbons, terracotta and
|
||||
teal, with notched ends, stream from the knot. A strapped stack of two books
|
||||
sits on her far shoulder. Her expression is open delight, the "New word!" read.
|
||||
- **Changed after looking:** the first card fan was too tight and fused into a
|
||||
hump in the silhouette. I spread the fan wider and further out and enlarged the
|
||||
cards, so the silhouette shows separate card teeth.
|
||||
- **Round 2:** the ribbons can read as a red streak at a glance. Add a second
|
||||
fork to them or shorten them. If the code-stick and the quill compete for the
|
||||
knot, consider dropping the quill.
|
||||
|
||||
## Strongest
|
||||
|
||||
B reads best at both 128 px and 48 px: one big clean shape on the text-box side,
|
||||
and the prop is canon. C carries "covered in ciphers" best with the hook
|
||||
entirely above the shoulders, so it suits a bust product. A is the most canon
|
||||
(the satchel), but its silhouette is the weakest.
|
||||
BIN
cast-designs/proposals/weksa/weksa-old-A.png
Normal file
|
After Width: | Height: | Size: 214 KiB |
167
cast-designs/proposals/weksa/weksa-old-A.svg
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1200 800" width="1200" height="800">
|
||||
<defs>
|
||||
<filter id="black" x="-5%" y="-5%" width="110%" height="110%"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/></filter>
|
||||
<clipPath id="card"><path d="M70 24 L790 24 L730 776 L10 776 Z"/></clipPath>
|
||||
<clipPath id="rimR"><rect x="540" y="0" width="300" height="800"/></clipPath><g id="hairBack">
|
||||
<clipPath id="hairclip"><path d="M535 425.2 A52.8 52.8 0 0 1 467.3 444.3 A43.8 43.8 0 0 1 394.6 451.9 A63.3 63.3 0 0 1 321.3 447.4 A48.1 48.1 0 0 1 251.9 431.2 A52.8 52.8 0 0 1 190.5 404.3 A39.2 39.2 0 0 1 140.8 368.1 A50 50 0 0 1 105.7 325 A36.3 36.3 0 0 1 87.5 277.5 A36.8 36.8 0 0 1 87.1 228.5 A30.4 30.4 0 0 1 104.6 180.9 A47.7 47.7 0 0 1 139 137.5 A41.3 41.3 0 0 1 188.2 101.1 A52.7 52.7 0 0 1 249.2 73.7 A45.4 45.4 0 0 1 318.4 57 A66 66 0 0 1 391.5 52 A52.1 52.1 0 0 1 464.3 59.1 A52.9 52.9 0 0 1 532.3 77.8 A39.6 39.6 0 0 1 591.5 106.9 A51.9 51.9 0 0 1 638.3 144.8 A36.7 36.7 0 0 1 669.8 189.1 A39.5 39.5 0 0 1 684.2 237.2 A31.3 31.3 0 0 1 680.6 286.2 A46.4 46.4 0 0 1 659.2 333.1 A40.3 40.3 0 0 1 621.4 375.1 C615.4 455.1 578 520 548 600 C540 520 541 485.2 535 425.2 Z"/></clipPath>
|
||||
<path d="M535 425.2 A52.8 52.8 0 0 1 467.3 444.3 A43.8 43.8 0 0 1 394.6 451.9 A63.3 63.3 0 0 1 321.3 447.4 A48.1 48.1 0 0 1 251.9 431.2 A52.8 52.8 0 0 1 190.5 404.3 A39.2 39.2 0 0 1 140.8 368.1 A50 50 0 0 1 105.7 325 A36.3 36.3 0 0 1 87.5 277.5 A36.8 36.8 0 0 1 87.1 228.5 A30.4 30.4 0 0 1 104.6 180.9 A47.7 47.7 0 0 1 139 137.5 A41.3 41.3 0 0 1 188.2 101.1 A52.7 52.7 0 0 1 249.2 73.7 A45.4 45.4 0 0 1 318.4 57 A66 66 0 0 1 391.5 52 A52.1 52.1 0 0 1 464.3 59.1 A52.9 52.9 0 0 1 532.3 77.8 A39.6 39.6 0 0 1 591.5 106.9 A51.9 51.9 0 0 1 638.3 144.8 A36.7 36.7 0 0 1 669.8 189.1 A39.5 39.5 0 0 1 684.2 237.2 A31.3 31.3 0 0 1 680.6 286.2 A46.4 46.4 0 0 1 659.2 333.1 A40.3 40.3 0 0 1 621.4 375.1 C615.4 455.1 578 520 548 600 C540 520 541 485.2 535 425.2 Z" fill="#24140c"/>
|
||||
<g clip-path="url(#hairclip)">
|
||||
<path d="M535 425.2 A52.8 52.8 0 0 1 467.3 444.3 A43.8 43.8 0 0 1 394.6 451.9 A63.3 63.3 0 0 1 321.3 447.4 A48.1 48.1 0 0 1 251.9 431.2 A52.8 52.8 0 0 1 190.5 404.3 A39.2 39.2 0 0 1 140.8 368.1 A50 50 0 0 1 105.7 325 A36.3 36.3 0 0 1 87.5 277.5 A36.8 36.8 0 0 1 87.1 228.5 A30.4 30.4 0 0 1 104.6 180.9 A47.7 47.7 0 0 1 139 137.5 A41.3 41.3 0 0 1 188.2 101.1 A52.7 52.7 0 0 1 249.2 73.7 A45.4 45.4 0 0 1 318.4 57 A66 66 0 0 1 391.5 52 A52.1 52.1 0 0 1 464.3 59.1 A52.9 52.9 0 0 1 532.3 77.8 A39.6 39.6 0 0 1 591.5 106.9 A51.9 51.9 0 0 1 638.3 144.8 A36.7 36.7 0 0 1 669.8 189.1 A39.5 39.5 0 0 1 684.2 237.2 A31.3 31.3 0 0 1 680.6 286.2 A46.4 46.4 0 0 1 659.2 333.1 A40.3 40.3 0 0 1 621.4 375.1 C615.4 455.1 578 520 548 600 C540 520 541 485.2 535 425.2 Z" fill="#3b2418" transform="translate(-26 -22)"/>
|
||||
<path d="M182.5 166 A39 39 0 0 1 223 124" transform="rotate(0 220 160)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M190 160 A30 30 0 1 1 226 190 A15 15 0 1 1 223 164.5" transform="rotate(0 220 160)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M267.5 115.2 A33.8 33.8 0 0 1 302.6 78.8" transform="rotate(20 300 110)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M274 110 A26 26 0 1 1 305.2 136 A13 13 0 1 1 302.6 113.9" transform="rotate(20 300 110)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M382.5 106 A39 39 0 0 1 423 64" transform="rotate(0 420 100)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M390 100 A30 30 0 1 1 426 130 A15 15 0 1 1 423 104.5" transform="rotate(0 420 100)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M495 145.6 A36.4 36.4 0 0 1 532.8 106.4" transform="rotate(30 530 140)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M502 140 A28 28 0 1 1 535.6 168 A14 14 0 1 1 532.8 144.2" transform="rotate(30 530 140)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M567.5 235.2 A33.8 33.8 0 0 1 602.6 198.8" transform="rotate(60 600 230)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M574 230 A26 26 0 1 1 605.2 256 A13 13 0 1 1 602.6 233.9" transform="rotate(60 600 230)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M140 265.6 A36.4 36.4 0 0 1 177.8 226.4" transform="rotate(-20 175 260)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M147 260 A28 28 0 1 1 180.6 288 A14 14 0 1 1 177.8 264.2" transform="rotate(-20 175 260)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M130 374.8 A31.2 31.2 0 0 1 162.4 341.2" transform="rotate(-40 160 370)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M136 370 A24 24 0 1 1 164.8 394 A12 12 0 1 1 162.4 373.6" transform="rotate(-40 160 370)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M580 334.8 A31.2 31.2 0 0 1 612.4 301.2" transform="rotate(80 610 330)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M586 330 A24 24 0 1 1 614.8 354 A12 12 0 1 1 612.4 333.6" transform="rotate(80 610 330)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M332.5 179.4 A28.6 28.6 0 0 1 362.2 148.6" transform="rotate(10 360 175)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M338 175 A22 22 0 1 1 364.4 197 A11 11 0 1 1 362.2 178.3" transform="rotate(10 360 175)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M452.5 194.4 A28.6 28.6 0 0 1 482.2 163.6" transform="rotate(40 480 190)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M458 190 A22 22 0 1 1 484.4 212 A11 11 0 1 1 482.2 193.3" transform="rotate(40 480 190)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/><path d="M225 234 A26 26 0 0 1 252 206" transform="rotate(-10 250 230)" fill="none" stroke="#6a4530" stroke-width="8" stroke-linecap="round"/><path d="M230 230 A20 20 0 1 1 254 250 A10 10 0 1 1 252 233" transform="rotate(-10 250 230)" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/>
|
||||
<g clip-path="url(#rimR)"><path d="M535 425.2 A52.8 52.8 0 0 1 467.3 444.3 A43.8 43.8 0 0 1 394.6 451.9 A63.3 63.3 0 0 1 321.3 447.4 A48.1 48.1 0 0 1 251.9 431.2 A52.8 52.8 0 0 1 190.5 404.3 A39.2 39.2 0 0 1 140.8 368.1 A50 50 0 0 1 105.7 325 A36.3 36.3 0 0 1 87.5 277.5 A36.8 36.8 0 0 1 87.1 228.5 A30.4 30.4 0 0 1 104.6 180.9 A47.7 47.7 0 0 1 139 137.5 A41.3 41.3 0 0 1 188.2 101.1 A52.7 52.7 0 0 1 249.2 73.7 A45.4 45.4 0 0 1 318.4 57 A66 66 0 0 1 391.5 52 A52.1 52.1 0 0 1 464.3 59.1 A52.9 52.9 0 0 1 532.3 77.8 A39.6 39.6 0 0 1 591.5 106.9 A51.9 51.9 0 0 1 638.3 144.8 A36.7 36.7 0 0 1 669.8 189.1 A39.5 39.5 0 0 1 684.2 237.2 A31.3 31.3 0 0 1 680.6 286.2 A46.4 46.4 0 0 1 659.2 333.1 A40.3 40.3 0 0 1 621.4 375.1 C615.4 455.1 578 520 548 600 C540 520 541 485.2 535 425.2 Z" fill="none" stroke="#ff7a5c" stroke-width="10"/></g>
|
||||
</g>
|
||||
<path d="M535 425.2 A52.8 52.8 0 0 1 467.3 444.3 A43.8 43.8 0 0 1 394.6 451.9 A63.3 63.3 0 0 1 321.3 447.4 A48.1 48.1 0 0 1 251.9 431.2 A52.8 52.8 0 0 1 190.5 404.3 A39.2 39.2 0 0 1 140.8 368.1 A50 50 0 0 1 105.7 325 A36.3 36.3 0 0 1 87.5 277.5 A36.8 36.8 0 0 1 87.1 228.5 A30.4 30.4 0 0 1 104.6 180.9 A47.7 47.7 0 0 1 139 137.5 A41.3 41.3 0 0 1 188.2 101.1 A52.7 52.7 0 0 1 249.2 73.7 A45.4 45.4 0 0 1 318.4 57 A66 66 0 0 1 391.5 52 A52.1 52.1 0 0 1 464.3 59.1 A52.9 52.9 0 0 1 532.3 77.8 A39.6 39.6 0 0 1 591.5 106.9 A51.9 51.9 0 0 1 638.3 144.8 A36.7 36.7 0 0 1 669.8 189.1 A39.5 39.5 0 0 1 684.2 237.2 A31.3 31.3 0 0 1 680.6 286.2 A46.4 46.4 0 0 1 659.2 333.1 A40.3 40.3 0 0 1 621.4 375.1 C615.4 455.1 578 520 548 600 C540 520 541 485.2 535 425.2 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<g id="wheel" transform="rotate(14 586 168)">
|
||||
<circle cx="586" cy="168" r="56" fill="#f0e2c4" stroke="#4a1410" stroke-width="6"/>
|
||||
<circle cx="586" cy="168" r="44" fill="none" stroke="#d6c29c" stroke-width="10"/>
|
||||
<g stroke="#4a1410" stroke-width="3" stroke-linecap="round"><path d="M586 116 v8" transform="rotate(0 586 168)"/><path d="M586 116 v8" transform="rotate(30 586 168)"/><path d="M586 116 v8" transform="rotate(60 586 168)"/><path d="M586 116 v8" transform="rotate(90 586 168)"/><path d="M586 116 v8" transform="rotate(120 586 168)"/><path d="M586 116 v8" transform="rotate(150 586 168)"/><path d="M586 116 v8" transform="rotate(180 586 168)"/><path d="M586 116 v8" transform="rotate(210 586 168)"/><path d="M586 116 v8" transform="rotate(240 586 168)"/><path d="M586 116 v8" transform="rotate(270 586 168)"/><path d="M586 116 v8" transform="rotate(300 586 168)"/><path d="M586 116 v8" transform="rotate(330 586 168)"/></g>
|
||||
<circle cx="586" cy="168" r="34" fill="#d9483b" stroke="#4a1410" stroke-width="4"/>
|
||||
<g fill="none" stroke="#f0e2c4" stroke-width="3" stroke-linecap="round"><path d="M583 138 l3 6 l3 -6" transform="rotate(20 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(65 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(110 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(155 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(200 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(245 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(290 586 168)"/><path d="M583 138 l3 6 l3 -6" transform="rotate(335 586 168)"/></g>
|
||||
<circle cx="586" cy="168" r="12" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M586 168 L586 116" stroke="#4a1410" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
</g><g id="torsoA">
|
||||
<g id="booksBack">
|
||||
<g transform="rotate(-14 200 640)">
|
||||
<rect x="120" y="560" width="150" height="46" rx="6" fill="#2d8a7a" stroke="#4a1410" stroke-width="6"/>
|
||||
<path d="M138 572 v22 M252 572 v22" stroke="#f0e2c4" stroke-width="4"/>
|
||||
<path d="M160 583 h20 l6 -6 l6 12 l6 -6 h16" fill="none" stroke="#f0e2c4" stroke-width="3" stroke-linecap="round"/>
|
||||
<rect x="110" y="604" width="170" height="54" rx="6" fill="#7a2a20" stroke="#4a1410" stroke-width="6"/>
|
||||
<path d="M132 618 v26 M258 618 v26" stroke="#d6c29c" stroke-width="4"/>
|
||||
<path d="M160 631 q10 -12 20 0 t20 0 t20 0" fill="none" stroke="#f0e2c4" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M236 658 l0 40 l8 -8 l8 8 l0 -40 Z" fill="#d9483b" stroke="#4a1410" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path d="M100 588 h190" stroke="#6b3a24" stroke-width="12"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M170 800 C175 705 225 652 315 630 Q405 614 490 628 C570 644 625 702 632 800 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="7"/>
|
||||
<path d="M455 640 L470 800 L420 800 Z" fill="#d6c29c"/>
|
||||
<path d="M170 800 C175 705 225 652 315 630 L348 624 L398 800 Z" fill="#d9483b" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M472 626 C560 642 625 702 632 800 L462 800 L452 646 Z" fill="#a8352b" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<path d="M598 690 C616 720 626 760 628 800" fill="none" stroke="#ff7a5c" stroke-width="7"/>
|
||||
<path d="M286 640 L330 628 L560 800 L500 800 Z" fill="#6b3a24" stroke="#4a1410" stroke-width="5" stroke-linejoin="round"/>
|
||||
<rect x="388" y="688" width="34" height="30" rx="4" fill="none" stroke="#2d8a7a" stroke-width="6" transform="rotate(37 405 703)"/>
|
||||
<path d="M352 640 L392 790" fill="none" stroke="#f0e2c4" stroke-width="4" stroke-dasharray="10 6 3 6"/>
|
||||
<path d="M368 606 L326 640 L404 660 Z" fill="#f0e2c4" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M448 604 L486 634 L420 660 Z" fill="#d6c29c" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<path d="M398 650 L432 650 L440 676 L416 690 L392 676 Z" fill="#2d8a7a" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<rect x="214" y="704" width="80" height="62" rx="6" fill="#a8352b" stroke="#4a1410" stroke-width="4" transform="rotate(-6 254 735)"/>
|
||||
<path d="M210 712 L292 704 L294 724 L212 732 Z" fill="#d9483b" stroke="#4a1410" stroke-width="4" stroke-linejoin="round"/>
|
||||
<rect x="520" y="706" width="64" height="54" rx="6" fill="#922c24" stroke="#4a1410" stroke-width="4" transform="rotate(5 552 733)"/>
|
||||
</g><g id="face">
|
||||
<clipPath id="faceclip"><path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z"/></clipPath>
|
||||
<path d="M368 505 L368 612 Q405 630 448 610 L446 505 Z" fill="#a8714f" stroke="#4a1410" stroke-width="4"/>
|
||||
<path d="M368 520 Q410 585 447 520 L447 572 Q405 596 368 572 Z" fill="#85533a"/>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="#a8714f"/>
|
||||
<g clip-path="url(#faceclip)">
|
||||
<path d="M236 478 A26 26 0 0 0 262 404 A30 30 0 0 1 300 350 A24 24 0 0 0 346 360 A26 26 0 0 1 388 338 A24 24 0 0 0 432 356 A24 24 0 0 1 472 336 A24 24 0 0 0 514 352 A30 30 0 0 1 544 404 A18 18 0 0 0 552 432 C580 390 596 320 580 250 C540 175 260 170 215 240 C190 300 200 420 236 478 Z" fill="#85533a" transform="translate(8 16)"/>
|
||||
<path d="M535 330 C548 420 520 500 452 540 L560 560 L570 330 Z" fill="#85533a"/>
|
||||
</g>
|
||||
<path d="M255 300 C244 380 252 452 298 496 C332 528 378 546 418 546 C456 541 494 512 514 472 C530 442 538 402 535 360 L530 300 Z" fill="none" stroke="#4a1410" stroke-width="7" stroke-linejoin="round"/>
|
||||
<ellipse cx="316" cy="504" rx="26" ry="10" fill="#d9483b" opacity="0.45"/>
|
||||
<ellipse cx="494" cy="502" rx="15" ry="8" fill="#d9483b" opacity="0.45"/>
|
||||
<clipPath id="eyenA"><path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z"/></clipPath>
|
||||
<path d="M290 435.1 C290 398.8 307.6 391 330 391 C354 391 370 400.8 370 432.2 C370 469.4 350.8 489 330 489 C307.6 489 290 469.4 290 435.1 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyenA)">
|
||||
<ellipse cx="330" cy="386.1" rx="56" ry="29.4" fill="#e7cfc2"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="#2d8a7a"/>
|
||||
<ellipse cx="339.6" cy="418.3" rx="33.6" ry="28.6" fill="#174f47"/>
|
||||
<path d="M314.6 458.4 C323.6 490.6 355.6 490.6 364.6 458.4 C352.4 475.4 326.8 475.4 314.6 458.4 Z" fill="#73c6b3"/>
|
||||
<ellipse cx="339.6" cy="444.6" rx="13.4" ry="23" fill="#0e2a26"/>
|
||||
<ellipse cx="339.6" cy="446.9" rx="32" ry="46.1" fill="none" stroke="#0e2a26" stroke-width="2.8"/>
|
||||
<ellipse cx="327.4" cy="429.4" rx="9.6" ry="11.1" fill="#ffffff" transform="rotate(-25 327.4 429.4)"/>
|
||||
<circle cx="353" cy="467.6" r="3.8" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M286.8 430.2 C290 396.9 307.6 391 330 391 C354 391 371.6 400.8 373.2 428.2" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M298 408.6 L272.4 398.8 L288.4 428.2 Z" fill="#4a1410"/>
|
||||
<path d="M312.4 491 Q330 495.9 347.6 490" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/><clipPath id="eyefA"><path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z"/></clipPath>
|
||||
<path d="M440 435.3 C440 400.5 453.2 393 470 393 C488 393 500 402.4 500 432.5 C500 468.2 485.6 487 470 487 C453.2 487 440 468.2 440 435.3 Z" fill="#fffaf2"/>
|
||||
<g clip-path="url(#eyefA)">
|
||||
<ellipse cx="470" cy="388.3" rx="42" ry="28.2" fill="#e7cfc2"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="#2d8a7a"/>
|
||||
<ellipse cx="479.6" cy="419.2" rx="25.2" ry="27.4" fill="#174f47"/>
|
||||
<path d="M460.9 457.6 C467.6 488.6 491.6 488.6 498.3 457.6 C489.2 474 470 474 460.9 457.6 Z" fill="#73c6b3"/>
|
||||
<ellipse cx="479.6" cy="444.4" rx="10.1" ry="22.1" fill="#0e2a26"/>
|
||||
<ellipse cx="479.6" cy="446.6" rx="24" ry="44.2" fill="none" stroke="#0e2a26" stroke-width="2.1"/>
|
||||
<ellipse cx="470.5" cy="429.8" rx="7.2" ry="10.6" fill="#ffffff" transform="rotate(-25 470.5 429.8)"/>
|
||||
<circle cx="489.7" cy="466.5" r="2.9" fill="#ffffff"/>
|
||||
</g>
|
||||
<path d="M437.6 430.6 C440 398.6 453.2 393 470 393 C488 393 501.2 402.4 502.4 428.7" fill="none" stroke="#4a1410" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M494 408 L513.2 402.4 L501.2 428.7 Z" fill="#4a1410"/>
|
||||
<path d="M456.8 488.9 Q470 493.6 483.2 487.9" fill="none" stroke="#4a1410" stroke-width="2.8" stroke-linecap="round"/>
|
||||
<path d="M424 470 L433 482 L423 485" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<clipPath id="mouthA"><path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z"/></clipPath>
|
||||
<path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z" fill="#5a1712"/>
|
||||
<g clip-path="url(#mouthA)"><ellipse cx="425" cy="525" rx="16" ry="9" fill="#e0675a"/></g>
|
||||
<path d="M396 500 C402 526 434 530 450 498 Q424 507 396 500 Z" fill="none" stroke="#4a1410" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<g fill="none" stroke="#4a1410" stroke-width="4.5">
|
||||
<circle cx="331" cy="442" r="58"/>
|
||||
<ellipse cx="471" cy="442" rx="43" ry="56"/>
|
||||
<path d="M389 434 Q408 420 428 434" stroke-linecap="round"/>
|
||||
<path d="M273 436 L236 430" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M300 405 L318 392 M296 425 L330 398" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M452 408 L466 396" stroke="#ffffff" stroke-width="5" stroke-linecap="round" opacity="0.75"/>
|
||||
<path d="M288 374 Q324 356 364 368" fill="none" stroke="#3b2418" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M446 368 Q474 356 500 372" fill="none" stroke="#3b2418" stroke-width="6" stroke-linecap="round"/>
|
||||
<path d="M236 478 A26 26 0 0 0 262 404 A30 30 0 0 1 300 350 A24 24 0 0 0 346 360 A26 26 0 0 1 388 338 A24 24 0 0 0 432 356 A24 24 0 0 1 472 336 A24 24 0 0 0 514 352 A30 30 0 0 1 544 404 A18 18 0 0 0 552 432 C580 390 596 320 580 250 C540 175 260 170 215 240 C190 300 200 420 236 478 Z" fill="#3b2418"/>
|
||||
<clipPath id="bangclip"><path d="M236 478 A26 26 0 0 0 262 404 A30 30 0 0 1 300 350 A24 24 0 0 0 346 360 A26 26 0 0 1 388 338 A24 24 0 0 0 432 356 A24 24 0 0 1 472 336 A24 24 0 0 0 514 352 A30 30 0 0 1 544 404 A18 18 0 0 0 552 432 C580 390 596 320 580 250 C540 175 260 170 215 240 C190 300 200 420 236 478 Z"/></clipPath>
|
||||
<g clip-path="url(#bangclip)">
|
||||
<path d="M300 352 C320 300 380 290 430 300" fill="none" stroke="#6a4530" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M346 360 Q352 330 340 314 M432 356 Q440 330 430 312 M514 352 Q526 330 516 300" fill="none" stroke="#24140c" stroke-width="4" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M236 478 A26 26 0 0 0 262 404 A30 30 0 0 1 300 350 A24 24 0 0 0 346 360 A26 26 0 0 1 388 338 A24 24 0 0 0 432 356 A24 24 0 0 1 472 336 A24 24 0 0 0 514 352 A30 30 0 0 1 544 404 A18 18 0 0 0 552 432"
|
||||
fill="none" stroke="#4a1410" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<g id="scytale">
|
||||
<path d="M268 440 L146 322" stroke="#4a1410" stroke-width="26" stroke-linecap="round"/>
|
||||
<path d="M266 438 L148 324" stroke="#6b3a24" stroke-width="17" stroke-linecap="round"/>
|
||||
<path d="M252 424 L162 338" stroke="#f0e2c4" stroke-width="17" stroke-dasharray="9 7"/>
|
||||
<path d="M252 424 L162 338" stroke="#4a1410" stroke-width="2" stroke-dasharray="2 14"/>
|
||||
<circle cx="146" cy="322" r="12" fill="#2d8a7a" stroke="#4a1410" stroke-width="4"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g id="bust">
|
||||
<use href="#hairBack"/><use href="#torsoA"/><use href="#face"/>
|
||||
</g>
|
||||
<g id="mini">
|
||||
<g transform="scale(0.30) translate(-385 -300)"><use href="#hairBack"/></g>
|
||||
<g stroke="#4a1410" stroke-width="3" stroke-linejoin="round">
|
||||
<path d="M-30 150 L-28 198 L-4 198 L4 164 L10 198 L34 198 L42 150 Z" fill="#3b2418"/>
|
||||
<path d="M-32 196 h30 v10 q0 10 -10 10 h-22 q-6 0 -6 -8 Z" fill="#d9483b"/>
|
||||
<path d="M8 196 h28 q12 0 12 12 v2 q0 6 -6 6 h-34 Z" fill="#d9483b"/>
|
||||
<path d="M-36 152 C-38 110 -28 86 -6 78 L28 78 C46 86 54 110 50 152 Z" fill="#f0e2c4"/>
|
||||
<path d="M-36 152 C-38 110 -28 86 -6 78 L2 78 L6 152 Z" fill="#d9483b"/>
|
||||
<path d="M24 78 C46 86 54 110 50 152 L20 152 Z" fill="#a8352b"/>
|
||||
<path d="M-2 86 L14 86 L10 100 Z" fill="#2d8a7a"/>
|
||||
<path d="M-34 92 C-46 104 -44 122 -30 128" fill="none" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M-34 92 C-46 104 -44 122 -30 128" fill="none" stroke="#d9483b" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M-20 108 L22 102 L26 136 L-16 140 Z" fill="#f0e2c4"/>
|
||||
<path d="M3 105 L5 138" fill="none"/>
|
||||
<circle cx="-22" cy="126" r="7" fill="#a8714f"/>
|
||||
<circle cx="28" cy="122" r="7" fill="#a8714f"/>
|
||||
<path d="M46 92 C56 104 50 118 30 122" fill="none" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M46 92 C56 104 50 118 30 122" fill="none" stroke="#a8352b" stroke-width="7" stroke-linecap="round"/>
|
||||
</g>
|
||||
<g transform="scale(0.30) translate(-385 -300)"><use href="#face"/></g>
|
||||
</g>
|
||||
</defs>
|
||||
<rect width="1200" height="800" fill="#f4efe6"/>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="#efe2cf"/>
|
||||
<path d="M500 24 L790 24 L730 776 L470 776 Z" fill="#e9d6bf"/>
|
||||
<g clip-path="url(#card)"><use href="#bust"/></g>
|
||||
<path d="M70 24 L790 24 L730 776 L10 776 Z" fill="none" stroke="#d9483b" stroke-width="5"/>
|
||||
<path d="M14 728 L250 728 L246 776 L10 776 Z" fill="#d9483b"/>
|
||||
<text x="34" y="762" font-family="Consolas, 'Courier New', monospace" font-size="26" font-weight="700" letter-spacing="6" fill="#fff4e8">WEKSA</text>
|
||||
<text x="830" y="58" font-family="Consolas, 'Courier New', monospace" font-size="30" font-weight="700" letter-spacing="5" fill="#4a1410">WEKSA / A</text>
|
||||
<text x="830" y="84" font-family="Segoe UI, Arial, sans-serif" font-size="17" fill="#d9483b" letter-spacing="2">SPEECH BUBBLE</text>
|
||||
<g transform="translate(935 215) scale(1.25)"><use href="#mini"/></g>
|
||||
<text x="830" y="512" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">FULL BODY 2.5 HEADS</text>
|
||||
<g transform="translate(1048 112) scale(0.17)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1048" y="262" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">SILHOUETTE</text>
|
||||
<g transform="translate(1048 290) scale(0.06)"><use href="#bust" filter="url(#black)"/></g>
|
||||
<text x="1104" y="322" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">48 PX</text>
|
||||
<text x="830" y="556" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">HOOK</text>
|
||||
<text x="830" y="582" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#2a1a16">Hair is a speech balloon of curls; its tail lock points at her mouth.</text>
|
||||
<text x="830" y="626" font-family="Segoe UI, Arial, sans-serif" font-size="11" letter-spacing="2" fill="#6b5a52">PALETTE</text>
|
||||
<rect x="830" y="640" width="40" height="40" rx="4" fill="#d9483b" stroke="#4a1410" stroke-width="2"/><text x="878" y="657" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a1a16">#d9483b</text><text x="878" y="674" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#6b5a52">terracotta</text><rect x="950" y="640" width="40" height="40" rx="4" fill="#4a1410" stroke="#4a1410" stroke-width="2"/><text x="998" y="657" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a1a16">#4a1410</text><text x="998" y="674" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#6b5a52">line</text><rect x="1070" y="640" width="40" height="40" rx="4" fill="#3b2418" stroke="#4a1410" stroke-width="2"/><text x="1118" y="657" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a1a16">#3b2418</text><text x="1118" y="674" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#6b5a52">curls</text><rect x="830" y="708" width="40" height="40" rx="4" fill="#f0e2c4" stroke="#4a1410" stroke-width="2"/><text x="878" y="725" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a1a16">#f0e2c4</text><text x="878" y="742" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#6b5a52">paper</text><rect x="950" y="708" width="40" height="40" rx="4" fill="#2d8a7a" stroke="#4a1410" stroke-width="2"/><text x="998" y="725" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a1a16">#2d8a7a</text><text x="998" y="742" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#6b5a52">teal ink, accent</text><rect x="1070" y="708" width="40" height="40" rx="4" fill="#a8714f" stroke="#4a1410" stroke-width="2"/><text x="1118" y="725" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#2a1a16">#a8714f</text><text x="1118" y="742" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#6b5a52">skin</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
91
cast-designs/research/style-prior-art.md
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
# Style prior art: Persona portraits, chibi proportions, iconic reads
|
||||
|
||||
Facts gathered 2026-10-10 for the cast-designs shortlist. Each line says what the
|
||||
source states; where no primary source was found, the line says so. Conclusions
|
||||
drawn from these facts live in `../README.md`, not here.
|
||||
|
||||
## Persona series art direction and UI
|
||||
|
||||
- Shigenori Soejima has been the Persona series character designer and art
|
||||
director since Persona 3 (2006), succeeding Kazuma Kaneko.
|
||||
Source: [Wikipedia, Shigenori Soejima](https://en.wikipedia.org/wiki/Shigenori_Soejima).
|
||||
- Each mainline game is keyed to one colour: art director Masayoshi Sudou says
|
||||
Persona 3's main colour was teal, Persona 4's "a vivid yellow", Persona 5's
|
||||
"a crimson red", with black and white text chosen against it.
|
||||
Source: [Famitsu interview translated by SegaBits](https://segabits.com/?p=54918).
|
||||
- Kazuhisa Wada says Persona 5's UI design and red-and-black colouring were chosen
|
||||
from the game's theme and message, and contrasts P5's warm colours with
|
||||
Persona 3 Reload's cold ones.
|
||||
Source: [GamerBraves interview](https://gamerbraves.com/?p=129988).
|
||||
- Sudou and Soejima met often during Persona 3 to brainstorm the GUI; the same
|
||||
look extended to the website.
|
||||
Source: [SegaBits / Famitsu](https://segabits.com/?p=54918).
|
||||
- Persona 5's interface makes heavy use of character portraits and 3D models;
|
||||
Joker stays in the menu background and changes pose with the selected item.
|
||||
Source: [Mechanics of Magic, Visual Design of Games: Persona 5](https://mechanicsofmagic.com/2022/04/23/visual-design-of-games-persona-5/).
|
||||
- Persona 3 Reload remade the dialogue portraits and kept characters' signature
|
||||
expressions; one cited example is the protagonist's deadpan stare.
|
||||
Source: [Yahoo / GamesRadar on Reload portraits](https://sg.news.yahoo.com/persona-3-fans-really-hope-162644075.html),
|
||||
[Gematsu, Reload announcement](https://www.gematsu.com/2023/06/persona-3-reload-announced-for-xbox-series-xbox-one-and-pc).
|
||||
- Not found in a primary source: the exact expression count per character, or a
|
||||
written spec for dialogue-portrait framing. What the README says about bust
|
||||
framing (head and shoulders, angled toward the text box, one expression per
|
||||
line of dialogue) is observed convention across the games, not a cited rule.
|
||||
|
||||
## Persona Q: the series' own chibi redesign
|
||||
|
||||
- Persona Q (3DS, 2014) redrew the P3 and P4 casts as super-deformed chibi; Soejima
|
||||
did the redesigns and said it was his first time working in that style.
|
||||
Source: [Wikipedia, Persona Q](https://en.wikipedia.org/wiki/Persona_Q:_Shadow_of_the_Labyrinth),
|
||||
[Game Informer feature, 2014](https://www.gameinformer.com/b/features/archive/2014/07/18/a-glimpse-into-the-mind-of-personas-art-director.aspx).
|
||||
- His two stated reasons: kinship with Etrian Odyssey's look, and the small 3DS
|
||||
screen, where full-proportion designs would look cramped.
|
||||
Source: [Nintendo Everything](https://nintendoeverything.com/tag/shigenori-soejima/),
|
||||
[Nintenderos (Spanish)](https://www.nintenderos.com/2014/10/el-disenador-de-persona-q-nos-habla-sobre-el-estilo-del-juego/).
|
||||
- His method, as reported: find what makes each character stand out, then adjust
|
||||
those features so they stay recognisable after deformation.
|
||||
Source: [Game Informer](https://www.gameinformer.com/b/features/archive/2014/07/18/a-glimpse-into-the-mind-of-personas-art-director.aspx).
|
||||
|
||||
## Chibi proportions
|
||||
|
||||
- Chibi / super-deformed figures are usually 2 to 3 heads tall; guides range up
|
||||
to 4, and SD is quoted at 2 to 5 depending on style and age.
|
||||
Sources: [Wikipedia, Chibi (style)](https://www.wikipedia.org/wiki/Q-version),
|
||||
[Clip Studio tips, chibi body ratio](https://tips.clip-studio.com/es-es/articles/4806?org=1),
|
||||
[intfiction forum thread](https://intfiction.org/t/video-games-of-characters-with-short-proportions/63241).
|
||||
- Wikipedia puts the SD head at one third to one half of total height and notes
|
||||
that details such as jacket folds are dropped in favour of general shapes.
|
||||
Source: [Wikipedia, Chibi (style)](https://www.wikipedia.org/wiki/Q-version).
|
||||
- Terminology is loose: "SD" names the head-to-body ratio, "chibi" connotes small,
|
||||
round and childlike; the terms are used interchangeably. Source: forum
|
||||
discussion above (opinion, not a reference work).
|
||||
|
||||
## Iconic reads at small size
|
||||
|
||||
- Valve's TF2 paper (Mitchell, Francke, Eng, NPAR 2007): the nine classes were
|
||||
given distinct silhouettes and remain identifiable as pure silhouettes; the
|
||||
silhouette-only test was used during concept work.
|
||||
Source: [Illustrative Rendering in Team Fortress 2](https://www.cs.princeton.edu/courses/archive/fall07/cos597B/papers/mitchell-team-fortress.pdf).
|
||||
- The same paper: body proportions, weapons, and lines made by hats, footwear and
|
||||
clothing folds were designed to make each outline unique; interior folds echo
|
||||
the outer silhouette.
|
||||
Source: same paper; [Valve NPAR07 slides](https://cdn.fastly.steamstatic.com/apps/valve/2007/NPAR07_IllustrativeRenderingInTeamFortress2_Slides.pdf).
|
||||
- TF2's read hierarchy: team from colour, class from silhouette and shape,
|
||||
weapon from the rest of the outline.
|
||||
Source: [GDC 2008, Stylization With a Purpose](https://cdn.steamstatic.com/apps/valve/2008/GDC2008_StylizationWithAPurpose_TF2.pdf).
|
||||
- Practitioner guides (blog-grade, rules of thumb): fill the figure black and view
|
||||
it at about 32x32 px; check the whole cast side by side; circles read friendly,
|
||||
squares stable, triangles sharp or dangerous; keep 2 to 5 core colours with one
|
||||
signature accent; order of work is silhouette, then colour, then detail.
|
||||
Sources: [Bugnet, character design basics](https://bugnet.io/blog/character-design-basics-for-indie-devs),
|
||||
[Made Good Designs](https://madegooddesigns.com/character-design-basics/).
|
||||
|
||||
## Expression sets in portrait-driven games
|
||||
|
||||
- Commercial visual-novel sprite packs ship 6 to 33 expressions per character;
|
||||
a common core is neutral, smile, sad, angry, surprised, often plus one
|
||||
character-specific state. Packs keep framing and baseline identical across
|
||||
expressions so the sprite does not jump when it changes.
|
||||
Sources: [itch.io Luna collection](https://prometheus-pictures.itch.io/luna-emotional-sprite-collection-33-expressions-for-visual-novels-rpgs-romance),
|
||||
[itch.io convenience-store worker set](https://pompack.itch.io/friendly-convenience-store-worker).
|
||||
Market practice, not an industry standard.
|
||||
113
cast-designs/weksa.md
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
# Weksa
|
||||
|
||||
## Who she is
|
||||
|
||||
- The Persona of **weksa**, "a procedural language engine for alien grammars
|
||||
grounded in concept, culture, and constraint". Meaning is decomposed into an
|
||||
ontology, "passed through a worldview, constrained by grammar, shaped by
|
||||
phonology, distorted by history", and only then rendered as text. Writing and
|
||||
agent intent enter Weksa; typed utterance documents leave for AquaSynth.
|
||||
Source: `F:\Projects\weksa\README.md`.
|
||||
- "Weksa owns structured utterance and language lowering: interlingua, speaker
|
||||
state, private interpretation, intended effect, visible action, and trace."
|
||||
Read as "the organ that can stop character speech from being raw prompt
|
||||
vibes". Source: `metame.persona-intake.yaml` (Weksa).
|
||||
- Weksa is the first planned second mind (coordinator brief, 2026-10-10).
|
||||
- Existing face art: "Nerdy anthropologist obsessed with culture and language":
|
||||
glasses, field notebook, recorder, glyphs; take B adds phoneme cards, map pins,
|
||||
beadwork. Source: `VoidBot\assets\repo-faces\new-face-avatar-contact-sheet-2026-05-22.png`,
|
||||
`weksa-b-avatar.png`.
|
||||
- Pronoun: not sourced; the existing art reads as a woman. "She" is provisional.
|
||||
|
||||
Key colour: terracotta `#d9483b`, the red of field-note ink and fired clay
|
||||
tablets. Shape language for the character: flowing lines and branches, speech
|
||||
as something that grows and drifts.
|
||||
|
||||
## Direction A: Speech Bubble
|
||||
|
||||
- **Hook:** her hair is one big cloud of curls shaped like a speech balloon,
|
||||
complete with a tail curl pointing at her mouth.
|
||||
- **Silhouette:** a large puffy rounded balloon over the head with one pointed
|
||||
tail. Instantly a speech bubble in black fill.
|
||||
- **Shape language:** a cloud outline with one sharp point.
|
||||
- **Palette:** `#d9483b` terracotta, `#4a1410` line, `#3b2418` dark-brown
|
||||
curls, `#f0e2c4` notebook paper, `#2d8a7a` teal-ink accent (under 10 percent),
|
||||
`#a8714f` skin.
|
||||
- **Signature prop:** a field notebook, pencil behind her ear, a glyph sticky
|
||||
note on the cover.
|
||||
- **Motif:** the utterance itself. Her head is the thing she produces.
|
||||
- **Render prompt.** Hypothesis: a hair mass shaped like a recognisable symbol
|
||||
(a speech balloon) is the most iconic hook in the set at 48 px.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Weksa, a nerdy, delighted
|
||||
> anthropologist of languages, warm brown skin. Her dark-brown curly hair forms
|
||||
> one big puffy cloud shaped exactly like a comic speech balloon above and
|
||||
> around her head, with one pointed tail curl pointing down toward her mouth.
|
||||
> Large round glasses, bright curious eyes, a pencil behind her ear. Terracotta
|
||||
> field vest with many pockets over a cream shirt. She holds an open field
|
||||
> notebook full of strange glyphs. Key colour terracotta #d9483b, line #4a1410,
|
||||
> paper #f0e2c4, teal ink #2d8a7a.
|
||||
|
||||
## Direction B: Three-Script Scarf
|
||||
|
||||
- **Hook:** a very long scarf wound once around her neck and trailing in the
|
||||
wind, printed in three bands of three different invented scripts, like a
|
||||
wearable Rosetta Stone.
|
||||
- **Silhouette:** a compact head with a neat bun and a long ribbon of scarf
|
||||
streaming sideways out of frame. Motion and direction where others are static.
|
||||
- **Shape language:** long flowing S-curves.
|
||||
- **Palette:** `#d9483b` terracotta scarf, `#4a1410` line, `#f0e2c4` script
|
||||
bands, `#1f3a4a` deep slate coat, `#c9a24a` bead gold, `#a8714f` skin.
|
||||
- **Signature prop:** a small clay tablet with the same three scripts.
|
||||
- **Motif:** layered meaning: ontology, grammar, surface text, stacked; the
|
||||
same sentence in three registers.
|
||||
- **Render prompt.** Hypothesis: a strong directional line (the scarf) makes a
|
||||
bust portrait feel dynamic without a dynamic pose.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Weksa, a sharp, kind scholar of
|
||||
> invented languages, warm brown skin, dark hair in a neat bun pinned with two
|
||||
> beaded sticks. A very long terracotta scarf is wound once around her neck and
|
||||
> streams sideways in the wind, printed with three horizontal bands of three
|
||||
> different invented scripts in cream. Round glasses, attentive eyes. Deep slate
|
||||
> field coat. She holds a small clay tablet carved with the same three scripts.
|
||||
> Key colour terracotta #d9483b, line #4a1410, cream #f0e2c4, slate #1f3a4a.
|
||||
|
||||
## Direction C: Tree of Tongues
|
||||
|
||||
- **Hook:** her hair is braided into branching locks that fork like a language
|
||||
family tree, beads at every fork, each bead a word that drifted over time.
|
||||
- **Silhouette:** antler-like branching braids rising and spreading from the
|
||||
head. Wide and tall, irregular, alive.
|
||||
- **Shape language:** branching lines, forks, nodes.
|
||||
- **Palette:** `#d9483b` terracotta beads, `#4a1410` line, `#2b1a14` near-black
|
||||
braids, `#e8c27a` amber beads, `#5f7d4a` moss-green wrap, `#a8714f` skin.
|
||||
- **Signature prop:** a handheld field recorder with a little windshield.
|
||||
- **Motif:** diachrony: languages descend, split and drift; history distorts
|
||||
every word.
|
||||
- **Render prompt.** Hypothesis: a branching silhouette separates Weksa from
|
||||
every other character's closed shape, at some risk of reading as antlers.
|
||||
|
||||
> chibi anime character design, 2.5 heads tall super-deformed proportions, oversized head, large expressive anime eyes with two highlights, bold clean outline thicker on the outer silhouette than on inner lines, line colour a dark shade of the key colour, flat cel shading with one shadow tone and one rim light, no gradients, no texture, no pixel art, no 3D render. Character design sheet on a plain off-white background: on the left a large bust portrait, head and shoulders cropped at mid-chest, three-quarter view facing right; on the right a full-body chibi turnaround, front, three-quarter, side and back, neutral standing pose, all at the same height. No text, no logos, no watermark. Character: Weksa, a gentle, obsessive
|
||||
> linguist, warm brown skin. Her near-black hair is braided into many locks
|
||||
> that rise and branch like a family tree, each braid forking into two and then
|
||||
> two again, with terracotta and amber beads at every fork. Round glasses,
|
||||
> soft smile. Moss-green head wrap at the base of the braids, terracotta poncho
|
||||
> with woven pattern. She holds up a small handheld audio recorder with a fuzzy
|
||||
> windshield. Key colour terracotta #d9483b, line #4a1410, amber #e8c27a, moss
|
||||
> #5f7d4a.
|
||||
|
||||
## Portrait set
|
||||
|
||||
Framing: in B the scarf exits the card edge on the far side from the text box;
|
||||
in C the braids may crop at the top, the first fork may not.
|
||||
|
||||
1. **Field notes** (neutral): attentive half-smile, eyes on the speaker.
|
||||
2. **New word!**: eyes huge behind the glasses, hands up, mouth open.
|
||||
3. **Lost in translation**: head tilted, one eyebrow up, pencil at her lip.
|
||||
4. **That is not what it means**: flat polite smile, eyes closed, finger raised.
|
||||
5. **Listening**: eyes closed, recorder or notebook held close, calm.
|
||||
|
||||
## Render first
|
||||
|
||||
Direction A. The speech-balloon hair is the most iconic single shape proposed for
|
||||
anyone in the set; one render tells us whether a generator can hold it.
|
||||