I just had gpt do a deep research on how to get started with physical circuit bending old digital cameras last night after seeing some fun tiktoks. Anyone know of any quick start resources/kits?
Could've just name it Genius iLook 1321, lol. At least that was the experience for me when I tried to write a Linux driver for it. It was a pre-UVC camera, so that time I did all the glitches natively.
Had great fun with this today, thanks! Makes me think I'd love a compact hackable point'n'click glitch camera that you can load with glitch patches. Like a lomo and a guitar pedal had a baby.
Nice! It’s the polish and attention to detail that really distinguishes this from something purely generated with AI. Getting the design details right shows the human touch.
I capture each of the frames and process it pixel by pixel[1]. There are 3 inputs to the simulation
1. The gain knob controls the overall intensity of the effect
2. The selected pins / effects are applied to the frame. I describe a couple of the effects below:
For HClock:
If the horizontal clock pin is selected, I cut the frame into variable height slices (some are 2-3px, others 8-20px). For each slice, I calculate a random shift (up to ~20% of the frame width) and move the slice to the left or right by the shift value. Then I randomise between keeping the slice normal (70% of the time), black (15%), or a random color band (15%). I then add a magenta tint + darken every other line to simulate a broken TV signal.
For OD:
If output drain pin is selected, I compute a random global offset and per line offet jitter. Then for each of the pixels, I move the red to the left and blue to the right by the jitter value.
After the effects are added, I add a global noise, some corrupt lines (on ~30% of the frames, random horizontal lines of magenta/pink/white, shifted/added)
3. Finally a global hue shift is added based on the second knob.
One thing I realised is that Math.random() produced a lot of noise and flow between the frames looked disorienting. So I used a simple integer hash function to produce a more "deterministic" random number and the frames looked more stable/consistent.
[1] I should probably look for optimisations to prevent the device heating up after a few minutes.
inspiration that I had me digging into this stuff: https://www.tiktok.com/@0xa.mp4
- https://ade3.substack.com/p/how-to-make-a-glitch-camera
- https://drive.google.com/drive/folders/1BbJMZmAN7hbA2YoD0xsV...
- https://fubar.space/wp-content/uploads/2022/10/Glitchwerks-C...
- https://www.reddit.com/r/CircuitBending/ [Many posts are about cameras]
https://getcircuitbent.com/shop/bending-diy/easy-mode-glitch...
Is it working so slow (like 0.5-1 fps) only for me or is this intended?
Also, you mention video, how to switch to video from photo?
Other than that - that's pretty fun, just like others I love that everything is local on client.
Really really really fun! Thanks for making it. :)
Is it emulating the CCD chip somehow, or approximating the effects?
1. The gain knob controls the overall intensity of the effect
2. The selected pins / effects are applied to the frame. I describe a couple of the effects below:
For HClock: If the horizontal clock pin is selected, I cut the frame into variable height slices (some are 2-3px, others 8-20px). For each slice, I calculate a random shift (up to ~20% of the frame width) and move the slice to the left or right by the shift value. Then I randomise between keeping the slice normal (70% of the time), black (15%), or a random color band (15%). I then add a magenta tint + darken every other line to simulate a broken TV signal.
For OD: If output drain pin is selected, I compute a random global offset and per line offet jitter. Then for each of the pixels, I move the red to the left and blue to the right by the jitter value.
After the effects are added, I add a global noise, some corrupt lines (on ~30% of the frames, random horizontal lines of magenta/pink/white, shifted/added)
3. Finally a global hue shift is added based on the second knob.
One thing I realised is that Math.random() produced a lot of noise and flow between the frames looked disorienting. So I used a simple integer hash function to produce a more "deterministic" random number and the frames looked more stable/consistent.
[1] I should probably look for optimisations to prevent the device heating up after a few minutes.
Anyone else getting certificate issue?
...Certificate issue was here