Everyone respects the UX
Your humble subjects
Dissects of projects and rejects
History reflects
It's not too complex
Hands on objects
What is creative coding?
Creative Coding is art, experimentation,
and exploration through code.
What is creative coding?
Making something without really knowing
what you're making.
What is creative coding?
Trying new things.
And knowing sometimes it's doomed to fail.
I'm John Brown.
Technical Director at Instrument
Swiss Army knife developer
I'm Ben Purdy.
QA contractor at Intel back in 1999
I'm Ben Purdy.
QA → Developer → Designer →
Freelance Creative → Technical Director
digital interactive studio in SE Portland
XOXO Glitch
dynamic projected installations
Lazy Sunday
Hanging out with my friend @ChrisArth
Lazy Sunday
Let's make a Twitterbot
Let's corrupt some data
It's what the cool kids are doing
There's more than one way to glitch an avatar
@Avatarglitch
And then we talked about it
Everyone respects the UX
Your humble subjects
Dissects of projects and rejects
History reflects
It's not too complex
Hands on objects
Takeaway 1
Make it fun even when not interacting
TUIO Jam
by @momothemonster
TUIO Jam
Once again, w/ @ChrisArth
TUIO Jam
Ethereal Net of Dreams
TUIO Jam
Bringer of Forever Darkness
TUIO Jam
In the Diode Gallery window
Takeaway 3
We’re still just waving our arms
Google I/O 2014 experiment
Scale from the sub-atomic...
Google I/O 2014 experiment
all the way through...
Google I/O 2014 experiment
to the furthest reaches of the universe.
Google I/O 2014 experiment
Instrument Holiday Party 2013
Let's connect people who aren't connected.
Instrument Holiday Party 2013
We've (almost) all got one of these.
Instrument Holiday Party 2013
Let's make a game!
Holiday Find
Fun mix of interactivity and gamification, all in a safe environment.
Holiday Find
How'd it go?
Holiday Find
How'd it go?
Quite badly
Holiday Find Stats
26% of invites were accepted
Holiday Find Stats
26% of invites were accepted
17% of games started were completed
Holiday Find Stats
26% of invites were accepted
17% of games started were completed
1% of people enjoyed the experience
Holiday Find Mistakes
That name...
Holiday Find Mistakes
That name...
Party was too crowded
Holiday Find Mistakes
That name...
Party was too crowded
People were drinking
Holiday Find Mistakes
That name...
Party was too crowded
People were drinking
Only push notifications
Holiday Find Mistakes
That name...
Party was too crowded
People were drinking
Only push notifications
We were secretive about it
Holiday Find Mistakes
That name...
Party was too crowded
People were drinking
Only push notifications
We were secretive about it
Tiny text
Holiday Find Mistakes
That name...
Party was too crowded
People were drinking
Only push notifications
We were secretive about it
Tiny text
Balloons were too small
Holiday Find Mistakes
That name...
Party was too crowded
People were drinking
Only push notifications
We were secretive about it
Tiny text
Balloons were too small
More that I probably blocked out
Takeaway 4
Understand the context
Everyone respects the UX
Your humble subjects
Dissects of projects and rejects
History reflects
It's not too complex
Hands on objects
IANNIS XENAKIS
Creative coding pioneer
Iannis Xenakis
Creative coding pioneer
IANNIS XENAKIS
Creative coding pioneer
Created music with principles of mathematics.
Coined the idea of stochastic music
IANNIS XENAKIS
Pithoprakta
frieder nake
Creative coding pioneer
Frieder Nake
Creative coding pioneer
Walk Through Raster
art created with Markov chains
Frieder Nake
Walk Through Raster, 1966-2011
Frieder Nake
Walk Through Raster, 1966-2011
Frieder Nake
Walk Through Raster, 1966-2011
Everyone respects the UX
Your humble subjects
Dissects of projects and rejects
History reflects
It's not too complex
Hands on objects
Processing
sketching with code
Javascript
Easy to share
Available (almost) everywhere
Javascript
Easy to share
Available (almost) everywhere
Video, Audio, 3D, Virtual Freakin' Reality!
P5.js
function setup() {
createCanvas(640, 480);
}
function draw() {
if (mouseIsPressed) {
fill(0);
} else {
fill(255);
}
ellipse(mouseX, mouseY, 80, 80);
}
Three.js
var camera, scene, renderer;
camera = new THREE.PerspectiveCamera(
70, width/height, 1, 5000);
camera.position.z = 1500;
scene = new THREE.Scene();
renderer = new THREE.CSS3DRenderer();
renderer.setSize(width, height);
Three.js
var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );
function render() {
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
requestAnimationFrame( render );
renderer.render( scene, camera );
}
render();
Input (not mouse/keyboard)
Input (not mouse/keyboard)
Kinect
Input (not mouse/keyboard)
Leap Motion
Input (not mouse/keyboard)
Myo
Input (not mouse/keyboard)
Neurosky Mindwave
Microcontrollers
Intel Galileo
Microcontrollers
Raspberry Pi
Work with a buddy
Find yourself a Ben Purdy or two
Or Find a bunch of buddies
Or Find a bunch of buddies
Austin
Or Find a bunch of buddies
Boston
Or Find a bunch of buddies
Vancouver
Or Find a bunch of buddies
Berlin
Don't start from a blank canvas
Everyone respects the UX
Your humble subjects
Dissects of projects and rejects
History reflects
It's not too complex
Hands on objects
Imagine for a moment.
Cross your fingers.
Ravewave
You are the life of the party
Ravewave
Did that demo not work?
Remember Plinko?
Best game on The Price Is Right.
plin.co
Javascript components:
- Node server for pin strikes
- Front end receives sockets
- Visualizations
- Node renders gifs
- API call post to Twitter
- D3 (JS library) for projection mapping
- JS front end tool for calibrating pins
One second to last thing
It's First Thursday, come check out some digital art!
Thanks for having us!
We're @purdybot & @thisisjohnbrown
Everyone respects the UX
Your humble subjects
Dissects of projects and rejects
History reflects
It's not too complex
Hands on objects