Date post: | 27-Jan-2015 |
Category: |
Technology |
Upload: | scott-janousek |
View: | 106 times |
Download: | 1 times |
@scottjanousek#SCREENS, #FITC
Wednesday, November 16, 11
Creating Coding across Screens
at FITC Screens taking placeNov 14-15 2011 in lovely Toronto
Wednesday, November 16, 11
Agenda
Intro
Screens
Creative Coding
Creative Tooling
Processing, OF, Cinder, more?
Outro
Wednesday, November 16, 11
INTRO
Wednesday, November 16, 11
Hello@scottjanousek
Former Mobile & Device “Veteran”
“Analog and Digital Artisan”
Innovation Architect @ Isobar
Wednesday, November 16, 11
Web
Interactive
Mobile & Devices
Physical Computing
Wednesday, November 16, 11
Wednesday, November 16, 11
FITC MOBILE 2009
Wednesday, November 16, 11
Recent FITCEvents ...
Wednesday, November 16, 11
FITC Toronto 2011
“Sifteo Cubes” @ Influxis Voodoo Lounge
Wednesday, November 16, 11
Riaunleashed 2011Physical Computing + Android
Wednesday, November 16, 11
Google Android ADK & OA
Wednesday, November 16, 11
Cool stuff you should check
out ...
Wednesday, November 16, 11
Wednesday, November 16, 11
Conferences!
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
@seb_lyCreative JS world tour!
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
@blprntJer Thorp
Processing Workshop
Wednesday, November 16, 11
Work
Wednesday, November 16, 11
Kinds of work we do
Custom Touch Table (for Reebok)
Wednesday, November 16, 11
Kinds of work we do
Custom Touch Table (for Reebok)
Wednesday, November 16, 11
Let’s play ...“Weird stuff in Scott’s office!”
Wednesday, November 16, 11
Research &Development
Wednesday, November 16, 11
Parametric Speaker Array. :)
Wednesday, November 16, 11
Robotic Claw!
Wednesday, November 16, 11
“Lit Plexi”
Wednesday, November 16, 11
Light Globe “Thingy Ma-Bob”
Wednesday, November 16, 11
RF-ID, & arduino
Wednesday, November 16, 11
“Umbilical” Cord for a “project”
Wednesday, November 16, 11
Other StuffI’m engaged in ...
Wednesday, November 16, 11
Makerbot & “Fab”
Wednesday, November 16, 11
MakerBot!
Wednesday, November 16, 11
“Spatial & Gestural UI” space
Wednesday, November 16, 11
CREATIVECODING
Wednesday, November 16, 11
Tools & Frameworks
Wednesday, November 16, 11
SCREENS
Wednesday, November 16, 11
Visual Spectrum
Wednesday, November 16, 11
Target Screens
Desktops, Laptops & Netbooks
SmartPhones & Pocket Devices
Tablets
TVs
Tables, Kiosks, Billboards
Projected Displays
Wednesday, November 16, 11
Mobile Impact
In my mind, there is no question these are the clear winners ... but what is the “next race”?
Wednesday, November 16, 11
Some Devices ...
Wednesday, November 16, 11
What’s nextwith Screens?
Wednesday, November 16, 11
Projected Light UI
Wednesday, November 16, 11
Projected Light UI
Wednesday, November 16, 11
CREATIVE TOOLING
Wednesday, November 16, 11
What are we talking about?
“... Computer Programs in art such as real life art installations, interactive video, large-scale public projections, computer vision projects,interactive sound recordings, & more ...”
OR ... into the realm of ...PHYSICAL COMPUTING.
Wednesday, November 16, 11
What do we wantin our tools?
“Performability”
Portability
Extensibility
& more ...
Wednesday, November 16, 11
Timeline (Rough)
1990’s
2000’s
2010
Processing
OpenFrameworks
Cinder
PolyCode
Flash
Shockwave
HyperCard
Wednesday, November 16, 11
Languages Discussed Today
C++ (most of our focus)
Java
ActionScript
Lua
JS
Wednesday, November 16, 11
Going Native“A native development kit (NDK) is a software development kit (SDK) based on a native application programming interface (API) which allows computer software to be developed directly on a computing platform, rather than via a virtual machine.
Creating software on a virtual machine is often easier than on a native development kit. However, the advantages of using an NDK is that it allows developers more options, and can yield higher performance.”
Wednesday, November 16, 11
C++
Fast
Powerful
Strict (& unforgiving)
Extendable
Reliable
Wednesday, November 16, 11
Wednesday, November 16, 11
Processing
Wednesday, November 16, 11
Genesis
aka (LEFT) Casey Reas and (RIGHT) Ben Fry -The Co-creators of Processing
Wednesday, November 16, 11
“Processing is an open source programming language and environment for people who want to create images, animations, and interactions.”
Mission Statement
Wednesday, November 16, 11
Ben updated it ...
Wednesday, November 16, 11
“Today, there are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and production.”
Why Processing?“Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work.”
Wednesday, November 16, 11
Processing Wiki
Wednesday, November 16, 11
vimeo.com/28117873
Processing 2.0
Wednesday, November 16, 11
People to Follow ...
@ben_fry@reas
@blprnt@shiffmanand more ...
Wednesday, November 16, 11
processing.org
Wednesday, November 16, 11
Wednesday, November 16, 11
Java - the language
Wednesday, November 16, 11
FYI
Processing 2.0 alpha 3 is recently out! *
* As of November 2011
Wednesday, November 16, 11
Environment
Wednesday, November 16, 11
“Sketch” (i.e. app)
void setup() { // define the window size & enable anti-aliasing size(200, 200); smooth(); // Set "ink" color, font, and alignment for rendering text. fill(0); // Black // setup the font (system default sans serif) textFont(createFont("SansSerif",18)); textAlign(CENTER); noLoop(); // draw() executes only once} void draw() { // Draw text to screen using the previously set font. text("Hello World!", width/2, height/2);}
Wednesday, November 16, 11
Examples
Wednesday, November 16, 11
Libraries
Wednesday, November 16, 11
Generative Art Experiments
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Data Visualization
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
Wednesday, November 16, 11
`
Toxilibs
“toxiclibs is an independent, open source library collection for computational design tasks with Java & Processing developed by Karsten “toxi” Schmidt (thus far).”
Wednesday, November 16, 11
Toxilibs
“The classes are purposefully kept fairly generic in order to maximize re-use in different contexts ranging from generative design, animation, interaction/interface design, data visualization to architecture and digital fabrication, use as teaching tool and more.”
Wednesday, November 16, 11
Targets
Wednesday, November 16, 11
Desktops
Wednesday, November 16, 11
Web - JS Export
Wednesday, November 16, 11
processing.js
Wednesday, November 16, 11
Mobile - iProcessing
Wednesday, November 16, 11
Mobile - Android
Wednesday, November 16, 11
Mobile ProcessingRecent Event
Wednesday, November 16, 11
Cons
Performance is not 100% nativeSome fragmentation on devices
Java is powerful, but legacy
Wednesday, November 16, 11
Pros
Simple to install & runSimple, yet powerful language
Nice learning curveDecent librariesFast prototyping!
Wednesday, November 16, 11
Future?
Processing is a multi-versatile tool Community driven
2.03a brings power & > targetsStellar tool for data viz!
Wednesday, November 16, 11
Wednesday, November 16, 11
openframeworks.cc
Wednesday, November 16, 11
Mission Statement
Wednesday, November 16, 11
Some of the OF Dev “Crew”
Wednesday, November 16, 11
OF “GANG SIGN”
Wednesday, November 16, 11
OF Forums
Wednesday, November 16, 11
“007” release
Wednesday, November 16, 11
Dev Environments
Wednesday, November 16, 11
Code Basics
#include "ofMain.h"#include "testApp.h"#include "ofAppGlutWindow.h"
//========================================================================int main( ){
ofAppGlutWindow window;! ofSetupOpenGL(&window, 1024,768, OF_WINDOW);! ! ! // <-------- setup the GL context
! // this kicks off the running of my app! // can be OF_WINDOW or OF_FULLSCREEN! // pass in width and height too:! ofRunApp( new testApp());
}
Wednesday, November 16, 11
Code Basics#include "testApp.h"
void testApp::setup(){}
void testApp::update(){}
void testApp::draw(){}
void testApp::keyPressed(int key){}
void testApp::keyReleased(int key){}
void testApp::mouseMoved(int x, int y ){}
void testApp::mouseDragged(int x, int y, int button){}
void testApp::mousePressed(int x, int y, int button){}
void testApp::mouseReleased(int x, int y, int button){}
void testApp::gotMessage(ofMessage msg){}
Wednesday, November 16, 11
Code Basics#pragma once
#include "ofMain.h"
class testApp : public ofBaseApp {! public:! ! void setup();! ! void update();! ! void draw();
! ! void keyPressed (int key);! ! void keyReleased(int key);! ! void mouseMoved(int x, int y );! ! void mouseDragged(int x, int y, int button);! ! void mousePressed(int x, int y, int button);! ! void mouseReleased(int x, int y, int button);! ! void windowResized(int w, int h);! ! void dragEvent(ofDragInfo dragInfo);! ! void gotMessage(ofMessage msg);};
Wednesday, November 16, 11
OF API
Wednesday, November 16, 11
OF Core Objects
ApplicationGraphicsVideoUtilsSound Player
Sound StreamMathSerialArduino
Wednesday, November 16, 11
Addons
“openFrameworks addons are additional third party libraries that can be added to your projects to extend their functionality.”
Wednesday, November 16, 11
Provided Addons
ofxDirListofxXmlSettingsofxOscofxOpenCvofxNetwork
ofxThreadofxVectorMathofxVectorGraphicsofx3dModelLoader
Wednesday, November 16, 11
New Addons Site
Wednesday, November 16, 11
Examples
Wednesday, November 16, 11
Targets
Wednesday, November 16, 11
Desktop
Wednesday, November 16, 11
Mobile - iOS
Wednesday, November 16, 11
Mobile - Android
Wednesday, November 16, 11
Face Tracking Example
Wednesday, November 16, 11
Cons
Long version cyclesSmaller, niche community
C++ learning curveLack of libraries*
* check out recent site: ofxaddons.comWednesday, November 16, 11
Pros
Innovative Dev CommunityNative Performance
Audio & Visual CapabilitiesComputer Vision
Physical Computing
Wednesday, November 16, 11
Future?
OF is gaining momentum. OF is prime for Physical Computing.
Wednesday, November 16, 11
Wednesday, November 16, 11
cinderlib.org
Wednesday, November 16, 11
“Cinder is a powerful, intuitive cross-platform toolbox for programming graphics, audio, video, networking, image processing and computational geometry. “
CinderLib
Wednesday, November 16, 11
“Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.”
Mission Statement
Wednesday, November 16, 11
Event Handling, Screensavers, Internet I/O, I/O from flat files, memory, resources, & networks, C++ Core, iOS Support & Multitouch, UI Events, XML Parser and more!
Support
Wednesday, November 16, 11
Contents
Wednesday, November 16, 11
Environments
Wednesday, November 16, 11
Basic Code
Wednesday, November 16, 11
Tinderbox
Wednesday, November 16, 11
Examples
Wednesday, November 16, 11
Kinect Library
Robert Hodgin’s “Body Dysmorphic Disorder”
Wednesday, November 16, 11
Kinect Library
Robert Hodgin’s “Body Dysmorphic Disorder”
Wednesday, November 16, 11
Planetary App
Bloom.io - iOS music visualizer app
Wednesday, November 16, 11
Targets
Wednesday, November 16, 11
Desktop
Wednesday, November 16, 11
Mobile - iOS
Wednesday, November 16, 11
Cons
Slow to release updatesSmaller, niche community
C++ Learning curveLack of libraries
Wednesday, November 16, 11
Pros
Innovative Dev CommunityNative Performance
Audio & Visual CapabilitiesComputer Vision
Physical Computing
Wednesday, November 16, 11
Cinder is still experimental. Last push was Summer 2011.
Lots of promise. Hopeful it sticks around!
Future?
Wednesday, November 16, 11
Wednesday, November 16, 11
Mission Statement
Does Adobe even have one for Flash?Roadmap URL?
... Video, 3-D, Games I suppose ...
Wednesday, November 16, 11
Recent News
Wednesday, November 16, 11
Thoughts
Wednesday, November 16, 11
Thoughts
Watch @seb_ly’s “What the Flux?” preso
Wednesday, November 16, 11
Recent Project
Custom Touch Table
Wednesday, November 16, 11
Recent Project
Custom Touch Table
Wednesday, November 16, 11
Environment
Wednesday, November 16, 11
HYPE Framework
Wednesday, November 16, 11
Sample Code
Wednesday, November 16, 11
Targets
Wednesday, November 16, 11
Desktop
Wednesday, November 16, 11
Mobile - iOS
Wednesday, November 16, 11
Mobile - Android
Wednesday, November 16, 11
Mobile - Blackberry OS
Wednesday, November 16, 11
Cons
Too Versatile?Flash Player for Devices
Not native performance*.Proprietary Runtimes.
Wednesday, November 16, 11
Pros
Multi-versatile.Cross Platform (on the Desktop).
Easy to pick up ActionScript.Fast Prototyping.
Wednesday, November 16, 11
Future?
Parts of Flash are Deprecated.Flash is targeting video, games, 3-D.Adobe is getting back to its roots?
Wednesday, November 16, 11
Wednesday, November 16, 11
polycode.org
Wednesday, November 16, 11
Creator
Wednesday, November 16, 11
Basic App
Wednesday, November 16, 11
Mission Statement
“Polycode is a free, open-source, cross-platform framework for creative code.
You can use it as a C++ API or as a standalone scripting language to get easy and simple access to accelerated 2D and 3D graphics, hardware shaders, sound and network programming, physics engines and more.”
Wednesday, November 16, 11
PolyCode“On top of the core C++ API, Polycode offers a Lua-based scripting system with its own set of compilation tools. The Lua API mirrors the C++ API and can be used to easily create prototypes and even publish complete applications to multiple platforms without compiling C++.
Polycode is completely open-source and available under the MIT license and was designed and developed by Ivan Safrin”
Wednesday, November 16, 11
Modules
2D/3D Physics and CollisionUI
NetworkingLightMaps
GLSLCgShading
TerrainKinect
Wednesday, November 16, 11
API
Wednesday, November 16, 11
Basic Code
Wednesday, November 16, 11
Environment
Wednesday, November 16, 11
Examples
Wednesday, November 16, 11
Gallery
Wednesday, November 16, 11
Targets
Wednesday, November 16, 11
Desktop Only
Wednesday, November 16, 11
Cons
Fairly New.API limitations.
Smaller, niche community.No mobile targets (yet).
Wednesday, November 16, 11
Pros
Native Performance.Easy to get started.
Lua or C++.Turning out to be good at 2 & 3D.
Wednesday, November 16, 11
Future?
Polycode is still early in development. Lua is gaining popularity within
developer circuit.Alternatives are always good.
Wednesday, November 16, 11
TAKE AWAYS
Wednesday, November 16, 11
“Be passionate about your work,
but do not get emotionally
attached to your tools ...
Tools can, and will be replaced.”
TAKE AWAY #1
Wednesday, November 16, 11
“Whenever possible, use the right
tool for the right job.”
“Using a Hammer to screw
in a nail doesn’t lead to good
results.”
TAKE AWAY #2
Wednesday, November 16, 11
GO FORTH ...
EXPERIMENT AND TINKER!
HAVE FUN!
TAKE AWAY #3
Wednesday, November 16, 11
OUTRO
Wednesday, November 16, 11
Resources
Wednesday, November 16, 11
Book
Wednesday, November 16, 11
Book
Wednesday, November 16, 11
creativecodingpodcast.com
PodCast
Wednesday, November 16, 11
Q & A
Wednesday, November 16, 11
Thank you.
Wednesday, November 16, 11
Links
www.creativeapplications.net
processing.org
cinderlib.org
openframeworks.cc
polycode.org
adobe.com/flash
Wednesday, November 16, 11