Created by a human, with a brain badgeA badge with a character next to the text "Web 14," indicating that the site may contain slightly offensive materialDo What The Fuck You Want To Public License badgeD D Race Network badgemi toki e Toki Ponamade with MY OWN TWO PAWS badgeNo cookies badgeNo tracking or analytics badgeMade with server-side scripting badgeHosted on home internet badge


Bad Apple!!

git: https://ceriinas.me/git/BadApple.git
tar: https://ceriinas.me/git/BadApple.tar.gz
BFAS patch (included in source)


These animations were rendered using a three-quarters-baked art program I made, BFAS. The code here generates positions for colored and white points, feeds those into BFAS to render a frame which is output to shared memory, and then assembles a final video. The point movement is as follows:
  • The screen is divided into regions by flood filling
  • Regions have points matching their color status assigned based on region sizes and proximity
  • Points are pulled into their assigned region ~one by one if they are outside of it
  • Directional voronoi relaxation is done (a point at the center left of a U would move down, not right)
    • This is horribly inefficient, causing the process to take 54 hours on my pretty beefy machine
      • (My answer to every question was "I'm lazy, let's just brute force")
    • Output is attached so that you don't have to run that if you want to play with anything or use the point positions for something else
  • 4-mean smoothing is applied because the relaxation goes all the way each time which causes some jittering (relaxation is done at 480x360)

Development Photos

A screenshot of a terminal ASCII output for development. It is showing whether pixels are black or white.
A screenshot of a terminal ASCII output for development. It is showing a voronoi diagram of points on Reimu's shadow.
A screenshot of a Processing program that was used to work on point snapping to regions and voronoi relaxation. Several points are outside of a drawn black object.
A screenshot of a Processing program that was used to work on point snapping to regions and voronoi relaxation. The points have been snapped to the edges of the drawn black object.
The first successful frame rendered through BFAS:
An image with spread out, gradiented colors filling everything.
An image testing normal output.
An image testing voronoi output.
An image testing influenced display output.
An image testing fireworks output.
"I think my memory leak might be related to other memory bugs. Just a hunch."
A rendered frame with very heavy artifacting.
(I haven't fixed the memory leak, BFAS just gets restarted every 150 frames rendered :D)
An image mask test with a glow surrounding the primary focus.