The book explores the technical as well as cultural imaginaries of programming from its insides. It follows the principle that the growing importance of software requires a new kind of cultural thinking — and curriculum — that can account for, and with which to better understand the politics and aesthetics of algorithmic procedures, data processing and abstraction. It takes a particular interest in power relations that are relatively under-acknowledged in technical subjects, concerning class and capitalism, gender and sexuality, as well as race and the legacies of colonialism. This is not only related to the politics of representation but also nonrepresentation: how power differentials are implicit in code in terms of binary logic, hierarchies, naming of the attributes, and how particular worldviews are reinforced and perpetuated through computation. Using p5.js, it introduces and demonstrates the reflexive practice of aesthetic programming, engaging with learning to program as a way to understand and question existing technological objects and paradigms, and to explore the potential for reprogramming wider eco-socio-technical systems. The book itself follows this approach, and is offered as a computational object open to modification and reversioning.
Ofelia is a Pd external which allows you to use openFrameworks and Lua within a real-time visual programming environment for creating audiovisual artwork or multimedia applications such as games.
openFrameworks is an open source C++ toolkit for creative coding.
Lua is a powerful, efficient, lightweight, easy-to-learn scripting language.
Pure Data(Pd) is a real-time visual programming language for multimedia.
Thanks to Lua scripting feature, you can do text coding directly on a Pd patch or through a text editor which makes it easier to solve problems that are complicated to express in visual programming languages like Pd. And unlike compiled languages like C/C++, you can see the result immediately as you change code which enables faster workflow. Moreover, you can use openFrameworks functions and classes within a Lua script.
Using Ofelia, you can flexibly choose between patching and coding style based on your preference.
The external is available to be used under macOS, Windows, Linux and Raspberry Pi.
A free educational site that progressively introduces you to the world of computer graphics.
Our application programming approach guides you through small, easy-to-compile programs.
We’ve dispensed with unnecessary technical jargon in favor of everyday language.
Tooll 3 is an open source software to create realtime motion graphics. We are targeting the sweet spot between real-time rendering, graph-based procedural content generation and linear keyframe animation and editing. This combination allows…
artists to build audio reactive vj content
use advanced interfaces for exploring parameters
or to combine keyframe animation with automation
Technical artists can also dive deeper and use tool for advanced development of fragment or compute shaders or to add input from midi controllers and sensors or sources like OSC or Spout.
We strongly believe in usability and intuitive and beautiful interface design. That's why we experiment with different approaches before striking the right balance between usability and powerful flexibility. Currently tool version 3 is an ongoing development. It's stable enough to produce high-end visuals create motion graphics use many industry standard features like color correction, scopes and tone mapping, and export small standalone executables.
Have you ever wanted to ...
– export 10,000 mass-customized copies of your InDesign document?
– use spatial-tiling algorithms to create your layouts?
– pass real-time data from any source directly into your InDesign project?
– create color palettes based on algorithms?
– or simply reconsider what print can be?
basil.js is ...
– making scripting in InDesign available to designers and artists.
– in the spirit of Processing and easy to learn.
– based on JavaScript and extends the existing API of InDesign.
– a project by The Basel School of Design in Switzerland.
– has been released as open source in February 2013!
Hydra is a platform for live coding visuals, in which each connected browser window can be used as a node of a modular and distributed video synthesizer.
Built using WebRTC (peer-to-peer web streaming) and WebGL, hydra allows each connected browser/device/person to output a video signal or stream, and receive and modify streams from other browsers/devices/people. The API is inspired by analog modular synthesis, in which multiple visual sources (oscillators, cameras, application windows, other connected windows) can be transformed, modulated, and composited via combining sequences of functions.
Features:
Written in javascript and compatible with other javascript libraries
Available as a platform as well as a set of standalone modules
Cross-platform and requires no installation (runs in the browser)
Also available as a package for live coding from within atom text editor
Experimental and forever evolving !!
Cables is your model kit for creating beautiful interactive content. With an easy to navigate interface and results in real time, it allows for fast prototyping and prompt adjustments.
Working with cables is just as easy as creating cable spaghetti:
You are provided with a given set of operators such as mathematical functions, shapes and materials.
Connect these to each other using virtual cables to create the scene you have in mind.
Easily export your piece of work at any time. Embed it into your website or use it for any kind of creative installation.
Welcome to Exploring Technology, a wishful remedy to the increasing knowledge gap between machine builders and machine users.
Learn about :
A-Frame
Arduino
AxiDraw
Bitsy
Cables
Cinema 4D
Circuit
GitHub
Colab
Glitch
Hubs
Hydra
Laser Cutting
Lightform
Lights
Machine Learning
Makey Makey
NFT
Node
Photogrammetry
Processing
Projectors
Raspberry Pi
Resolume
Tone
Spark
Web
Carefully curated list of awesome creative coding resources primarily for beginners/intermediates :
To the extent possible under law, Terkel Gjervig has waived all copyright and related or neighboring rights to this work.
OPENRNDR is a tool to create tools. It is an open source framework for creative coding, written in Kotlin for the Java VM that simplifies writing real-time interactive software. It fully embraces its existing infrastructure of (open source) libraries, editors, debuggers and build tools. It is designed and developed for prototyping as well as the development of robust performant visual and interactive applications. It is not an application, it is a collection of software components that aid the creation of applications.
Key features
a light weight application framework to quickly get you started
a fast OpenGL 3.3 backed drawer written using the LWJGL OpenGL bindings
a set of minimal and clean APIs that welcome programming in a modern style
an extensive shape drawing and manipulation API
asynchronous image loading
runs on Windows, MacOS and Linux
Ecosystem
Applications written in OPENRNDR can communicate with third-party tools and services, either using OPENRNDR’s functionality or via third-party Java libraries.
Existing use cases involve connectivity with devices such as Arduino, Philips Kinet, Microsoft Kinect 2.0, RealSense, DMX, ARTNet and Midi devices; applications that communicate through OpenSoundControl; services such as weather reports and Twitter. If you want to experiment with Machine Learning, try RunwayML that comes with an OPENRNDR integration.
A platform for interactive spaces, interactive environments, interactive objects and prototyping.
tramontana leverages the capabilities of the object that we have all come to carry with us anywhere, all the time, our smartphones. With libraries for Processing, Javascript and openFrameworks you can access the inputs and outputs of one or more smartphones to easily and quickly prototype interactive spaces, connected products or just something you’d like to be wireless. What used to involve complex tasks like networking, native app development, etc. can now be created with a single sketch on your computer.
Creates an infinite remix of an audio file by finding musically similar beats and computing a randomized play path through them. The default choices should be suitable for a variety of musical styles. This work is inspired by the Infinite Jukebox (http://www.infinitejuke.com) project creaeted by Paul Lamere
It groups musically similar beats of a song into clusters and then plays a random path through the song that makes musical sense, but not does not repeat. It will do this infinitely.
Orca is an esoteric programming language designed by @hundredrabbits to create procedural sequencers.
This playground lets you use Orca and its companion app Pilot directly in the browser and allows you to publish your creations by sharing their URL.
The TX Modular System is open source audio-visual software for modular synthesis and video generation, built with SuperCollider (https://supercollider.github.io) and openFrameworks (https://openFrameworks.cc).
It can be used to build interactive audio-visual systems such as: digital musical instruments, interactive generative compositions with real-time visuals, sound design tools, & live audio-visual processing tools.
This version has been tested on MacOS (0.10.11) and Windows (10). The audio engine should also work on Linux.
The visual engine, TXV, has only been built so far for MacOS and Windows - it is untested on Linux.
The current TXV MacOS build will only work with Mojave (10.14) or earlier (10.11, 10.12 & 10.13) - but NOT Catalina (10.15) or later.
You don't need to know how to program to use this system. But if you can program in SuperCollider, some modules allow you to edit the SuperCollider code inside - to generate or process audio, add modulation, create animations, or run SuperCollider Patterns.
This is a list of smaller tools that might be useful in building your game/website/interactive project. Although I’ve mostly also included ‘standards’, this list has a focus on artful tools & toys that are as fun to use as they are functional.
The goal of this list is to enable making entirely outside of closed production ecosystems or walled software gardens.
This is an interactive editor for making face filters with WebGL.
The language below is called GLSL, you can edit it to change the effect.
Libre and modular OSC / MIDI controller :
https://github.com/jean-emmanuel/open-stage-control/releases
Systems music is an idea that explores the following question: What if we could, instead of making music, design systems that generate music for us?
This idea has animated artists and composers for a long time and emerges in new forms whenever new technologies are adopted in music-making.
In the 1960s and 70s there was a particularly fruitful period. People like Steve Reich, Terry Riley, Pauline Oliveros, and Brian Eno designed systems that resulted in many landmark works of minimal and ambient music. They worked with the cutting edge technologies of the time: Magnetic tape recorders, loops, and delays.
Today our technological opportunities for making systems music are broader than ever. Thanks to computers and software, they're virtually endless. But to me, there is one platform that's particularly exciting from this perspective: Web Audio. Here we have a technology that combines audio synthesis and processing capabilities with a general purpose programming language: JavaScript. It is a platform that's available everywhere — or at least we're getting there. If we make a musical system for Web Audio, any computer or smartphone in the world can run it.
With Web Audio we can do something Reich, Riley, Oliveros, and Eno could not do all those decades ago: They could only share some of the output of their systems by recording them. We can share the system itself. Thanks to the unique power of the web platform, all we need to do is send a URL.
In this guide we'll explore some of the history of systems music and the possibilities of making musical systems with Web Audio and JavaScript. We'll pay homage to three seminal systems pieces by examining and attempting to recreate them: "It's Gonna Rain" by Steve Reich, "Discreet Music" by Brian Eno, and "Ambient 1: Music for Airports", also by Brian Eno.
Table of Contents
"Is This for Me?"
How to Read This Guide
The Tools You'll Need
Steve Reich - It's Gonna Rain (1965)
Setting Up itsgonnarain.js
Loading A Sound File
Playing The Sound
Looping The Sound
How Phase Music Works
Setting up The Second Loop
Adding Stereo Panning
Putting It Together: Adding Phase Shifting
Exploring Variations on It's Gonna Rain
Brian Eno - Ambient 1: Music for Airports, 2/1 (1978)
The Notes and Intervals in Music for Airports
Setting up musicforairports.js
Obtaining Samples to Play
Building a Simple Sampler
A System of Loops
Playing Extended Loops
Adding Reverb
Putting It Together: Launching the Loops
Exploring Variations on Music for Airports
Brian Eno - Discreet Music (1975)
Setting up discreetmusic.js
Synthesizing the Sound Inputs
Setting up a Monophonic Synth with a Sawtooth Wave
Filtering the Wave
Tweaking the Amplitude Envelope
Bringing in a Second Oscillator
Emulating Tape Wow with Vibrato
Understanding Timing in Tone.js
Transport Time
Musical Timing
Sequencing the Synth Loops
Adding Echo
Adding Tape Delay with Frippertronics
Controlling Timbre with a Graphic Equalizer
Setting up the Equalizer Filters
Building the Equalizer Control UI
Going Forward
Utility library to easily connect to RunwayML from Processing
Feel free to replace this paragraph with a description of the Library.
Contributed Libraries are developed, documented, and maintained by members of the Processing community. Further directions are included with each Library. For feedback and support, please post to the Discourse. We strongly encourage all Libraries to be open source, but not all of them are.
https://github.com/runwayml/processing-library
Installation
Download https://github.com/runwayml/processing-library/releases/download/latest/RunwayML.zip
Unzip into Documents > Processing > libraries
Restart Processing (if it was already running)