C4 is an open source framework built to make creative-coding easy for designers.

C4 is an open source framework built to make creative-coding easy for designers.

C4 is an open source framework built to make creative-coding easy for designers.

C4 is an open source framework built to make creative-coding easy for designers.

C4 in Xcode

You can create beautiful interactive experiences with it.

You can create beautiful interactive experiences with it.

You can create beautiful interactive experiences with it.

You can create beautiful interactive experiences with it.

C4 video styling, with playback on iPhone

A light installation I made with Alex, from Tangible Interaction.

A light installation I made with Alex, from Tangible Interaction.

A light installation I made with Alex, from Tangible Interaction.

A light installation I made with Alex, from Tangible Interaction.

The language is simple, expressive, and easy to learn.

The language is simple, expressive, and easy to learn.

The language is simple, expressive, and easy to learn.

The language is simple, expressive, and easy to learn.

Line drawing on iphone

var pts = (Point(), Point())
var step = 0.0
repeat {
    let w = pow(1.1, step)
    let dy = Vector(x: 0, y: w+1)
    pts.0 += dy
    pts.1 += dy
    let newLine = Line(points)
    newLine.lineWidth = w
    canvas.add(newLine)
    step += 1.0
}

var pts = (Point(), Point())
var step = 0.0
repeat {
    let w = pow(1.1, step)
    let dy = Vector(x: 0, y: w+1)
    pts.0 += dy
    pts.1 += dy
    let newLine = Line(points)
    newLine.lineWidth = w
    canvas.add(newLine)
    step += 1.0
}

var pts = (Point(), Point())
var step = 0.0
repeat {
    let w = pow(1.1, step)
    let dy = Vector(x: 0, y: w+1)
    pts.0 += dy
    pts.1 += dy
    let newLine = Line(points)
    newLine.lineWidth = w
    canvas.add(newLine)
    step += 1.0
}

var pts = (Point(), Point())
var step = 0.0
repeat {
    let w = pow(1.1, step)
    let dy = Vector(x: 0, y: w+1)
    pts.0 += dy
    pts.1 += dy
    let newLine = Line(points)
    newLine.lineWidth = w
    canvas.add(newLine)
    step += 1.0
}

let dy = Vector(x: 0, y: 100)

let a = ViewAnimation(1.0) {

    line1.endPoints.0 += dy

    line2.endPoints.1 -= dy

}


a.repeats = true

a.autoreverses = true

a.animate()

let dy = Vector(x: 0, y: 100)

let a = ViewAnimation(1.0) {

    line1.endPoints.0 += dy

    line2.endPoints.1 -= dy

}


a.repeats = true

a.autoreverses = true

a.animate()

let dy = Vector(x: 0, y: 100)

let a = ViewAnimation(1.0) {

    line1.endPoints.0 += dy

    line2.endPoints.1 -= dy

}


a.repeats = true

a.autoreverses = true

a.animate()

let dy = Vector(x: 0, y: 100)

let a = ViewAnimation(1.0) {

    line1.endPoints.0 += dy

    line2.endPoints.1 -= dy

}


a.repeats = true

a.autoreverses = true

a.animate()

C4 video styling, with playback on iPhone

It is rooted in my practice developing installation artworks and teaching.

It is rooted in my practice developing installation artworks and teaching.

It is rooted in my practice developing installation artworks and teaching.

It is rooted in my practice developing installation artworks and teaching.

Giving a talk on C4 at Resonate

I often gave lectures on artistic expression through software.

I often gave lectures on artistic expression through software.

I often gave lectures on artistic expression through software.

I gave many lectures on artistic expression using code.

Artist workshop at Resonate

I led many creative coding workshops over the years.

I led many creative coding workshops over the years.

I led many creative coding workshops over the years.

I led many creative coding workshops over the years.

Everything is possible. Touch interfaces, randomization, media control, ux components, and more…

Everything is possible. Touch interfaces, randomization, media control, ux components, and more…

Everything is possible. Touch interfaces, randomization,
media control, ux components, and more…

Everything is possible. Touch interfaces, randomization, media control, ux components, and more…

C4 video styling, with playback on iPhone
C4 video styling, with playback on iPhone
C4 video styling, with playback on iPhone
C4 video styling, with playback on iPhone

These examples show randomization animations, icon animations, and touch tracking.

These examples show randomization animations, icon animations, and touch tracking.

Examples showing randomization, ux animation, and touch tracking.

These examples show randomization animations, icon animations, and touch tracking.

Click any image below to view the Automata project

Bringing a project like this to life taught me the importance of having clear vision, resilience and patience.

Bringing a project like this to life taught me the importance of having clear vision, resilience and patience.

Bringing a project like this to life taught me the importance of having clear vision, resilience and patience.

Bringing a project like this to life taught me the importance of having clear vision, resilience and patience.

Click on any of the images below to see my Automata Project ↓↓↓

Click on any of the images below to see my Automata Project ↓↓↓

Click on any of the images below to see my Automata Project ↓↓↓

C4 grew from a personal project to an open-source framework adopted into university curricula, and the technical foundation of my design firm and startup. It still anchors recent Metal-accelerated generative work.

C4 grew from a personal project to an open-source framework adopted into university curricula, and the technical foundation of my design firm and startup. It still anchors recent Metal-accelerated generative work.

C4 grew from a personal project to an open-source framework adopted into university curricula, and the technical foundation of my design firm and startup. It still anchors recent Metal-accelerated generative work.

C4 grew from a personal project to an open-source framework adopted into university curricula, and the technical foundation of my design firm and startup. It still anchors recent Metal-accelerated generative work.

Travis Kirton, MA