Simulacra is a series of procedurally generated digital artefacts which aestheticise the body through fleshy materials and intestinal textures. By exploring the human connection with the soft and somatic, Simulacra embraces the grotesque, where once rigid non-human forms bulge and undulate in seamless and satisfyingly endless loops.
A Processing sketch to playfully create looping 3D animations with simplex noise. Place the ‘simulacraMaster’ folder within your Processing working folder and build.
An openFrameworks app for autonomously presenting the rendered works in an exhibition environment via Raspberry Pi. To run, make sure the openFrameworks examples compile correctly on the Pi, then copy the contents of ofApp.h, ofApp.cpp and Main.h into a new project.
- Processing - Used for simulacraMaster
- openSimplexNoise - Java implementation of 4D Simplex Noise
- peasyCam - To be able to manipulate the camera
- controlP5 - For GUI control
- Nervous System OBJ Exporter - For exporting OBJ sequences
- Toxiclibs - Reaction diffusion algorithm.
- Blender - Used to render the OBJ sequences
- Stop-motion-OBJ - For importing OBJ sequences into Blender
- openFrameworks 0.9.8 - Used to build simulacraViewer
- ofxOMXPlayer - For smoothly playing back video on Raspberry Pi
- Raspberry Pi - Allows for autonomous playback during installation
First select a shape to create in setup() by setting the corresponding boolean to 'true’. For example;
hyperbolic = true;
Choose a single update function in the Vert class by uncommenting the function desired;
position = PVector.add(initPosition, getSimplexMod(i) );
Play with the GUI controls in order to create interesting behaviours
For Model, ModelSequence, ImgReader and ImgSequence class, sources and sequences should be placed within the data folder
/data/[name of model sequence]/
With classes updated with the desired name
String sequenceName = “[Name of sequence]”;
For sequence classes, files should be number sequentially
‘0.obj’, ‘1.obj’ … ‘100.obj’ etc.
See comments within each class for more detailed instruction
The video file to be looped should be placed in;
/data/movies/
This path can be changed in ofApp.h if desired.
The Raspberry Pi can be configured to run the app on startup by adding the app’s path to the Pi’s config file, for example;
cd openFrameworks/apps/myApps/simulacraViewer
make RunRelease
See comments for more detailed instruction
Note this will not compile in OSX.
- Lior Ben Gai - Initial boilerplate
- Joseph Rodrigues Marsh - Ongoing development
- Lior Ben Gai for the initial boilerplate
- Theo Papatheodorou
- Etienne Jacob for the looping simplex noise algorithm
- Daniel Shiffman for meshing 3D spherical geometries
Feel free to reach out if you are interested in contributing.
- Intuitive, GUI based way of choosing forms / modulators
- Instantiating and combining multiple forms / modulators
- Data-driven modulators as opposed to just noise
- Make use of threading to improve frame rates (specifically with Model / ModelSequence class)
- Implement Skylight renderer