← back to Scarlet Riverboat Masquerade
Colorful dancing-bear troupe synced to the music: rose/gold/teal bears, arms raised overhead, hip sway + dance steps, HOP on the beat when React is on. Original design (not the GD trademark)
ef794b8da47166403810c817b9e61071690aba57 · 2026-09-01 22:02:42 -0700 · Steve Abrams
Files touched
Diff
commit ef794b8da47166403810c817b9e61071690aba57
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Sep 1 22:02:42 2026 -0700
Colorful dancing-bear troupe synced to the music: rose/gold/teal bears, arms raised overhead, hip sway + dance steps, HOP on the beat when React is on. Original design (not the GD trademark)
---
index.html | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/index.html b/index.html
index 479325f..54fb9a7 100644
--- a/index.html
+++ b/index.html
@@ -886,13 +886,13 @@ function bearAndFireflies(x,y,s,t,accent){
// two bear cubs dancing beside the conductor — bob + rock, bouncing harder on the beat when reactive
// articulated "puppet-style" dancing bear — jointed limbs swing, hips sway, head bobs; bigger on the beat
-function bearCub(x,y,s,t,ph){
+function bearCub(x,y,s,t,ph,FUR){
const beat=(S.pulse||0), amp=(S.amp||0), e=1+beat*0.9+amp*0.5;
- const sway=Math.sin(t*2.3+ph)*0.14*e; // hip sway
- const bob=Math.abs(Math.sin(t*4.6+ph))*(2+beat*3+amp*2); // small grounded bob
- const step=Math.sin(t*2.3+ph); // alternating legs
- const arm=Math.sin(t*2.3+ph+0.4); // waving arms
- const FUR='rgba(84,40,38,0.98)';
+ const sway=Math.sin(t*2.6+ph)*0.22*e; // lively hip sway
+ const bob=Math.abs(Math.sin(t*5.2+ph))*(2.5+amp*2.5) + beat*12; // dances free-running, HOPS on each beat when reacting
+ const step=Math.sin(t*2.6+ph); // alternating dance steps
+ const armL=Math.sin(t*3.4+ph), armR=Math.sin(t*3.4+ph+Math.PI); // hands wave overhead, alternating
+ FUR = FUR || 'rgba(84,40,38,0.98)';
ctx.save(); ctx.translate(x,y-bob); ctx.scale(s*1.2,s*1.2); ctx.rotate(sway);
function limb(px,py,ang,len,w,foot){ // a jointed, outlined limb
ctx.save(); ctx.translate(px,py); ctx.rotate(ang); ctx.lineCap='round';
@@ -901,12 +901,12 @@ function bearCub(x,y,s,t,ph){
if(foot){ cut(FUR,1.8); ctx.beginPath(); ctx.ellipse(0,len,3.2,2,0,0,7); fillOutline(); }
ctx.restore();
}
- limb(-3.5,-3, 0.15+step*0.45, 12, 6.5, true); // legs (behind body)
- limb(3.5,-3, 0.15-step*0.45, 12, 6.5, true);
+ limb(-3.5,-3, 0.12+step*0.55, 12, 6.5, true); // legs — alternating dance steps
+ limb(3.5,-3, 0.12-step*0.55, 12, 6.5, true);
cut(FUR,2.6); ctx.beginPath(); ctx.ellipse(0,-12,8.5,11,0,0,7); fillOutline(); // body
- ctx.fillStyle='rgba(122,68,58,0.9)'; ctx.beginPath(); ctx.ellipse(0,-10,4.5,6,0,0,7); ctx.fill(); // belly
- limb(-7,-18, -0.7+arm*0.55, 11, 5, true); // arms raised, waving
- limb(7,-18, 0.7-arm*0.55, 11, 5, true);
+ ctx.fillStyle='rgba(255,255,255,0.22)'; ctx.beginPath(); ctx.ellipse(0,-10,4.5,6,0,0,7); ctx.fill(); // belly highlight
+ limb(-7,-18, 2.3+armL*0.45+beat*0.35, 11, 5, true); // arms raised overhead, waving + thrust up on the beat
+ limb(7,-18, -2.3+armR*0.45-beat*0.35, 11, 5, true);
cut(FUR,2.4); ctx.beginPath(); ctx.arc(0,-30,7,0,7); fillOutline(); // head
ctx.beginPath(); ctx.arc(-6,-36,3,0,7); fillOutline(); // ears
ctx.beginPath(); ctx.arc(6,-36,3,0,7); fillOutline();
@@ -914,9 +914,10 @@ function bearCub(x,y,s,t,ph){
ctx.fillStyle=OUTLINE; ctx.beginPath(); ctx.arc(0,-29,1.1,0,7); ctx.fill(); // nose
ctx.restore();
}
-function drawBearCubs(bx,by,t,scaleA){
- bearCub(bx-60, by, 1.0*scaleA, t, 0.0);
- bearCub(bx+54, by, 0.95*scaleA, t, 1.7);
+function drawBearCubs(bx,by,t,scaleA){ // a colorful dancing-bear troupe (our own design, not the GD trademark)
+ bearCub(bx-70, by, 1.00*scaleA, t, 0.0, 'rgba(206,66,116,0.98)'); // rose
+ bearCub(bx+50, by, 0.96*scaleA, t, 1.6, 'rgba(232,160,52,0.98)'); // gold
+ bearCub(bx+104,by, 0.90*scaleA, t, 3.1, 'rgba(72,172,150,0.98)'); // teal
}
// shoreline songbirds that "sing" the music — note-bubbles pop on the beat (♪♫♬, never lyrics)
← 77a4578 Restyle bear puppet festive + original (brighter cinnamon fu
·
back to Scarlet Riverboat Masquerade
·
Add Dancing Bears slider (1-10): user-sized troupe auto-dist 7a9cd0e →