Skip to content

A growing list of frequently asked questions and resources for creative code beginners

Notifications You must be signed in to change notification settings

CreativeCodeBerlin/FrequentlyAsked

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 

Repository files navigation

Welcome!

What is Creative Coding?

Creative Coding is a loosely defined term used to describe a wide range of artistic practices that use computer code as a medium. Creative Code typically distinguishes itself from regular coding by the fact that it doesn't follow pre-defined specifications, and is aimed at expressing ideas and concepts rather than solving specific problems for a user.

Why this document?

Getting started in any new field can feel overwhelming. You don't know what is possible or even what terms to look up online. This page is meant to help beginners by offering some basic context and answer some commonly asked questions. It is not meant to be a comprehensive list of tools or resources, but a starting point for your creative code journey.

Frequently Asked Questions

“Which language/tool should I learn?”
This depends a lot on what you want to do, but it also doesn't matter as much as most people think. The basic principles of programming are transferable between most languages, and you'll likely try a few different tools before settling on the one that works for you. If you're not sure how to decide and you just want to start somewhere, p5.js is a great choice. For younger artists, Scratch is a perfect way to get into coding.

“I want to learn shaders, what should I do?"
For an easy way in, try The Book of Shaders by Patricio Gonzalez Vivo and Jen Lowe. For inspiration, have a look at what people make on Shadertoy.
Keywords: HLSL, GLSL, RayMarching, Metal(iOS)
Tools: Shadertoy, openFrameworks

“How can I use music or my microphone to make things move on screen?”
One fun way to get into creative coding is to make something audio-reactive. For example bouncing a ball based on the volume of your microphone input. Keywords: Audio-reactive visuals, Sound-visualisation, FFT

”I want to make things that people can interact with in a space”
Keywords: Interactive installations, Depth sensor Tools: Kinect, Posenet, RGBD camera, OpenCV

”I want to create visuals with code”
Keywords: Generative art, Generative Design, Procedural generation Tools: Hydra, MarchingJS, Processing, p5js, OpenFrameworks, Cinder

“I want to create music with code“
Keywords: audio synthesis, algorithmic composition, algorave, Tools: Supercollider, SonicPi, TidalCycles, Tone.js

“I want to build/use a drawing machine“
Keywords: plotter, pen plotter, vinyl cutter, Vector Graphics (SVG) Tools: AxiDraw, Cricut, Silhouette

“I want to make art using Artificial Intelligence“
Keywords: Machine Learning, NeuralNetworks, GANs, StyleTransfer, Pix2Pix Tools: RunwayML, ml5.js

“I hate math. Don't I need to be good at math?"

“Do I really need to write code?”
Actually no, you can use visual programming too. Keywords: Visual programming, Node based programming, Blockly Tools: Unreal Blueprint, VVVV, Nodes.io, Cables

“How can I make creative code stuff on my smartphone?”
Tools: phonk, touchOSC, Shade, Spark AR

“How can I make creative things in Augmented Reality“
Keywords: MixedReality, WebXR, Tools: ARjs, ThreeJS, SparkAR (instagram), FaceMesh, Bodypix, ARkit, ARCore, ARFoundation

“I want to use computer vision“
Tools: openCV, ml5.js, posenet,

"I want to build physical objects/products"
Keywords: 3D printing, Additive Manufacturing, CNC, Digital Fabrication Tools: Rhino3D, Blender, Fusion360

Resources

Learning websites

Video tutorials

The Coding Train https://www.youtube.com/user/shiffman

Books & Theory

Coding sandboxes

Courses

School for Poetic Computation (SFPC): NYC based but they are offering courses online Website: https://sfpc.io/

School of Machines, Making, and Make-Believe: Berlin based Website: http://schoolofma.org/

The Node Institute: Berlin based Website: https://thenodeinstitute.org/ Kadenze

Places

  • HappyLab: an open workshop with laser cutter, 3D printer, cnc milling machine, cutting plotter and electronics.
  • State Studio

Festivals & events

  • Retune Festival & Retune Studio visits
  • Mapping
  • Kikk
  • Node
  • Transmediale
  • Ars Electronica
  • Laval Virtual
  • Sonar +D
  • ...

Creative Technology Studios / Artists (Berlin)

  • Niklas Roy
  • Kling Klang Klong
  • Waltz Binaire
  • NEEEU
  • RLON
  • Onformative
  • PCH Innovations
  • So Kanno
  • ...

Inspiration

Communities

Technologies

Languages/Toolkits/Frameworks

Scratch:

Processing: Creative Coding tool/language Based on Java (and Python). It's meant to be easy to learn for artists and designers. There is a large community and a lot of resources online. Often used in schools to teach programming to art students. Good for interactive installations, generative design, and as a Swiss-Army knife of creative code tools. Platform: Windows, macOS, and Linux. Licensing: Free and Open Source. Website: https://processing.org/

p5.js: The javascript-based younger cousin of Processing. With the online editor at https://editor.p5js.org/ there is nothing to install and you can get coding straight away. Like Processing, it has a large community and lots of learning resources online. Good for generative visuals, web-based art, and if you want to show your work online. Licensing: Free and Open Source. Website: http://p5js.org

OpenFrameworks: Open source toolkit designed for creative coding, written in C++ and built on top of OpenGL. Good if you already know C++, care about performance, or want to build more complex projects. Licensing: Free and Open Source. Website: https://openframeworks.cc

Python: a high-level, general-purpose programming language. Interesting modules / libraries: Pygame: Advertised as a library for making arcage games, but you can use it to create static and interactive pixel-based graphics. Processing.py: Python Mode for Processing p5: provides high level drawing functionality to help you quickly create simulations and interactive art. It combines the core ideas of Processing with Python readability Turtle Graphics: Originally designed for teaching coding to children, a fun library for drawing

A-Frame: easy 3D+VR [TBD]

Unity: [TBD] Licensing: Free for non-commercial or commercial use up to $100.000 revenue per year.

Supercollider: “SuperCollider is a platform for audio synthesis and algorithmic composition, used by musicians, artists, and researchers working with sound.“ Platform: Windows, macOS, and Linux. Licensing: Free and Open Source.

  • FoxDot: “Live coding with Python and SuperCollider”
  • TidalCycles: "live coding environment designed for musical improvisation and composition.”

TouchDesigner: a node based visual programming language for real time interactive multimedia content. Create performances, installations, and fixed media works. License: Free for personal use or learning.

OpenRNDR: [TBD]

VVVV: a hybrid visual/textual live-programming environment for easy prototyping and development. It is designed to facilitate the handling of large media environments with physical interfaces, real-time motion graphics, audio and video that can interact with many users simultaneously. License: Free for evaluation and non-commercial use

Thi.ng: “An open source collection of 20+ computational design tools for Clojure & Clojurescript. The libraries address concepts related to many displines, from animation, generative design, data analysis / validation / visualization with SVG and WebGL, interactive installations, 2d / 3d geometry, digital fabrication, voxel modeling, rendering, linked data graphs & querying, encryption, OpenCL computing etc.“ Licensing: Free and Open Source.

nannou: “An open-source creative-coding toolkit for Rust.”

WEBGL & Shaders

Machine Learning

Software

TouchOSC: “A fully modular control surface that runs on all iOS and Android devices. Send and receive Open Sound Control or MIDI messages over Wi-Fi to control all compatible software and hardware.”

Vezér: “Vezér enables control and synchronisation of any MIDI, OSC or DMX enabled environments - realtime video softwares, lighting rigs, etc. - through the use of timeline based automations.“ Licensing: Free demo. Paid licence.

Chataigne:“Artist-friendly Modular Machine for Art and Technology”

Phonk: ”Self-contained Creative scripting toolbox for new and old Android devices”

Tool2

Wekinator: “The Wekinator allows anyone to use machine learning to build new musical instruments, gestural game controllers, computer vision or computer listening systems, and more. The Wekinator allows users to build new interactive systems by demonstrating human actions and computer responses, instead of writing programming code.” Licensing: Free Open-Source

OSCulator: “OSCulator is the missing link between your controllers and your music or video software. For example, you can use your Nintendo Wiimote or Apple iPhone with Ableton Live or any MIDI compatible application, with ease.“

Hardware

Arduino: [TBD]

Depth cameras: [TBD]

Protocols (aka: connecting stuff together)

Sometimes just the one computer is not enough and you want to connect things together. Whether it's a musical instrument, a fog machine, or your smartphone, there are many ways to get your device to play nice together. Here is a selection.

OSC: Useful when you want several devices to talk to each other (for example in an installation). It is widely supported by audiovisual software and creative coding environment.

MIDI: [TBD]

WebRTC: [TBD]

Syphon: [TBD]

Spout: [TBD]

DMX: “DMX512 (Digital Multiplex) is a standard for digital communication networks that are commonly used to control stage lighting and effects.“

UDP: [TBD]

Thanks!

This list is created and maintained by the Creative Code Berlin team as resource for people coming to our bi-monthlymeetups. We hope it can be helpful to others as well :)

If you are looking for a more comprehensive list, check out this curated list of awesome creative coding resources.

About

A growing list of frequently asked questions and resources for creative code beginners

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published