WCCChallenge_Cubism

WCCChallenge_Cubism

RealmOfCubes

For this week's Creative Code Challenge by @sableraph: "Cubism", RealmOfCubes is coded in Hydra, Locomotion & SonicPi to Repres**ent a Cube-ful realm alongside the creation of the cubes, MagicaVoxel

Cubism Process

Cubism Artwork

Characteristics of Cubism (https://www.artlex.com/art-movements/cubism/characteristics/) in this inspired piece :

  • The application of multiple perspectives

    • This was done through the modulateRotate function in Hydra and the ability to overlay the same Locomotion sketch through many iterations
  • The use of geometric shapes

    • Used Magicavoxel to make cubes with distinct features and coded their movements and colours through Locomotion
  • Monochromatic color palette

    • Since it was inspired, I didn't follow this characteristic as later cubist work didn't follow this
  • Flattened picture plane.

    • The flattened plane is the Hydra Sketch

Cubist Architecture

  • Also included traces of Cubist Architecture within the piece

    (https://lescollection.com/blogs/journal/cubism-101)

    • Transparency & Abstraction

      • The transparency of the Cubes through both opacity and visual clarity is constantly changing within the piece
    • Spatial ambiguity & multiplicity

      • Not only through the various overlaying of the Hydra Sketch but also within the sounds of SonicPi

Poem

Cubes Keep on Going
From all perspectives
Ranging from effective to ineffective

Cube Keep on Growing
In matters that are subjective,
Selective and objective
Some defective
Others welcome to the collective

Video

Code

Locomotion

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) };

Hydra

s0.initScreen()

src(s0).

scale(2).

modulateRotate(src(s0).
scale(1.3).
scrollX([0.5,0.3,-0.3,-0.3,0.1]).
scrollY([0.2,0.4,0.5,-0.3,-0.1]).
(1.2)).

rotate(0,1.5).

blend(src(s0).
repeat(()=>(time % 15)/40,()=> Math.cbrt(time % 25 + 1)).
rotate(0,[2,3,4,1,0.2]).
luma(0.5)).

modulateRotate(src(s0).
scale(1.14)).
modulateRotate(s0,0.5).
out()


speed = 0.15