functional language for computing with geometry
DEF vdom (h::IsRealPos) = ((EMBED:1 ~ Intervals:(PI*3/24)):3) * QUOTE:<h>;
DEF hdom (w::IsRealPos) = (S:2:-1 ~ EMBED:1):(Intervals:(PI*3/24):3 * QUOTE:<w>);
DEF steps (w,h::IsRealPos) (n::IsIntPos) = (STRUCT ~ CAT ~ #:n): < vdom:h, T:3:h, hdom:w, T:2:(-:w) >;
DEF hbasament = hstep*nsteps;
DEF stair = (MKPOL ~ UKPOL):(steps:<wstep,hstep>:nsteps RIGHT (S:2:-1 ~ @2 ~ CUBOID):<PI/24,wsteps,hbasament>);
DEF ramp = cylMap:(T:2:r4:stair);
DEF stairs = (STRUCT ~ ##:12):<ramp, R:<1,2>:(PI/6)>;