This section of website has a few interactive essays and ideas for creative coding. Many are related to my Solandra projects (2D creative coding framework, for 2D web Canvas, SVG graphics and most recently Flutter), which make creative coding ergonomic and agile.

1. Solandra

Solandra is a browser/HTML Canvas based open source framework for creating Algorithmic Art. It is 'TypeScript-first' with batteries included yet feels light weight. Thanks to being based on web based technologies you can see changes almost immediately. It is extremely opinionated (unlike Processing), but if you largely agree with my opinions(!) you will hopefully find it to be a productive and agile framework.

1.1 Solandra Tutorials

I wrote an unconventional introduction to it here in Solving Sol with Solandra which teaches Solandra by implementing solutions to some simple instructions from Sol LeWitt (an early algorithmic artist).

I wrote a more conventional introduction to Solandra here in Generative Icon Design, a Solandra tutorial which teaches Solandra by showing how you might use it to come up with contemporary App icon designs.

This third tutorial shows how to create iOS style wallpapers with Solandra.

Some of the thinking that went into making it is covered below. It tries to have human friendly APIs and ensure that common tasks are done for you by the framework. You can add it to a Javascript project via:

npm i solandra

Or get started immediately via this Code Sandbox demo of Solandra.

1.2 Examples

Solandra's website has over 100 examples, illustrating all parts of its API.

I set up a Daily Sketches site where I will try and add a new sketch each day.

1.3 Practice

Creating a digital watercolour effect with Solandra.

2. Ideas

I started these interactive essays to explore and prototype the design for a drawing library ('like Processing but with nice APIs'(!)). Inspired by Tyler Hobbs I initially looked at Quil (a small Clojure wrapper for JVM Processing), however I find Clojure's lack of types, generally awful errors and inconsistent approaches (who knows where the 'data' argument to things like reduce will appear) to be extremely frustrating.

I then started working with Kotlin, which allows very natural use of JVM Processing, but with modern language features. In particular it allows for the very easy/natural 'fascading' of verbose or awkward APIs and easy extensibility of 3rd party code in ways that are useful in general or to specific projects. Eventually I actually got round to building my own framework, Solandra.

Here are some essays on aspects of computer drawing theory and practice. Often they include dynamic/interactive demos.

2.1 Theory

2.1.1 Bézier Curves

Drawing curves with code. An interactive introduction to Bézier Curves and a difference, more algorithm-friendly way to describe them.

2.1.2 Arcs

Drawing slices of pie (charts).

2.2 Practice (Archived)

Leveraging Kotlin with Processing.

A. Kotlin First Steps

Some suggestions on how to use Kotlin for Processing.