Fidget Spinner Tutorial

Coding an OpenSCAD Fidget
This Thing is a Fidget Spinner tutorial. I hate the idea of adding yet another fidget spinner. But then I thought the popularity of this thing may work to get some into coding.
I'm not posting the SCAD file here because I want those interested to actually code this not copy.
OpenSCAD - Code a Fidget Tutorial
Educationally Speaking this has it all:
Coding
Loopings
Module calls
*Variables
Modelling
- scaling
- transform
- hull
- difference
Physics
- friction
- gyroscopic action
- centrifugal forces
- RPMs
Poetry
One friend suggested writing poetry about fidgets.
Please comment if you have other ideas. I get excited about all the educational value this pesky fad may have.
UPDATE: To make a version that uses Bearings as weights make the following changes:
Change Line 6 to: WEIGHT_SIZE=11;
Change Line 6 to: WEIGHT_FACES=25;
Added 4 units to radius in line 25, so it reads:
translate ([ARM_DISTANCE,0,0]) cylinder( r=CENTER_BEARING_SIZE/2 + 4, h=8, center=true );
Adjusted X scale in line 31 to 1.25
I have uploaded a new version for those not inclined to typing.