Software tools for making creative projects

There are many tools you may use for creative coding: create video art, sound art, interactive installations and so on. Some projects require using several tools for production. When choosing the tool, take into account your requirements such as time for development (and learning the new tool if required), stability, flexibility and a price.

Note: machine learning and artificial intelligence tools are described in our other posts.

Non-programming tools 

These tools doesn't require programming, and they are ready to use
for implementing specific tasks. Normally, thay are robust and doing well they are made for, but are not very flexible for making very "custom" tasks. Normally, such tools are used as basics for the project for routing tasks such as getting data from cameras/sensors and output video to several screens.

Resolume - VJ software, simple to start working with (commercial).

VDMX - VJ software, with very sophisticated possibilities to create your own GUI for your tasks. (For Mac only, commercial) .

MadMapper - mapping software (for Mac only, commercial).

Isadora - modular-based environment for video and interactive video; commercial. You made a program from a "big" modules such as camera capture and its processing.

Unity 3D - 3D Engine; though there are programming possibilities, you may start use it without it.

Unreal Engine 4 - 3D Engine, with big programming possibilities, but you may work with it without programming.

nunuStudio - a tool for creating interactive 3D in web, using web editor, with good documentation and examples

Boson - modular application for working with cameras and modern AIalgorithms.

Ableton Live - realtime sound processing and mixing (commercial)

Also, here is a tools often used during working on creative projects. Of course, using them, it's possible to do entire art projects, such as videoart, but they are not suitable for making interactive projects:
Adobe Photoshop, Gimp - raster graphics and photo editors (Adobe Photoshop is commercial)
Inkscape - vector graphics editor
Audacity - sound files editor
Abobe Aftereffects, Adobe Premiere, Sony Vegas - video editors
Cinema4D, 3DMax - 3D graphics editors.

Visual programming

These tools are between "non-programming" and "text programming" tools. Also it called "node-based" programming.
They are based on using modules (nodes), connected by links, which performs specific tasks.
Comparing to Isadora and Boson, tools, mentioned here, are more or less universal and allow to implement "any" algorithm.

Max/MSP, Pure Data - old and still popular languages, promarily oriented on sound processing. They are very close, but Max/MSP is commercial, and Pure Data is open source.

(Kyma, Reaktor - professional node-based sound systems.)

Derivative TouchDesigner - very popular node-oriented language for interactive graphics (full version is commercial).

vvvv - node-oriented language for interactive graphics, (full version is commercial).

Houdini - powerful node language for non interactive graphics, (full version is commercial).

Unreal Engine Blueprint - node-based language for Unreal Engine.

Text programming

Here is text-oriented coding tools. They are most powerful, but also often more time-consuming.

Python - very popular universal language, currently main language for working with machine learning and artificial intelligence. But, for creative coding, it's not very appropriate because is not realtime-oriented (but C++ and Java are good for realtime).

C++, Java languages - they are most powerful and you can use them to do anything with computer, but often it's more effective to implement that you need using some specific sublanguage/library dedicated to you project's area - such as Processing, openFrameworks, Cinder.

Processing - currently very popular language for creative coding, based on Java, but allows working with JS too.

openFrameworks - C++ library, syntax is similar to Processing, but more powerful due its C++ not Java.

Cinder - C++ library, similar to openFrameworks.

Unreal Engine C++ - you may extend Unreal Engine and work with it maximally efffective using its C++ capabilities.
Unity C# - programming using C# in Unity 3D.

Shadertoy - developing and deploying shaders in web browser.

Arduino - programming Arduino-compatible controllers, language is kind of Processing/C++, often used when project needs to deal with electronics.

CSound - quite old, but powerful language for programming sound.
SuperCollider - powerful language for programming interactive sound.

Comments

Popular posts from this blog

Computing ray origin and direction from Model View Projection matrices for raymarching

Forward and backward alpha blending for raymarching

Forward, Deferred and Raytracing rendering in openFrameworks and web