2 comments

[ 3.0 ms ] story [ 14.0 ms ] thread
Hi, I had some great fun coding all the effects in this video using python, opencv and dlib.

My approach: I work as a dev in roboto nautic drones. I am strict at the dayjob so i "shitcode" my "artware" in my sparetime meaning i usually go through the following cycle:

(Example based on the slitscan teeth and eyes effect from the video)

1. I wake up from a (day/night)-dream with a thought: "how wluld it look if the teeth grew out from a video face while showing their past as a slitscan"

2. I find a sourcevideo since i am lazy (usually on youtube)

3. Load up vscode and startwriting python

4. I write in a state of garbage flow, garbage because the code i write is deliberatley trashy (a vent/dayjob escape), flow because i dont do much editing. Itend to like to overwrite (reclare) functions instead of correcting them leaving a huge pile of trash code

3. I render a few frames, correct my algorithm, render some more and when happy (or falling asleep) i press enter and let it run (with tqdm telling me eta on completion)

4. I way, usually days because i deliberatelydont optimize my code so its slooooooow to render

5. On finnish i look at the result and feel like i got the answer and move on.

In this example though i didnt move on cuz i was doing a friend a favor and had to compile my messy clips into a timeline and give it back to him in form of a music video.

I canrelease my shitty code but i am afraidsomebody might get a seazure looking at it lol

Scripts i wrote:

Voidface: replace the face with an empty void using dlib and facial landmarks

Teethscan: slitscan teeth and eyes while extruding the scans from the correct landmarks and morph to correct orientation of video face subject

Deathmetal logo growth: create particles that are afraid of the dark and branches like trees while growing out leaving traces after them thru their lifetime ending up painting deathmetal logos

Facetubes: a source particle roams around inside the face region. A target particle roams around inside a rect. Targetcopies the pixel values on the cirumference of a circle with varying radius of the source particle.

Mouthwall/eyewall: orientate, normalize and crop eyes or mouth of a face, put all of them next to eachother in a gri as a circular buffer.new frame comes in in right bottom corner, old one leaves in upper left corner.

I think that was it