2016-09-10, post № 141

curses, programming, Python, #animation, #bit, #bits, #falling bits, #hacker, #hacking, #Matrix, #screensaver

Recreating the famous falling bit effect from Matrix using python and curses.The individual bit strips are separate entities, falling to the bottom and then being moved up again with a different 𝑥 value. They also get a random speed between one and five deciseconds.

Source code: j-trix.py

Collatz Conjecture

2016-09-03, post № 140

mathematics, programming, Pygame, Python, #3n+1, #three n plus one

The Collatz conjecture states that every positive integer 𝑘 > 𝟢 will — if you iteratively set 𝑘 to 𝑓 (𝑘) — result in 𝟣 (function shown beneath).
The graph beneath shows the path length of numbers from 𝟣 to 𝟣𝟢 𝟢𝟢𝟢. In this range, 𝟨 𝟣𝟩𝟢 is the number with the most steps, 𝟤𝟨𝟣.

f(k)={\begin{cases}\frac{k}{2}&{\text{if }}k\mod 2=0\\3\cdot k+1&{\text{if }}k\mod 2=1\end{cases}}
Source code: collatz-conjecture.py

Curses Cam

2016-08-27, post № 139

curses, programming, Pygame, Python, #camera, #color depth, #low resolution, #shell image, #.si, #text-based images

Normally a shell lets you input via a text command and outputs via a text message [1]. When using curses you can extend its capabilities and program for example games with limited graphics.
I wanted to go even further and built a Python script that — using Pygame’s camera module and curses — captures an image from an attached webcam (USB or built-in), transforms it and displays it on the shell.
Although both the resolution and the color depth are shrunk immensely, the resulting colored text on the shell often resembles the scene caught and has a nice visual effect.
There are two modes, camera and file viewer, which can be toggled by pressing ‘F1’. In camera mode you can see what the camera is seeing and snap a photo, which then will be saved to disk. In file viewer mode you can view the photos you took. The files will be saved in an out/ directory located in the current Python file’s directory. Saved photos have the file extension .si (“shell image”).
Unfortunately, Pygame’s camera module does neither work on Mac OS X nor on Windows. Thus this program is only properly usable under Linux [2] systems. You obviously also need a webcam or else you will not be able to take a picture.


  • ‘F1’ switches between camera and file viewer mode,
  • ‘Space’ saves the current photo as a .si file (only in camera mode),
  • Left or down arrow key decreases current file’s id (only in file viewer mode),
  • Right or up arrow key increases current file’s id (only in file viewer mode).
Source code: curses-cam.py
Jonathan Frech's blog; built 2021/04/16 21:21:49 CEST