← back to Dead Agentabrams
Sync ROOM 01: full cutout dancers + boat
f52b54574eefd1812dcbfc8f614ca8f9dec15a72 · 2026-09-01 18:46:28 -0700 · Steve Abrams
Files touched
Diff
commit f52b54574eefd1812dcbfc8f614ca8f9dec15a72
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Sep 1 18:46:28 2026 -0700
Sync ROOM 01: full cutout dancers + boat
---
room/index.html | 41 +++++++++++++++++++++--------------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/room/index.html b/room/index.html
index 19a1b72..e0b3838 100644
--- a/room/index.html
+++ b/room/index.html
@@ -521,23 +521,23 @@ function drawFigure(x,y,s,phase,type,accent){
}
ctx.rotate(turn*0.28);
- ctx.fillStyle=pal('dancer',0);
+ const body='rgba(74,30,34,0.98)'; // flat cutout costume tone
- // head (with a small mask mark)
- ctx.beginPath(); ctx.arc(0,-22,4.6,0,7); ctx.fill();
- ctx.fillStyle=accent; ctx.globalAlpha=0.85;
- ctx.fillRect(-3.4,-24,6.8,2.4); // mask band
- ctx.globalAlpha=1; ctx.fillStyle=pal('dancer',0);
+ // head (with a mask mark) — flat fill + bold outline
+ cut(body,1.4);
+ ctx.beginPath(); ctx.arc(0,-22,4.6,0,7); fillOutline();
+ ctx.fillStyle=accent; ctx.globalAlpha=0.9; ctx.fillRect(-3.4,-24,6.8,2.4); ctx.globalAlpha=1; // mask band
- // torso (tapered)
+ // torso (tapered) — cutout
+ cut(body,1.4);
ctx.beginPath();
ctx.moveTo(-4,-18); ctx.quadraticCurveTo(0,-6,-3,4);
ctx.lineTo(3,4); ctx.quadraticCurveTo(0,-6,4,-18);
- ctx.closePath(); ctx.fill();
+ ctx.closePath(); fillOutline();
- // arms — swing conveys weight/effort
+ // arms — swing conveys weight/effort (bold outline limbs)
const sw = Math.sin(t*(type==='musician'?2:1.4)+ph)*armSwing;
- ctx.lineWidth=2.6; ctx.strokeStyle=pal('dancer',0); ctx.lineCap='round';
+ ctx.lineWidth=2.8; ctx.strokeStyle=OUTLINE; ctx.lineCap='round';
ctx.beginPath();
ctx.moveTo(-3,-15); ctx.lineTo(-9-sw*4,-10+sw*3);
ctx.moveTo(3,-15); ctx.lineTo(9-sw*4,-10-sw*3);
@@ -581,14 +581,14 @@ function drawBoat(){
if(S.cam==='over'){ drawBoatOverhead(accent,lan,glow); ctx.restore(); return; }
// ----- hull -----
- ctx.fillStyle='rgba(30,8,12,0.96)';
+ cut('rgba(52,16,22,0.98)',3.5);
ctx.beginPath();
ctx.moveTo(-230,40);
ctx.quadraticCurveTo(-260,10,-210,4);
ctx.lineTo(210,4);
ctx.quadraticCurveTo(262,10,232,40);
ctx.quadraticCurveTo(0,78,-230,40);
- ctx.closePath(); ctx.fill();
+ ctx.closePath(); fillOutline();
// waterline highlight
ctx.strokeStyle=pal('riverHi',0); ctx.globalAlpha=0.5; ctx.lineWidth=2;
ctx.beginPath(); ctx.moveTo(-215,42); ctx.quadraticCurveTo(0,72,215,42); ctx.stroke();
@@ -601,8 +601,9 @@ function drawBoat(){
{y:-60,w:120, h:-26, n:5} // upper
];
deckDefs.forEach((d,di)=>{
- ctx.fillStyle='rgba(46,14,18,0.95)';
+ ctx.fillStyle='rgba(72,26,30,0.97)';
ctx.fillRect(-d.w, d.y+d.h, d.w*2, 6);
+ ctx.strokeStyle=OUTLINE; ctx.lineWidth=1.6; ctx.strokeRect(-d.w, d.y+d.h, d.w*2, 6);
ctx.strokeStyle='rgba(70,24,28,0.9)'; ctx.lineWidth=2;
for(let px=-d.w; px<=d.w; px+=d.w/6){
ctx.beginPath(); ctx.moveTo(px,d.y+d.h); ctx.lineTo(px,d.y+d.h+6); ctx.stroke();
@@ -616,11 +617,11 @@ function drawBoat(){
});
// ----- smokestacks -----
- ctx.fillStyle='rgba(24,6,10,0.98)';
[-40,40].forEach(sx=>{
- ctx.fillRect(sx-7,-140,14,86);
- ctx.fillStyle=accent; ctx.globalAlpha=0.6; ctx.fillRect(sx-9,-142,18,6); ctx.globalAlpha=1;
- ctx.fillStyle='rgba(24,6,10,0.98)';
+ ctx.fillStyle='rgba(46,14,20,0.98)'; ctx.strokeStyle=OUTLINE; ctx.lineWidth=2.4;
+ ctx.fillRect(sx-7,-140,14,86); ctx.strokeRect(sx-7,-140,14,86);
+ ctx.fillStyle=accent; ctx.globalAlpha=0.7; ctx.fillRect(sx-9,-142,18,6); ctx.globalAlpha=1;
+ ctx.strokeRect(sx-9,-142,18,6);
});
// smoke drift
if(!S.reduced){
@@ -632,9 +633,9 @@ function drawBoat(){
}
// ----- pilot house -----
- ctx.fillStyle='rgba(40,12,16,0.98)';
- ctx.fillRect(-30,-104,60,30);
- ctx.fillStyle=accent; ctx.globalAlpha=0.35; ctx.fillRect(-24,-98,48,10); ctx.globalAlpha=1;
+ ctx.fillStyle='rgba(64,22,26,0.98)'; ctx.strokeStyle=OUTLINE; ctx.lineWidth=2.4;
+ ctx.fillRect(-30,-104,60,30); ctx.strokeRect(-30,-104,60,30);
+ ctx.fillStyle=accent; ctx.globalAlpha=0.4; ctx.fillRect(-24,-98,48,10); ctx.globalAlpha=1;
// ----- paddlewheel (right side) -----
drawPaddlewheel(232,26,accent);
← 12d58b3 Sync ROOM 01: cutout animals + paper grain
·
back to Dead Agentabrams
·
Sync ROOM 01: singing songbirds with note-bubbles 19a1a6b →