computational art

Artwork from Spring 2020

Below are a collection of my recent artworks in the past few months. Playing with a few new techniques in motion and drawing lines in various colors and forms. Let me know which ones are your favorites in the comments! Thanks for checking them out.

Circle scribble
Josef Albers homage

— ✌️Ballio

computational art motion graphics


In this hectic world, it’s sometimes tough to remember to breathe. This is my reminder.

I wanted to make something time-based to convey everybody is in a rush, going at various rates in motion.

Breathe, friends. Namaste. 🙏

computational art


As a further exploration of the tunnel piece, I wanted to explore how it could translate in the 3 dimensional space. Thought this iteration in Cinema 4D is a nice translation of the original.

Tunnel in its full depth glory

Animated piece:

computational art

New works – Summer 2019

computational art

Recent graphics experiments in January and February of 2019

Below are some recent graphics I’ve been playing with in recent months. Most of the work are still generated in Python with Drawbot. Some new techniques I’ve been experimenting with is generating SVG or PDF vector outputs with code, while importing those vectors into After Effects to further convert them to shape layers. I find it much more controllable and the possibilities are even more endless. Although now we’re dealing with time-based animations only, there’s less computation and code-based things we can do with AE. Although, there might be something I can do with the data and After Effects expressions in Javascript.

Also, I know Cinema 4D uses Python, so I’ve been starting to play with that in C4D as well to make some time-based animations — like this one experiment I did for

computational art

Rotated squares

Inspired by Bridget Riley’s works. I started experimenting with squares that are slightly rotated and tiled, which creating some weird optical illusion when moved.

a8c design motion graphics

WordPress 5.0

In celebration of the new WordPress 5.0 release, I’m giving my site a new look! It’s using the latest and greatest Gutenberg-ready theme — Twenty Nineteen, designed by my talented Automattic co-workers and friends, Allan Cole and Kjell Reigstad.

Pretty sleek!

I am loving the flexibility of the block editor, and just how intuitive it is to see exactly what your post will look like. I’m still tweaking and playing with things, so more to come.

Another thing that I’m really excited about this WordPress 5.0 release is the release video! I had the pleasure to co-lead the creative direction on this video with my talented co-workers, Matias Ventura and Josepha Haden. We worked with the fine folks over at ThinkMojo to produce this video for us.

The result is an energetic, jazzy piece of animation that showcases the possibilities of our new block editor. Enjoy.

WordPress 5.0 “Bebo” release video

The video was even featured at the end of the State of the Word by Matt Mullenweg at WordCamp US 2018. 🙂

computational art

Calder set in Caslon 422 set in Futura

Sort of a meta design. Using the unique shapes of Caslon, trying out some animation techniques of text fitting into paths made with type in drawbot.

It was pretty cool that Ace Hotel retweeted it!

computational art

Juno + Ballio

This time, I was inspired by Josef Albers’s “Interaction of Color” 

Josef Albers’s Interaction of Color

For this exercise, I was experimenting with using random()for various fills and the type. I was also trying to see how animation, timing, and frame rate works in drawbot. Lots to explore and play with.

This reminds me of one of my favorite books we read to our children, Albers’s Squares and Other Shapes, before working on this design with Juno. Highly recommended.

Here’s the code if you all want to play with it:


for frame in range(NFRAMES):
# set a blend mode

# draw a rectangle

    fill(random(), random(), random(), 1)

#    x    y    w    h
    rect(100, 100, 400, 400)

    fill(random(), random(), random(), 1)
    rect(500, 100, 400, 400)

    fill(random(), random(), random(), 1)
    rect(500, 500, 400, 400)

    fill(random(), random(), random(), 1)
    rect(100, 500, 400, 400)

    fill(random(), random(), random(), 1)
    rect(300, 300, 400, 400)

    # set a font and font size
    font("Futura", 200)

    # set a blend mode

    # draw text
    fill(random(), random(), random(), 1)
    text("Juno", (140, 630))
    fill(random(), random(), random(), 1)
    text("Ballio", (130, 230))