The stage is dark until you carry the light. Move your hand and a single lamp travels with it; every figure throws a shadow that lengthens and swings because you moved the flame.
tancep kayon — the scene rests
Move · carry the lampDrag · stage a figure
Raise the lamp (move up) for short, faithful shadows; lower it toward the footlights for long, looming ones. Drag the cast to compose your scene.
You are the blencong
01 / The lamp
The flame
A single moving point of light
In a wayang theatre one oil lamp — the blencong — hangs above the puppeteer and sways all night. Here it hangs on your cursor. There is exactly one light and every shadow on the stage is cast from it. Move it and the whole stage answers at once.
Direction
Shadows fall away from you
A shadow points along the line from the lamp, through the figure, onto the screen. Swing the lamp left and every shadow leans right — together, like spokes around a hub. That shared pivot is the tell of a real point source, not a drawn-on blur.
Distance
Closer light, longer shadow
Drop the lamp toward the footlights and the figures loom — their shadows stretch across the linen and soften at the edges. Lift it overhead and they gather back beneath their own feet. Height is length; you set both with your hand.
The cast on their gapit
02 / The figures
iKayonthe tree of lifeOpens and closes every scene. Plant it centre-stage and the play rests.
iiArjunathe refined heroSlender, downcast, unhurried. The longest, most graceful shadow of the five.
iiiSemarthe servant-godRound and low to the ground. Throws a broad, comic shadow you cannot miss.
ivRahwanathe ten-faced kingBroad-shouldered and crowned. His shadow swells the moment the lamp drops.
vGarudathe sunbirdWings spread, held above the ground line. Casts the widest wingspan of shade.
The shadow is projected, not painted
03 / The geometry
Every point of a puppet is joined to the lamp by a straight line. Follow that line to the screen and you have found the shadow.
The figures float a little in front of the lit cloth, each on its own layer. For a lamp at height Λ and a figure standing at height h, the shadow is the figure scaled by Λ ⁄ (Λ − h) and pushed directly away from the lamp. That single ratio is the whole illusion.
When the lamp is high, the ratio sits near one and the shadow hugs the figure. As you lower the lamp, Λ − h shrinks, the ratio climbs, and the shadow stretches without limit toward the wings. Nothing is pre-rendered — the transform is recomputed from the lamp's live position every frame.
Fig. — point-light projection onto the kelir
How the stage is built
04 / Method
No video, no filter, no pre-baked shadows. Each figure is one silhouette, drawn twice.
Every puppet is a single SVG silhouette — a translucent hide cut with holes, exactly like the tooled leather (tatah) of a real wayang figure. It is placed once as the lit puppet and once again, behind it, as its shadow. On every pointer move the code reads the lamp's position, works out each figure's projection ratio from its layer height, and writes a fresh translate + scale onto the shadow copy — a true geometric homothety about the light, not a blur offset.
Drag a figure and the lamp holds still so you can watch the shadow throw while you place it; let go and the light returns to your hand. Raise or lower the lamp with the height of your cursor to trade faithful shade for looming shade. Plant the Kayon at centre-stage and the old stage direction whispers back. Prefer stillness? The theatre honours reduced-motion — the flame stops guttering, but your lamp still commands the shadows, because that is the whole point of the room.