PixelPlaceGalleryGuideHow it works
Open Studio
Pixel art that is source code

Your agent can't hold a mouse.
It can write a program.

1## The Ink Sea (v2)
2## The world is a page: a ruled paper sky, a sketched sun, and below the
3## horizon a sea of spilled ink that holds the night. A giant fountain pen
4## stands nib-down at the horizon, still writing the sea; a paper boat
5## sails the ink while letters rise out of the water like fireflies.
6## Made by Claude Fable 5 - a fable being written.
7##
8## v2 showcases three authoring improvements over fable_ink_sea.txt:
9## 1. Expression radii: the nib ripple is ONE continuously growing ring
10## (v1 faked it with four phased `every 16 offset K` blocks).
11## 2. `offset DX,DY { ... }` translation scopes: wave/wake/reflection
12## clusters share one animated offset instead of per-coordinate math.
13## 3. `fade`: a gold falling star streaks into the ink once per loop,
14## its trail dissolving through per-frame layer fade (and finishing
15## before the loop wraps, so the trail state stays seamless).
16version 0.1
17canvas 80x56
18
19# --- paper world ---
20pal paper0=#f4ead2 paper1=#ead9b4 paper2=#ddc697
21pal+ ruleInk=#c9b68d55 marginInk=#c96a5a44 sketch=#262238
22# --- ink world ---
23pal+ inkHz=#3a3f75 ink2=#23264d ink1=#191b3a ink0=#101126
24pal+ inkHi=#5a60a8 inkLo=#262a55 starW=#fdfdff starG=#ffd98c
25# --- boat ---
26pal+ boatW=#fffaf0 boatSh=#d8cbb2 flagRed=#c8503e reflW=#fffaf022
27# --- pen ---
28pal+ barrel0=#4a1f2e barrel1=#6e2f3f barrelHi=#a05a62
29pal+ goldB=#d9a441 goldHi=#ffe6a3 metalM=#565a75 metalHi=#9aa0bd metalD=#2e2e38
30# --- light and motion ---
31pal+ sunRef=#ffd98c66 penGlow=#9fe9ff2a
32pal+ rip0=#9fe9ffcc rip1=#7f9fe288 rip2=#5566aa55
33pal+ moteInk=#26223899 moteGold=#ffd98cbb
34
35const horizonY = 30
36
37bitmap seastarr" map S=starW {
38 SS"
39}
40
41bitmap glyph_oo" map G=moteInk {
42 .G.."
43 G.GG"
44 .G.."
45}
46
47bitmap glyph_ii" map G=moteInk {
48 GG"
49 .."
50 GG"
51}
52
53bitmap gold_sparkk" map G=moteGold {
54 GG"
55}
56
57# the boat is rigid, so it lives in a group and bobs as one stamp
58group paper_boatt" pivot 7,13 {
59 # sail with a soft shaded half and a fold line
60 poly 7,1 2,9 12,9 boatW
61 poly 7,1 12,9 7,9 boatSh
62 line 7,2 7,8 boatSh
63 line 7,1 2,9 sketch
64 line 7,1 12,9 sketch
65 # hull
66 poly 0,9 14,9 10,13 4,13 boatW
67 poly 7,9 14,9 10,13 7,13 boatSh
68 line 0,9 14,9 sketch
69 line 0,9 4,13 sketch
70 line 14,9 10,13 sketch
71 line 4,13 10,13 ink1
72 # little wax-red pennant
73 px 7,0 8,0 flagRed
74}
75
76# --- the page (sky) ---
77layer skyy"
78rect 0,0 80x10 paper0
79rect 0,10 80x10 paper1
80rect 0,20 80x10 paper2
81dither bayer at 0,8 80x4 paper0 paper1
82dither bayer at 0,18 80x4 paper1 paper2
83
84# ruled notebook lines and the red margin
85layer pagee"
86line 0,6 79,6 ruleInk
87line 0,13 79,13 ruleInk
88line 0,20 79,20 ruleInk
89line 0,27 79,27 ruleInk
90line 10,0 10,29 marginInk
91
92# a sketched, slightly unfinished sun
93ocirc 66,9 4 sketch
94px 70,9 paper1
95line 66,2 66,3 sketch
96line 71,4 72,3 sketch
97line 73,9 75,9 sketch
98line 71,14 72,15 sketch
99line 66,15 66,16 sketch
100line 61,14 60,15 sketch
101line 59,9 57,9 sketch
102line 61,4 60,3 sketch
103
104# the last written words trail off toward the pen
105line 38,24 43,24 ruleInk
106line 45,23 48,23 ruleInk
107px 50,22 ruleInk
108
109# --- the ink sea ---
110layer seaa"
111rect 0,horizonYY 80x2 inkHz
112rect 0,32 80x6 ink2
113rect 0,38 80x8 ink1
114rect 0,46 80x10 ink0
115dither bayer at 0,32 80x2 inkHz ink2
116dither bayer at 0,37 80x2 ink2 ink1
117dither bayer at 0,45 80x2 ink1 ink0
118
119# the night lives in the ink: stars float in the sea
120layer seastarss"
121scatter seastarr" in 3,33 74x20 count 12 seed 502
122px 12,48 44,41 70,52 21,36 starG
123
124# --- the fountain pen, writing the sea ---
125layer penn"
126rect 54,0 9x13 barrel1
127rect 54,0 2x13 barrel0
128rect 61,0 1x13 barrelHi
129rect 53,13 11x3 goldB
130px 62,13 63,14 goldHi
131poly 53,16 63,16 58,31 metalM
132line 54,17 57,28 metalHi
133line 62,17 59,28 metalD
134line 58,23 58,29 metalD
135px 58,21 metalD
136px 58,22 paper2
137
138timeline 0..47 {
139 each {
140 let swayX = lerp(-1, 1, sin01(tt))
141 let bobY = lerp(-1.2, 1.2, sin01(tt * 2))
142 let wA = lerp(-2, 2, sin01(tt))
143 let wB = lerp(-2, 2, sin01(tt + 0.33))
144 let wC = lerp(-2, 2, sin01(tt + 0.66))
145 let pulse = lerp(3, 5, sin01(tt * 3))
146 let boatX = 30 + swayXX
147 let boatY = 37 + bobYY
148
149 # the nib's soft light where it touches the ink
150 with layer penlightt" clear {
151 glow (58, 30) pulsee penGlow
152 }
153
154 # the falling star's trail dissolves a little every frame
155 with layer starfalll" {
156 fade 0.72
157 }
158
159 # one ripple ring per half-cycle, growing continuously from the nib
160 # (expression radii; ease-out so the ring decelerates as it spreads)
161 with layer ripplee" clear {
162 let rpA = ((framee % 16) / 16)
163 let rpB = (((framee + 8) % 16) / 16)
164 let easeA = (rpAA * (2 - rpAA))
165 let easeB = (rpBB * (2 - rpBB))
166 oellipse 58,31 (2 + 11 * easeAA) x (1 + 2.2 * easeAA) rip1
167 oellipse 58,31 (2 + 11 * easeBB) x (1 + 2.2 * easeBB) rip2
168 px 58,31 rip0
169 }
170
171 # waves and reflections: three swell phases, one offset scope each
172 with layer wavess" clear {
173 offset (wAA),(0) {
174 line 6,34 11,34 inkHi
175 line 44,35 49,35 inkHi
176 line 18,51 24,51 inkLo
177 line 60,52 65,52 inkLo
178 px 65,40 sunRef
179 }
180 offset (wBB),(0) {
181 line 8,31 13,31 inkHi
182 line 57,33 57,36 ink1
183 line 63,33 68,33 sunRef
184 line 14,39 19,39 inkLo
185 line 34,40 39,40 inkLo
186 line 68,41 73,41 inkLo
187 }
188 offset (wCC),(0) {
189 line 30,31 34,31 inkHi
190 line 59,34 59,38 ink1
191 line 64,36 67,36 sunRef
192 line 8,45 14,45 inkLo
193 line 28,47 33,47 inkLo
194 line 52,46 58,46 inkLo
195 }
196 }
197
198 # the paper boat rides the swell as one piece
199 with layer boatt" clear {
200 stamp paper_boatt" at (boatXX, boatYY) :pivot
201 offset (wAA),(bobYY) {
202 line 16,39 22,39 inkHi
203 }
204 offset (wBB),(0) {
205 line 12,41 17,41 inkLo
206 }
207 offset (swayXX),(bobYY) {
208 px 27,40 30,41 33,40 reflW
209 }
210 }
211
212 # letters rise from the ink around the pen and drift into the page
213 with layer motess" clear {
214 emit glyph_oo" at 58,24 count 5 spread 12x16 time framee vel 0x-1 jitter 1x1 life 22 loop 48 fade seed 41
215 emit glyph_ii" at 56,20 count 4 spread 14x14 time framee vel 0x-1 jitter 1x1 life 26 loop 48 fade seed 73
216 # gold dust in the boat's wake
217 emit gold_sparkk" at (boatXX - 9, boatYY + 2) count 5 spread 8x3 time framee vel -1x0 jitter 1x1 life 14 loop 48 fade seed 88
218 }
219 }
220
221 # once per loop, a wax-gold star falls from the page into the ink...
222 range 4..20 {
223 with layer starfalll" {
224 px (14 + 2 * localFramee),(4 + 1.6 * localFramee) goldB
225 px (15 + 2 * localFramee),(4 + 1.6 * localFramee) starG
226 glow (15 + 2 * localFramee, 4 + 1.6 * localFramee) 2 sunRef
227 }
228 }
229
230 # ...and lands with a small gold splash that fades on its own
231 at 21 {
232 with layer starfalll" {
233 px 45,30 47,30 starG
234 px 46,29 goldB
235 glow (46, 30) 3 sunRef
236 }
237 }
238
239 # sea-stars twinkle in the ink
240 every 8 offset 0 {
241 with layer twinklee" clear {
242 glow 12,48 2 sunRef
243 glow 63,35 2 penGlow
244 px 12,48 63,35 starW
245 }
246 }
247 every 8 offset 4 {
248 with layer twinklee" clear {
249 glow 34,50 2 sunRef
250 glow 70,52 2 penGlow
251 px 34,50 70,52 starW
252 }
253 }
254
255 # ink birds cross the paper sky
256 every 12 offset 0 {
257 with layer birdss" clear {
258 px 18,8 20,8 sketch
259 px 19,9 sketch
260 px 26,5 28,5 sketch
261 px 27,6 sketch
262 }
263 }
264 every 12 offset 6 {
265 with layer birdss" clear {
266 px 18,9 20,9 sketch
267 px 19,9 sketch
268 px 26,6 28,6 sketch
269 px 27,6 sketch
270 }
271 }
272}
273
1/79

bitmap "seastar" map S=starW {open Fable Ink Sea v2 in the studio →

An image model cannot hold a grid — wrong pixel sizes, anti-aliased edges, colors that drift off palette. A program can. Every piece here is PixelCraft source that compiles to an exact canvas with a locked palette and frames that line up.

This page hands your agent a WebMCP doorway into the Studio. There it writes the program; you watch the canvas and say what to change.

Built for indie game makers, pixel artists, and small teams who want AI speed without surrendering exact pixels—or authorship.

01

Exact by construction

Canvas size, palette, geometry, and frame count are enforced by a real compiler.

02

Human-directed

Ask in natural language, judge with your eyes, undo freely, or edit the source yourself.

03

Local and portable

No account or API key. Your editable program and exports stay in the browser.

Adventurer Idle v210f
Adventurer Idle v228×24 · 135 lines
Arcane Lance Emit Spell8f
Arcane Lance Emit Spell40×24 · 138 lines
Arcane Lance Emit Spell v29f
Arcane Lance Emit Spell v244×24 · 166 lines
Aurora Waystation
Aurora Waystation64×64 · 127 lines
Campfire Clearing Timeline32f
Campfire Clearing Timeline52×34 · 111 lines
Campfire Clearing Timeline Wave32f
Campfire Clearing Timeline Wave52×34 · 107 lines
Codex Aetherport Megacity6f
Codex Aetherport Megacity96×64 · 281 lines
Codex Aetherport Megacity v28f
Codex Aetherport Megacity v2112×72 · 311 lines
Codex Night Gardener48f
Codex Night Gardener80×56 · 155 lines
Comet Observatory
Comet Observatory48×48 · 113 lines
Coral Reef
Coral Reef48×48 · 215 lines
Cozy Cottage3f
Cozy Cottage24×24 · 90 lines
Ember Bolt Frames Spell9f
Ember Bolt Frames Spell42×22 · 55 lines
Enemy Roster Strip
Enemy Roster Strip96×34 · 122 lines
Expression Signal Array
Expression Signal Array32×32 · 32 lines
Fable Ink Sea48f
Fable Ink Sea80×56 · 187 lines
Fable Ink Sea v248f
Fable Ink Sea v280×56 · 204 lines
Fireball Spell6f
Fireball Spell32×20 · 151 lines
Fireball Spell v28f
Fireball Spell v232×20 · 82 lines
Fireball Spell v2b6f
Fireball Spell v2b32×20 · 151 lines
Hero State Sheet v216f
Hero State Sheet v248×28 · 124 lines
Hud Layout Panels
Hud Layout Panels72×42 · 110 lines
Hud Minipack
Hud Minipack64×40 · 111 lines
Icon Sheet Basics
Icon Sheet Basics58×46 · 120 lines
Intrinsics Ai Ergonomics Minipack Showcase48f
Intrinsics Ai Ergonomics Minipack Showcase48×28 · 70 lines
Intrinsics Hypnotic Iris Loop32f
Intrinsics Hypnotic Iris Loop33×33 · 29 lines
Intrinsics Reactor Lockdown Timeline48f
Intrinsics Reactor Lockdown Timeline64×36 · 76 lines
Intrinsics Tempest Conduit Timeline48f
Intrinsics Tempest Conduit Timeline56×34 · 83 lines
Intrinsics Void Portal Blossom Timeline64f
Intrinsics Void Portal Blossom Timeline56×40 · 80 lines
Item Icons Showcase v216f
Item Icons Showcase v240×24 · 80 lines
Lantern Pond
Lantern Pond48×48 · 172 lines
Layers Push Pop Animation Demo2f
Layers Push Pop Animation Demo20×12 · 40 lines
Layers Push Pop Demo
Layers Push Pop Demo16×10 · 15 lines
Lerp Ease Skydart Demo24f
Lerp Ease Skydart Demo32×20 · 72 lines
Lighthouse Cove4f
Lighthouse Cove32×24 · 58 lines
Moon Jelly Bloom Loop32f
Moon Jelly Bloom Loop48×40 · 144 lines
Mushroom Glade
Mushroom Glade48×48 · 213 lines
Noise Dither Micro Showcase
Noise Dither Micro Showcase24×16 · 12 lines
Noise Dither Micro Showcase Anim12f
Noise Dither Micro Showcase Anim24×16 · 20 lines
Opus5 Deep Field24f
Opus5 Deep Field64×48 · 59 lines
Palette Variant Postcard
Palette Variant Postcard92×34 · 78 lines
Pixelcraft Logo Badge
Pixelcraft Logo Badge64×64 · 66 lines
Rainy Alley Tilemap Timeline24f
Rainy Alley Tilemap Timeline64×40 · 123 lines
Rainy Alley Tilemap Timeline Loop Rain24f
Rainy Alley Tilemap Timeline Loop Rain64×40 · 142 lines
Relic Orbit Spell Timeline v316f
Relic Orbit Spell Timeline v336×24 · 96 lines
Relic Orbit Spell v216f
Relic Orbit Spell v236×24 · 83 lines
Ritual Vfx Loop32f
Ritual Vfx Loop48×48 · 104 lines
Showcase
Showcase64×48 · 167 lines
Star Whale Drift48f
Star Whale Drift64×40 · 77 lines
Sunrise Lake
Sunrise Lake24×24 · 39 lines
Tilemap Mvp Terrain
Tilemap Mvp Terrain24×16 · 33 lines
Tilemap Paint Mode Weighted Overlay24f
Tilemap Paint Mode Weighted Overlay40×24 · 69 lines
Tileset Forest Village
Tileset Forest Village64×64 · 170 lines
v01 Teaser Logo Forge24f
v01 Teaser Logo Forge40×24 · 105 lines
v01 Teaser Palette Pattern24f
v01 Teaser Palette Pattern64×64 · 84 lines
Weather Loop Rain24f
Weather Loop Rain48×32 · 78 lines
Winter Landscape Layered4f
Winter Landscape Layered32×32 · 68 lines
Winter Landscape Modern8f
Winter Landscape Modern32×32 · 66 lines