InnerSchematics
For this week's Creative Code Challenge by @sableraph: "Architecture", InnerSchematics is coded in LiveCodingYoutube, Locomotion & SonicPi to examine the works of some Intergalactic Landscape Architects.
"Landscape architects conceptualize, design, plan and manage the construction of natural, cultural and built landscape development for commercial projects, office complexes, parks, golf courses and residential development." - Job Bank Canada
Landscaping Process
The Landscaping Architecture was done by merging and remixing three former Locomotion Code submissions of WCCC:
In this case, Landscape Architects were tasked with building a world with the specs from those Locomotion Choreos. Which can be seen from both the external presentations and the inner mechanisms that run that planet.
Poem
Building the Improbable
Whimsical, magical
Entities, Planets and Buildings
Where Thoughts are Constantly Swimming
Trees are Grinnings
The moon is Singing
The Sun is Dimming
What is Improbability?
When does an Planet Architect,
Looks and Self-reflects
That this build, might be out of their depth?
Video
Code
Locomotion
-- Scene Setup
dancer { url = "test_proto_nograss.glb", size = range 0.35 4 (osc 0.075)};
dancer { url = "Garden.glb", size = range 0.35 4 (osc 0.075)};
dancer { url = "Garden.glb", size = range 1 6 (osc 0.075), z = 13};
dancer { url = "Garden.glb", size = range 2 8 (osc 0.075), z = 14};
camera { y = range -3 9 (osc 0.075), z = range 2 10 (osc 0.0075), x = range-3 3 (osc 0.0015) };
--purple is #800080
point {x = range 0 17 (osc 0.15), z = range 0 6 (osc 0.35) , intensity = range 8 25 (osc 0.5), color = 0x800080 };
c = hsv (step [0,1/3,1/3,2/3,2/3,2/3,1/3,1/3,1/3,0,0] (phase 1 0)) 0.2 (range 0.5 1 (osc 0.09));
c1 = hsv (step [0.5,1/3,1/3,2/3,0.5,2/3,2/3,1/3,1/3,1/3,0.5,0] (phase 1 0)) 0.3 (range 0.15 0.25 (osc 0.09));
c1c = hsv (step [0.5,1/3,1/3,2/3,0.5,2/3,2/3,1/3,1/3,1/3,0.5,0] (phase 1 0)) 0.47 (range 0.25 0.75 (osc 0.09));
cc = hsv (step [0,1/3,1/3,2/3,2/3
,2/3,1/3,1/3,1/3,0,0] (phase 1 0)) 0.7 (range 0.5 1 (osc 0.09));
--Lighting
ambient {intensity = range -4 8 (osc 0.15)};
point {color = rgb 200 170 135, x = 0, y = 3};
directional { colour= rgb 100 150 35, intensity = range 0 4 (osc 0.5), z = range 0 17 (osc 0.8), y = 10, x = -6 };
-- making a variable to use throughout
move = (osc 0.10);
-- background
clear { colour= 0x51414F, alpha= 1.5 };
-- the boxes
box { colour = cc,rx = range 0 180 (move), y = range -3 3 (move), size = range -3 3 (move) };
box { colour = c1,rz = range 0 180 (move), x = range -2 2 (move),size = range -2 2 (move) };
box { colour = c1c,rz = range 0 180 (move),z = range -20 2 (move), y = range - 3 3 (move), x = range -3 3 (move),size = range -2 2 (move) };
box { colour = c, ry = range 0 180 (move), z = range -2 2 (move),size = range -1 1 (move) };
--magicavoxel usage
dancer {url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix1.glb", size = 2,ry = range 0 15 (osc 0.25), y = range -0.1 0.1 (osc move), z = range -2 2 (move),size = range -1 1 (move) };
dancer {url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix2.glb", size = 2,ry = range 180 270 (osc 0.25), x = 3,z = range -2 2 (move),size = range -1 1 (move) };
dancer {url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix3.glb", size = 2,ry = range 0 360 (osc 0.25), y = 4, z = range -2 2 (move),size = range -1 1 (move) };
r2 = step [3,4,5,6] (phase 4 0);
r = step [0.5,2,1,4] (phase 16 0);
-- ube Evolution
dancer { url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix1.glb", size = 0.5, x = range -15 15 (osc 0.0015), dur = 2, y= range -10 0 (osc 0.0015), z = -20, rx = range 0 15 (osc 0.25) };
f a n = dancer { url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix1.glb", y = 1, x = -4 + n, z = a * n,ry = range -30 90 (osc 0.5), lz = range -45 130 (osc 3),size = 0.3 };
for [0..8] (f 0.5);
for [0..8] (f 1.5);
for [0..8] (f -0.5);
--mushroom floor
for [0..100] (\n -> dancer {url = "https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix1.glb", dur = n*0.5, x = (n)+(-20), y = -4 + osc(1) * sin(n), z = -10, rx = r2 * r2 * r2, ry = 0, rz = 0, size= r});
LiveCodingYoutube
angle1 = "Nu1V6X-xPNw"
angle2 = "pyX4pw0WKvk"
create(1,2, angle1)
cue(1,angle2)
jump([0,1],10,10)
jump([0,1],0.-5,0.-5)
speed(0,0.75)
speed(1,3)
play(all)
SonicPi
live_loop :dosage do
use_bpm 20
use_random_seed (Time.now.to_i)/2
with_fx [:echo,:wobble,:krush].choose, mix: rrand(0.25,0.55) , amp: 1 do
sample [:ambi_drone,:ambi_glass_hum,:elec_fuzz_tom,:elec_beep].choose,beat_stretch: [1,0.5,0.8].choose, rate: [0.5,0.4,0.3,0.2,0.3,0.4].tick
sleep [0.5,1,2].choose
end
end
live_loop :bell do
with_fx [:ixi_techno,:flanger,:ping_pong].choose, mix: rrand(0.2,0.7) do
use_random_seed (Time.now.to_i)
use_bpm [120,80,220].choose
sample [:perc_bell,:elec_bell,:loop_electric].choose, rate: (rrand 0.125,1.85)
sleep rrand(0.2,2)
end
end
live_loop :rollback2 do
#making true random as it goes with the actual time
#then using the Math.cbrt to make it a different seed ratio then the above function
use_random_seed Math.cbrt(Time.now.to_i)
use_bpm 45
puts Time.now.to_i
with_fx [:echo,:whammy,:distortion].choose, mix: rrand(0.1,0.6) do
with_fx [:ping_pong,:distortion,:krush].choose, mix: rrand(0.1,0.9) do
sample [:perc_swoosh,:perc_swoosh,:perc_snap].choose ,beat_stretch: [1,2,3,0.5].tick, sustain: 4, rate: Math.sqrt(dice(25) + 1)/3
sleep [0.5,1,2,4,8].choose
end
end
with_fx [:flanger,:ixi_techno].choose, mix: rrand_i(0.1,0.9) do
with_fx :gverb, mix: [0.1,0.2,0.3,0.2,0.1].tick do
live_loop :drumming2 do
use_bpm 24
sample 'E:/Creatuve Code Challenges/SciArtSeptember_2023/simian/MonkeyScreaming.wav', beat_stretch: 10, rate: rrand(0.5,1.25)
sleep [8,16,32,64].choose
end
end
end
sleep [0.5,1,2].choose
end
live_loop :rollback3 do
#making true random as it goes with the actual time
#then using the Math.cbrt to make it a different seed ratio then the above function
use_random_seed Math.cbrt(Time.now.to_i)
use_bpm [45,90,90,90,135].tick
puts Time.now.to_i
with_fx [:echo,:whammy,:distortion,:pitch_shift].choose, mix: rrand(0.1,0.6) do
with_fx [:ping_pong,:distortion,:krush].choose, mix: rrand(0.1,0.9) do
sample [:loop_mehackit1,:perc_swoosh,:glitch_robot2,:glitch_robot1].choose ,beat_stretch: [1,2,3,0.5].tick, sustain: 4, rate: Math.sqrt(dice(25) + 1)/3
sleep [0.5,1,0.25].choose
end
end
sleep [0.5,1,2].choose
with_fx :flanger, mix: rrand(0.3,0.5) do
with_fx :echo do
use_synth [:pretty_bell, :kalimba, :prophet].choose
play rrand(100,120), attack: dice(6)
end
end
end
live_loop :sequencer2 do
use_random_seed Math.cbrt(Time.now.to_i)
with_fx :vowel, voice: [1,2,2,3,3,4,3,2,1,2,1].choose, mix: [0.1,0.5,0.9].choose do
with_fx :ping_pong, mix: [0.1,0.3,0.5,0.7,0.5,0.3,0.1].tick do
sample [:elec_ping ,:elec_blip ,:perc_bell,:elec_bong,:perc_impact2,:perc_till].tick, rate: [1.1,0.2,1.3,0.4,1.5,0.3,1.4,0.2,1.1].choose
sleep rrand(0.2, 4)
end
end
end
live_loop :blips do
with_fx :reverb do
use_random_seed Time.now.to_i % 100 #making true random as it goes with the actual time
puts Time.now.to_i
use_bpm 120
sample [:elec_blip,:elec_blip2,:elec_bong].choose, pan: rrand(-0.9,0.9)** 3, rate: rrand(-1.5, 1.5) ** 3
sleep [0.5,1,2].choose
end
end