10 Free and Open-source Generative Programming Art Tools
Programming Art is a form of art that involves the creation of visual and interactive designs using programming languages. It combines the principles of programming with the aesthetics of visual design. Programming Art can be used to create animations, visualizations, generative art, and interactive installations.
Programming Art is different from Graphics Design Art. Graphics Design Art involves the use of visual elements like typography, images, and color to communicate a message or promote a brand. Graphics Designers use software like Adobe Illustrator, Photoshop, and InDesign to create their designs.
On the other hand, Programming Art involves the use of code to create visual and interactive designs. Programmers use languages like Processing, OpenFrameworks, and WebGL to create their designs. They use algorithms, mathematical functions, and computer graphics techniques to create unique and dynamic visuals.
Programming Art has become increasingly popular in recent years, with the rise of creative coding communities like Creative Coding Club and Processing Community Day. These communities provide a platform for artists, designers, and programmers to share their work, collaborate and learn from each other.
In conclusion, Programming Art is an exciting and innovative form of art that combines programming and visual design. It allows artists and designers to create unique and dynamic designs that are not possible with traditional graphics design tools. If you are interested in exploring the world of Programming Art, there are many resources available online to get you started.
1- Processing
Processing is an open-source programming language and development environment that is used to create interactive visuals and animations. It is a high-level language that is easy to learn, and it is based on the Java programming language.
The Processing IDE provides a simple interface for writing code and visualizing the results. You can write code to draw shapes, create animations, and interact with inputs like the mouse and keyboard. The Processing IDE is available for Windows, Mac, and Linux.
One of the advantages of Processing is that it is cross-platform, which means that you can develop your code on one operating system and run it on another. Processing also has a large community of users who share their code and provide support to each other.
Processing was initially released with a Java-based syntax, and with a lexicon of graphical primitives that took inspiration from OpenGL, Postscript, Design by Numbers, and other sources. With the gradual addition of alternative progamming interfaces — including JavaScript, Python, and Ruby — it has become increasingly clear that Processing is not a single language, but rather, an arts-oriented approach to learning, teaching, and making things with code.
2- Curv
Curv is a programming language for creating art using mathematics. It’s a 2D and 3D geometric modelling tool that supports full color, animation and 3D printing.
Features:
- Curv is a simple, powerful, dynamically typed, pure functional programming language.
- Curv is easy to use for beginners. It has a standard library of predefined geometric shapes, plus operators for transforming and combining shapes. These can be plugged together like Lego to make 2D and 3D models.
- Coloured shapes are represented using Function Representation (F-Rep). They can be infinitely detailed, infinitely large, and any shape or colour pattern that can be described using mathematics can be represented exactly.
- Curv exposes the full power of F-Rep programming to experts. The standard geometry library is written entirely in Curv. Many of the demos seen on shadertoy.com can be reproduced in Curv, using shorter, simpler programs. Experts can package techniques used on shadertoy as high level operations for use by beginners.
- Rendering is GPU accelerated. Curv programs are compiled into fragment shaders which are executed on the GPU.
- Curv can export meshes to STL, OBJ and X3D files for 3D printing. The X3D format supports full colour 3D printing (on Shapeways.com, at least). These meshes are defect free: watertight, manifold, with no self intersections, degenerate triangles, or flipped triangles
3- Ronin
Ronin is a procedural graphics tool designed to automate simple graphical tasks, like resizing, cropping, coloring, and generating algorithmic images. It interprets a minimal dialect of LISP, look at these examples to better understand how this all works.
The library updates are constantly revealing new applications to Ronin, you can see the list of available functions here. Most of our iconography and designs were created with both Ronin and Dotgrid.
4- Pencil Code
Pencil Code is a collaborative programming site for drawing art, playing music, and creating games. It is also a place to experiment with mathematical functions, geometry, graphing, webpages, simulations, and algorithms. Programs are open for all to see and copy. Pencil Code supports CoffeeScript, JavaScript, CSS, and HTML.
5- VVVV
vvvv is a visual 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.
vvvv is free for non-commercial use, commercial use requires a commercial license.
6- OpenFrameworks
openFrameworks is an open source C++ toolkit for creative coding.
7- Cinder
Cinder is a free and open source library for professional-quality creative coding in C++.
8- NodeBox 3
Cross-platform, node-based GUI for efficient data visualizations and generative design.
9- Polycode
Polycode is a 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.
The core Polycode API is written in C++ and can be used to create portable native applications.
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 available under the MIT license and was designed and developed by Ivan Safrin.
10- p5.js
p5.js is based on Processing, a popular programming language and development environment for creating art. p5.js has a similar syntax to Processing, but it is designed specifically for the web. This makes it easy to share your creations online and to integrate them with other web technologies.
The p5.js library provides a wide range of functions for drawing shapes, creating animations, and responding to user input. You can use p5.js to create interactive games, data visualizations, and even virtual reality experiences.
One of the great things about p5.js is that it is flexible and accessible to both beginners and experienced programmers. If you are new to programming, you can start with simple examples and gradually work your way up to more complex projects. If you are an experienced programmer, you can use p5.js to explore new creative possibilities and push the boundaries of what is possible with code.
Another advantage of p5.js is that it has a large and supportive community of users. You can find examples, tutorials, and forums online where you can share your work and get feedback from other users.
In conclusion, p5.js is a powerful and flexible tool for creating interactive graphics and animations. It is accessible to both beginners and experienced programmers, and it has a large and supportive community of users. So, if you are interested in exploring the creative possibilities of code, give p5.js a try!