Beetle Blocks: Visual Code for 3D Design
beetleblocks.com
beetleblocks.com
Although, I think OpenSCAD[0] is better (even to be used by children).
BeetleBlocks is built on top of Snap! (snap.berkeley.edu) which is a re-implementation of Scratch in JS that has full lambdas, continuations (call/cc), first class lists, and bunch of other CS-y ideas in a scratch-like UI.
Interestingly it seems to 100% work in Edge.