Projects presentation page

This page is mainly designed to showcase some p5.js or Processing projects programmed by Étienne Jacob. Started in September 2016.

p5.js projects

Vector field drawing

Yellow painting

After I found out about Processing, I rapidly came across Daniel Shiffman's excellent videos. More precisely I find p5.js great because it makes it so easy to share your work. This drawing tool was a nice project to discover lots of features from Processing/p5.js.

About the project's content : some particles paint a canvas, guided by forces generated from Perlin Noise. The physics and colors are very customizable. I used Daniel Shiffman's code and continued from there.

(Previous version with smaller sliders)

Spinning shapes

Spinning triangles

This is at the beginning mostly something to have a second project, in order to make this page more useful. This is a p5.js project. Some colored shapes (right now just triangles) move and spin... there are many options.

Color gradient extraction

starry night

"Vector field drawing" taught me that color gradients can have a great influence on the "beauty" of randomly generated things. I had the idea of generating color gradients from pictures, and that's what this project is about. There are currently two applications of gradients : balls moving randomly while drawing and some effects on webcam captures.

Neural network driver


A little neural network that drives through checkpoints (the second checkpoint to take influences the driving line).

2D-Waves integration


Quick sketch mainly made by copying an old code I had written in OCaml.

Rocket optimization 1


Optimization of a rocket trajectory using an evolutionary algorithm.

Rocket optimization 2


Optimization of a rocket trajectory using simulated annealing.

Mandala drawing


A simple drawing tool.

Grid distortion


An interactive sketch about a spring based grid I made for a GIF.

Processing contests

Album cover generator


My attempt to a little challenge about the album cover of Unknown Pleasures (won it).

Dark Side of the Moon sketch


My quick attempt to a little challenge about the album cover of the Dark Side of the Moon (won it).

GIF art :

In January 2017 I started making perfectly looping black and white GIF art with Processing (first with p5.js, then with Java Processing), and I uploaded my GIFs on a tumblr blog named "necessary-disorder". Link :

Examples : gif2 gif3 gif4

This work was showcased in April 2018 on : The Mesmerizing Animation of Sinusoidal Waves in GIFs by Étienne Jacob

Other projects on Github


Spinning triangles

A module to plot 3D meshes with Objective Caml. It contains some additional mesh processing features.


Spinning triangles

Optimization of the traveling salesman problem (TSP) by ant colony optimization. Implemented in C++ with Qt. It should be somewhat ready for release although I'm not 100% sure it works as well as it is supposed to.


Spinning triangles

An OCaml module to show and/or generate meshes of 3D mazes. Generated meshes can be easily transefered to Blender's renderer for example.


Spinning triangles

An old project about generating and rendering in 3D some 4D perfect mazes.

About the author of this page

I am Étienne Jacob, student at the ENPC (École des Ponts ParisTech) french engineering school in the IMI department (Computer Science and Applied Mathematics). I like to work on computer science projects during my free time. You can follow me on Twitter !

Contact : etin (dot) jacob (at) gmail (dot) com
Go to top