Brutalism Reimagined
For this week's Creative Code challenge : Brutalism, I decided to take the rules of brutalism and applied them in the language of OpenSCAD(https://openscad.org/).
I designed a building that follows the rules of Brutalism in both directions as shown in the pics below.
Video Shown First
Images Follow After
Code shown Below
Brutalism Rules - https://20bedfordway.com/news/guide-to-brutalist-architecture-london /
Rough unfinished surfaces
Unusual shapes
Heavy-looking materials
Massive forms
Small windows in relation to the other parts
Video Of the Brutalism Architectures in Motion with Audio coded by SonicPi
VIDEO
Images Below
OpenSCAD Code
union() {
color("white" , 1.0 ) cube([38 ,78 ,18 ],true );
rotate ([0 ,0 ,0 ]) color("black" , 1.0 ) cube([4 ,78 ,18 ],true );
}
for ( i = [0 : 7 ] ){
translate([-40 ,i * 7 ,31 ]) rotate ([0 ,0 ,0 ]) color("black" , 1.0 ) sphere(r = 7 );
}
difference() {
translate([0 ,0 ,31 ]) color("white" , 1 ) cube([93 ,78 ,18 ],true );
//round windows on second white block
translate([40 ,0 ,31 ]) rotate ([0 ,0 ,0 ]) color("black" , 1.0 ) sphere(r = 7 );
}
translate([0 ,0 ,63 ]) color("white" , 0.86 ) cube([140 ,80 ,23 ],true );
//Tranlating the cubes above the turqoise to satisified rule number 2
//windows
translate([0 ,0 ,15 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([23 ,0 ,15 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
union() {
for ( i = [0 : 7 ] ){
translate([-37 ,20 - i * 6 ,14 ]) rotate ([0 ,0 ,0 ]) color("black" , 1.0 ) sphere(r = 2 );
}
translate([-23 ,0 ,15 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
}
//set 2 of monochromatic (darkslateGray)
translate([-23 ,0 ,80 ]) color("gray" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([0 ,0 ,80 ]) color("DarkSlateGray" , 0.88 ) cube([28 ,48 ,14 ],true );
translate([23 ,0 ,80 ]) color("DarkSlateGray" , 0.88 ) cube([28 ,48 ,14 ],true );
//set 3 & 4 of monochromatic (darkslateGray)
translate([-37 ,0 ,92 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([0 ,0 ,92 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([37 ,0 ,92 ]) color("gray" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([-51 ,0 ,104 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([0 ,0 ,104 ]) color("grey" , 0.76 ) cube([28 ,48 ,14 ],true );
translate([51 ,0 ,104 ]) color("DarkSlateGray" , 0.76 ) cube([28 ,48 ,14 ],true );
//Ivory Cylinders
translate([-30 ,0 ,40 ]) color("Ivory" , 0.22 ) cylinder(h=15 , r1=9.5 , r2=19.5 , center=false );
translate([0 ,0 ,40 ]) color("silver" , 0.82 ) cylinder(h=15 , r1=9.5 , r2=19.5 , center=false );
translate([30 ,0 ,40 ]) color("Ivory" , 0.22 ) cylinder(h=15 , r1=9.5 , r2=19.5 , center=false );
translate([0 ,0 ,110 ]) color("black" , 0.62 ) cylinder(h=15 , r1=9.5 , r2=22.5 , center=false );
translate([0 ,0 ,120 ]) color("black" , 0.62 ) cylinder(h=15 , r1=9.5 , r2=22.5 , center=false );
Sonic Pi Code ( Slowed Down)
with_fx :ping_pong do
with_fx :echo do
live_loop :eddie do
synth :mod_fm
play choose([:Fs3 ,:Ds5 ,:B3 ]),attack: dice(4 ),decay: dice(5 ),sustain: 2 ,release: [1 ,1.5 ,3 ].choose
sleep [0 .25 ,1 ].choose
end
end
end