proc randRot(float $randAmt) { if ($randAmt != 0) { float $r1 = rand($randAmt) - $randAmt/2; float $r2 = rand($randAmt) - $randAmt/2; float $r3 = rand($randAmt) - $randAmt/2; rotate $r1 $r2 $r3; } } // Note, I should probably do some parent-child stuff here proc makeMenger(float $size, float $tx, float $ty, float $tz, float $randAmt, int $n) { if ($n == 0) { polyCube; //CreateSubdivCube; scale $size $size $size; move -localSpace $tx $ty $tz; } else { float $o = $size/3.0; makeMenger($size / 3, $tx-$o, $ty-$o, $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty-$o, $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty+$o, $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty+$o, $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty-$o, $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty-$o, $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty+$o, $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty+$o, $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx , $ty-$o, $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx , $ty-$o, $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx , $ty+$o, $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx , $ty+$o, $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty , $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty , $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty , $tz-$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty , $tz+$o, $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty-$o, $tz , $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx-$o, $ty+$o, $tz , $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty-$o, $tz , $randAmt, $n-1); randRot($randAmt); makeMenger($size / 3, $tx+$o, $ty+$o, $tz , $randAmt, $n-1); randRot($randAmt); } } makeMenger(1,0,0,0,10,2); select -cl;