fix: herstel losse bladeren, een dinosaurus en dierenpoten (v0.4.78-beta)
All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 37s

Gecontroleerd door elke plaat op ware grootte te renderen en niet op de
gemiddelde vinkjes te vertrouwen; drie echte problemen bleken over het hoofd
gezien te zijn.

Losse bladeren die kaal aan de boom hingen:
- boom van vier seizoenen: de kroon was een gladde cirkel met losse spitse
  blaadjes op de rand, die als ogen of aangeplakte snippers lazen. Vervangen
  door ronde plukken ruim binnen elk kwart, in drie maten zodat ze niet als
  een paar ogen naast elkaar staan.
- regenwoud: de bladeren zweefden los in de lucht tussen de twee stammen,
  met alleen een puntig uiteinde dat de stam raakte. Beide stammen kregen nu
  een echte kroon erbovenop, met bladplukken erin.

De dinosaurus was echt vreemd: de hals was een rechte dikke staaf met een los
rondje erboven als kop, en de poten waren twee brede lappen die als "twee
poten" oogden. Volledig hertekend: een S-vormige hals, kop en snuit als één
doorlopende ovale vorm met oog, neusgat en mond, en vier duidelijk
gescheiden poten met elk een eigen voet.

Giraf en zebra op de savanne hadden wel vier potervakken, maar alleen de
achterpoten hadden een hoef - de voorpoten liepen dood zonder afsluiting en
vielen daardoor optisch weg, waardoor het dier op twee poten leek te staan.
Alle vier de poten hebben nu een eigen hoef.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011YErxhic5w9K57zmt8Q1uS
This commit is contained in:
Ramon 2026-07-30 15:02:12 +02:00
parent 308f877be6
commit 2731fb3469
5 changed files with 71 additions and 46 deletions

View file

@ -1 +1 @@
0.4.77-beta
0.4.78-beta

View file

@ -2,7 +2,7 @@
"use strict";
/* version shown until /api/version resolves (or if the fetch fails, e.g. offline).
Kept in sync by hand with the VERSION file at the repo root on every release. */
const VERSION = "0.4.77-beta";
const VERSION = "0.4.78-beta";
/* Safari en oudere mobiele browsers behandelen 100vh/100% soms als de hoogte
achter hun adres- en navigatiebalk. visualViewport geeft de werkelijk
zichtbare hoogte; de CSS gebruikt deze pixelwaarde als betrouwbare bron en

View file

@ -24,19 +24,24 @@ function plateSeasons(){
coloringContour("crown-autumn","M 400 210 L 400 60 C 428 56 460 70 480 92 C 500 112 524 118 542 140 C 560 160 560 186 550 210 Z","#f28c3c")+
coloringContour("crown-spring","M 400 210 L 400 360 C 372 364 340 350 320 328 C 300 308 276 302 258 280 C 240 260 240 234 250 210 Z","#d85aa5")+
coloringContour("crown-winter","M 400 210 L 550 210 C 560 234 560 260 542 280 C 524 302 500 308 480 328 C 460 350 428 364 400 360 Z","#2fb7a8")+
/* ronde plukken in plaats van losse spitse blaadjes: die lazen als ogen
of los tegen de rand geplakte snippers. Alle plukken staan ruim
binnen hun kwart, niet op de scheidslijnen, en in drie maten zodat
ze niet als een paar ogen naast elkaar staan */
coloringGroup("tree-detail",
coloringFlat("blossom-a","M 296 260 C 310 244 334 244 348 260 C 334 278 310 278 296 260 Z","#ffffff")+
coloringFlat("blossom-b","M 320 306 C 334 290 358 290 372 306 C 358 324 334 324 320 306 Z","#ffffff")+
coloringFlat("leaf-a","M 272 116 C 286 100 310 100 324 116 C 310 134 286 134 272 116 Z","#f7c948")+
coloringFlat("leaf-b","M 452 152 C 466 136 490 136 504 152 C 490 170 466 170 452 152 Z","#e0554d")+
coloringFlat("snow-clump","M 452 262 C 466 246 490 246 504 262 C 490 280 466 280 452 262 Z","#ffffff")+
coloringCircle("blossom-a",300,270,20,"#ffffff")+
coloringCircle("blossom-b",340,318,16,"#ffffff")+
coloringCircle("blossom-c",278,310,13,"#ffffff")+
coloringCircle("leaf-a",294,130,20,"#f7c948")+
coloringCircle("leaf-b",340,102,15,"#f7c948")+
coloringCircle("leaf-c",460,124,19,"#e0554d")+
coloringCircle("leaf-d",500,158,14,"#e0554d")+
coloringCircle("snow-clump",470,270,20,"#ffffff")+
coloringCircle("snow-clump-b",506,308,14,"#ffffff")+
coloringFlat("trunk-knot","M 384 372 C 396 362 412 362 420 372 C 412 386 396 386 384 372 Z","#f2b38f")+
coloringFlat("hollow","M 386 418 C 396 406 410 406 418 418 C 410 434 396 434 386 418 Z","#26344a")+
coloringFlat("blossom-c","M 268 296 C 282 280 306 280 320 296 C 306 314 282 314 268 296 Z","#ffffff")+
coloringFlat("leaf-c","M 468 112 C 482 96 506 96 520 112 C 506 130 482 130 468 112 Z","#f7c948")+
coloringFlat("snow-clump-b","M 464 296 C 478 280 502 280 516 296 C 502 314 478 314 464 296 Z","#ffffff"),2)+
coloringFlat("hollow","M 386 418 C 396 406 410 406 418 418 C 410 434 396 434 386 418 Z","#26344a"),2)+
coloringLine("M 376 392 C 394 384 410 384 426 392 M 372 424 C 390 416 408 416 424 424",2)+
coloringLine("M 400 60 L 400 360 M 250 210 L 550 210 M 296 106 L 504 314 M 504 106 L 296 314",3))+
coloringLine("M 400 60 L 400 360 M 250 210 L 550 210",3))+
coloringGroup("season-props",
coloringContour("tulip-cup","M 78 448 C 78 424 90 408 108 408 C 126 408 138 424 138 448 C 122 458 94 458 78 448 Z","#e0554d")+
coloringFlat("tulip-stem","M 100 526 C 96 500 96 474 100 448 L 116 448 C 112 474 112 500 116 526 Z","#3fae6a")+
@ -266,8 +271,13 @@ function plateSavanna(){
coloringFlat("giraffe-horn-left","M 494 142 C 490 122 496 108 508 102 C 516 116 512 132 506 144 Z","#8b5a3c")+
coloringFlat("giraffe-horn-right","M 534 140 C 534 120 542 106 554 102 C 558 118 552 132 544 144 Z","#8b5a3c")+
coloringFlat("giraffe-ear","M 560 170 C 582 158 604 160 614 174 C 598 188 574 188 560 182 Z","#f2b38f")+
coloringFlat("giraffe-hoof-far","M 646 556 L 688 556 L 686 570 L 656 574 Z","#8b5a3c")+
coloringFlat("giraffe-hoof-near","M 608 564 L 656 564 L 654 580 L 618 584 Z","#8b5a3c")+
/* elke poot krijgt een eigen hoef: eerder hadden alleen de
achterpoten er een, waardoor de voorpoten wegvielen en het dier op
twee poten leek te staan */
coloringFlat("giraffe-hoof-hind-far","M 646 556 L 688 556 L 686 570 L 656 574 Z","#8b5a3c")+
coloringFlat("giraffe-hoof-hind-near","M 608 564 L 656 564 L 654 580 L 618 584 Z","#8b5a3c")+
coloringFlat("giraffe-hoof-fore-far","M 540 566 L 580 566 L 578 580 L 548 584 Z","#8b5a3c")+
coloringFlat("giraffe-hoof-fore-near","M 504 574 L 550 574 L 548 590 L 512 594 Z","#8b5a3c")+
coloringDot(506,170,6),2)+
coloringLine("M 434 190 C 438 200 446 206 456 208 M 682 450 C 692 462 700 476 704 490",2)+
coloringLine("M 512 444 C 548 458 630 462 684 452 M 494 256 C 510 262 526 270 536 276 M 548 520 C 560 526 574 526 584 522",3))+
@ -287,8 +297,10 @@ function plateSavanna(){
coloringFlat("stripe-c","M 344 386 C 350 414 350 450 344 490 L 364 486 C 370 448 370 414 364 386 Z","#26344a")+
coloringFlat("stripe-mane","M 206 266 C 218 300 232 338 246 372 L 266 364 C 252 328 238 292 226 262 Z","#26344a")+
coloringFlat("zebra-ear","M 262 286 C 284 274 306 276 316 290 C 300 304 276 304 262 298 Z","#ffffff")+
coloringFlat("zebra-hoof-far","M 348 548 L 388 548 L 386 562 L 358 566 Z","#26344a")+
coloringFlat("zebra-hoof-near","M 316 556 L 360 556 L 358 570 L 326 574 Z","#26344a")+
coloringFlat("zebra-hoof-hind-far","M 348 548 L 388 548 L 386 562 L 358 566 Z","#26344a")+
coloringFlat("zebra-hoof-hind-near","M 316 556 L 360 556 L 358 570 L 326 574 Z","#26344a")+
coloringFlat("zebra-hoof-fore-far","M 264 566 L 308 566 L 306 580 L 274 584 Z","#26344a")+
coloringFlat("zebra-hoof-fore-near","M 240 574 L 290 574 L 288 590 L 250 594 Z","#26344a")+
coloringDot(214,290,6),2)+
coloringLine("M 146 308 C 150 318 158 324 168 326 M 382 450 C 392 462 400 474 404 486",2)+
coloringLine("M 232 442 C 268 456 344 460 390 450 M 210 334 C 224 342 236 350 244 356 M 258 512 C 270 518 284 518 294 514",3))+

View file

@ -162,29 +162,35 @@ function plateDinosaur(){
coloringGroup("ferns",
coloringFlat("fern-left","M 64 552 C 46 500 66 452 104 424 C 116 464 112 508 90 546 C 84 556 72 558 64 552 Z","#2fb7a8")+
coloringFlat("fern-right","M 712 548 C 694 496 714 448 752 420 C 764 460 760 504 738 542 C 732 552 720 554 712 548 Z","#2fb7a8"))+
/* volledig hertekend: een gracieuze S-hals met een echte snuit in plaats
van een rechte staaf met een los blokje erboven, en vier duidelijk
gescheiden poten met elk een eigen voet in plaats van twee brede
lapjes die als "twee poten" oogden */
coloringGroup("dinosaur",
/* staart in twee delen die smaller worden, en vier poten met een voet:
de dinosaurus las eerder als een blob met twee latjes eronder */
coloringFlat("dino-tail","M 262 448 C 196 436 132 448 78 482 C 116 508 172 512 224 502 C 248 496 254 472 264 462 Z","#3fae6a")+
coloringFlat("dino-hind-leg-far","M 380 494 L 418 494 L 414 542 L 428 566 L 386 570 L 376 542 Z","#3fae6a")+
coloringFlat("dino-fore-leg-far","M 286 496 L 320 496 L 318 542 L 330 566 L 292 570 L 284 542 Z","#3fae6a")+
coloringContour("dino-body","M 244 456 C 248 398 300 364 366 364 C 436 364 484 398 486 452 C 488 504 436 526 364 526 C 292 526 242 510 244 456 Z","#3fae6a")+
coloringContour("dino-neck","M 436 400 C 444 338 464 280 500 240 C 530 248 544 274 532 304 C 512 348 496 392 492 434 C 468 438 446 428 436 400 Z","#3fae6a")+
coloringFlat("dino-hind-leg-near","M 344 504 L 386 504 L 382 552 L 396 580 L 350 584 L 340 552 Z","#3fae6a")+
coloringFlat("dino-fore-leg-near","M 252 506 L 292 506 L 290 552 L 302 580 L 258 584 L 250 552 Z","#3fae6a")+
coloringContour("dino-head","M 486 244 C 502 214 542 206 570 222 C 596 238 598 268 578 286 C 552 296 514 288 490 274 C 482 266 482 252 486 244 Z","#3fae6a")+
coloringFlat("dino-tail","M 232 452 C 160 434 90 438 40 462 C 62 490 112 502 168 498 C 202 494 224 476 236 460 Z","#3fae6a")+
coloringFlat("dino-hind-leg-far","M 388 470 L 424 470 L 420 526 L 430 566 L 396 570 L 386 526 Z","#3fae6a")+
coloringFlat("dino-fore-leg-far","M 266 472 L 300 472 L 298 522 L 306 566 L 274 570 L 264 522 Z","#3fae6a")+
coloringContour("dino-body","M 220 460 C 224 396 278 356 350 356 C 426 356 480 396 484 452 C 488 500 434 528 352 528 C 276 528 216 504 220 460 Z","#3fae6a")+
/* een echte S-bocht in plaats van een rechte buis, en kop+snuit als één
doorlopende ovale vorm in plaats van een los aangeplakt snuitje */
coloringContour("dino-neck","M 452 420 C 460 372 486 330 522 296 C 540 280 552 270 566 262 L 594 292 C 578 302 560 318 540 340 C 508 372 486 402 478 434 C 468 440 452 434 452 420 Z","#3fae6a")+
coloringFlat("dino-hind-leg-near","M 350 480 L 390 480 L 388 534 L 398 574 L 358 578 L 346 534 Z","#3fae6a")+
coloringFlat("dino-fore-leg-near","M 244 482 L 282 482 L 280 530 L 288 574 L 250 578 L 240 530 Z","#3fae6a")+
coloringContour("dino-head","M 572 278 C 558 252 570 222 600 212 C 630 202 658 218 664 246 C 670 272 654 296 624 302 C 598 306 580 298 572 278 Z","#3fae6a")+
coloringGroup("dino-detail",
coloringFlat("dino-belly","M 258 484 C 288 508 342 518 396 514 C 432 512 460 504 476 490 C 462 516 416 526 364 526 C 306 526 266 512 258 484 Z","#f7c948")+
coloringFlat("dino-back-plate-a","M 296 372 C 304 344 322 330 342 334 C 328 350 316 362 310 376 Z","#f28c3c")+
coloringFlat("dino-back-plate-b","M 356 364 C 364 336 382 322 402 326 C 388 342 378 354 372 368 Z","#f28c3c")+
coloringFlat("dino-back-plate-c","M 418 370 C 426 342 442 330 460 336 C 446 350 438 362 432 376 Z","#f28c3c")+
coloringCircle("dino-eye",544,240,11,"#ffffff")+
coloringDot(545,241,5)+
coloringFlat("dino-nostril","M 566 250 C 574 246 582 248 586 254 C 580 260 570 260 564 256 Z","#8b5a3c")+
coloringFlat("dino-foot-far","M 372 556 L 432 556 L 430 570 L 380 574 Z","#8b5a3c")+
coloringFlat("dino-foot-near","M 334 570 L 400 570 L 398 586 L 344 590 Z","#8b5a3c"),2)+
coloringLine("M 578 274 C 566 280 550 282 536 280 M 500 254 C 508 248 518 244 528 244",2)+
coloringLine("M 272 466 C 306 478 356 484 404 482 M 462 320 C 476 328 488 340 496 356 M 96 484 C 140 492 180 492 216 486 M 300 526 C 314 534 330 534 344 528",3))+
coloringFlat("dino-belly","M 240 480 C 268 508 312 522 356 522 C 400 522 440 508 466 484 C 456 512 408 528 352 528 C 296 528 250 510 240 480 Z","#f7c948")+
coloringFlat("dino-back-plate-a","M 296 368 C 304 342 322 328 342 332 C 328 348 316 360 310 374 Z","#f28c3c")+
coloringFlat("dino-back-plate-b","M 350 358 C 358 330 376 316 396 320 C 382 336 372 348 366 362 Z","#f28c3c")+
coloringFlat("dino-back-plate-c","M 404 362 C 412 334 428 322 446 328 C 432 342 424 354 418 368 Z","#f28c3c")+
coloringCircle("dino-eye",632,244,11,"#ffffff")+
coloringDot(633,245,5)+
coloringFlat("dino-nostril","M 570 264 C 563 260 556 262 553 268 C 558 274 566 274 570 269 Z","#8b5a3c")+
coloringFlat("dino-foot-hind-far","M 380 560 L 436 560 L 434 574 L 384 578 Z","#8b5a3c")+
coloringFlat("dino-foot-fore-far","M 258 560 L 312 560 L 310 574 L 262 578 Z","#8b5a3c")+
coloringFlat("dino-foot-hind-near","M 340 568 L 404 568 L 402 584 L 344 588 Z","#8b5a3c")+
coloringFlat("dino-foot-fore-near","M 232 568 L 294 568 L 292 584 L 236 588 Z","#8b5a3c"),2)+
coloringLine("M 560 274 C 553 280 550 288 552 296")+
coloringLine("M 272 466 C 306 478 356 484 404 482 M 480 400 C 500 380 522 358 546 338 M 96 484 C 140 492 180 492 216 486 M 300 526 C 314 534 330 534 344 528",3))+
coloringGroup("eggs",
coloringFlat("egg-a","M 168 566 C 156 546 162 522 180 516 C 198 522 204 546 192 566 Z","#f7c948")+
coloringFlat("egg-b","M 214 570 C 202 552 208 530 224 524 C 240 530 246 552 234 570 Z","#f7c948")+

View file

@ -60,15 +60,22 @@ function plateRainforest(){
" M 686 254 C 682 336 682 410 688 472 M 704 254 C 702 336 702 410 706 472",2)+
coloringLine("M 98 240 C 118 246 152 246 174 240 M 100 320 C 120 326 154 326 176 320 M 104 404 C 124 410 156 410 178 404"+
" M 664 300 C 682 306 706 306 724 300 M 666 380 C 684 386 708 386 726 380",3)))+
coloringGroup("leaves-back",
coloringFlat("leaf-a","M 176 208 C 232 172 306 176 344 208 C 300 246 226 250 176 226 Z","#3fae6a")+
coloringFlat("leaf-b","M 664 264 C 606 226 528 228 488 258 C 534 298 612 302 664 280 Z","#3fae6a")+
coloringFlat("leaf-c","M 176 314 C 226 282 292 286 326 314 C 286 348 220 352 176 330 Z","#3fae6a")+
coloringGroup("leaves-extra",
coloringFlat("leaf-d","M 664 372 C 612 340 544 344 510 372 C 550 404 618 408 664 388 Z","#3fae6a")+
coloringFlat("leaf-e","M 176 414 C 220 384 280 388 310 414 C 274 446 214 450 176 428 Z","#3fae6a"),2)+
coloringLine("M 186 216 C 240 212 296 214 336 220 M 654 272 C 600 268 542 268 494 272 M 186 322 C 232 318 284 320 318 324"+
" M 654 380 C 606 376 556 376 516 380 M 186 420 C 226 416 272 418 302 422",3))+
/* echte kronen bovenop de stammen in plaats van losse bladeren die
kaal in de lucht leken te hangen tussen de twee stammen in */
coloringGroup("canopy-left",
coloringContour("canopy-left-main","M 50 190 C 22 172 20 132 48 112 C 42 78 82 54 120 64 C 136 36 184 36 202 64 C 236 68 248 106 224 130 C 234 158 206 184 172 176 C 150 194 88 196 50 190 Z","#3fae6a")+
coloringGroup("canopy-left-detail",
coloringCircle("canopy-left-a",92,110,22,"#2fb7a8")+
coloringCircle("canopy-left-b",152,88,17,"#2fb7a8")+
coloringCircle("canopy-left-c",188,138,15,"#2fb7a8"),2)+
coloringLine("M 60 150 C 90 140 130 138 160 148 M 90 90 C 120 82 160 84 190 96",3))+
coloringGroup("canopy-right",
coloringContour("canopy-right-main","M 606 250 C 580 232 578 194 604 174 C 598 142 636 120 672 128 C 688 102 732 102 748 128 C 780 132 792 168 770 190 C 780 216 754 240 722 234 C 700 250 642 252 606 250 Z","#3fae6a")+
coloringGroup("canopy-right-detail",
coloringCircle("canopy-right-a",650,190,22,"#2fb7a8")+
coloringCircle("canopy-right-b",706,158,17,"#2fb7a8")+
coloringCircle("canopy-right-c",744,206,15,"#2fb7a8"),2)+
coloringLine("M 618 208 C 648 198 688 196 718 206 M 654 148 C 684 140 724 142 754 154",3))+
coloringGroup("branch",
coloringContour("branch","M 184 388 C 280 372 400 372 520 388 L 520 420 C 400 404 282 404 184 420 Z","#8b5a3c")+
coloringGroup("branch-moss",