May 23

Looking for anomalies

When you run some process, there are two ways to look for anomalies – “white box” and “black box”. First one uses some knowledge about the process. Perhaps, you are already doing that. But comprehensive white box analysis is very expensive, so it is easy to overlook something. How about doing black box analysis on top of it?

I wrote some software that does black box search for anomalies in a series of images. It does Fourier transform, crops the low frequency part, calculates average, and then calculates distance from the average for each image.

Here is the focus sweep for the bug:


Continue reading

May 02

TV Antenna

Is it hard to make a TV antenna?

You need a coaxial cable (to connect it to TV), a foam board and a piece of wire.

Schematics is very simple – you make a ring out of the wire, squish it and attach coaxial outer wire to one side and the central wire to the other side.


Plug it to TV and enjoy.

Continue reading

Jun 30


How do I explain it?

Do you know BurningMan?

There is early team sport&fun competition on a peninsula I Puget Sound (it was in other areas before, but close to Seattle in the state of Washington)

Here is the link:

Sorry, it is all in Russian.
This year they added BurningMan-like theme.

We had to come up with something that is going on in a neighborhood using LEDs.

My theme was – three bullies kicked Alien out and occupied the saucer.

Here is the early concept:


Continue reading

Nov 11

Smoke in Natron

When I first tried Natron, I was frustrated with inability to use particle effects like smoke.
It took me a while to figure it out. But finally I have a solution!

Here is step-by-step instruction:
1. Install Natron from
2. Install community plugins from
3. Run Natron, add node “Shadertoy” from “Filter” section
4. In the ShaderToy property click on “Image Shader”. It will expand a large section of parameters.
5. In “Load From Preset” select something (for example, “Bubbles”) to make sure it works (connect “ShaderToy” node output to “Viewer” input, of course)
6. Now go to and search for “Smoke” (or whatever effect you need). Click on it. Copy the source (in C-like language) from the window on the right
7. Back in Natron, select in “Load From Preset” “No Preset”, clean up the Source window and copy there the code.
8. It will fail! You need to go through the code and replace iTime with iGlobalTime and also texture with texture2D. there might be no “texture”, but for sure there will be iTime.
9. Compile! The “Compile button looks like it is disabled, but it works indeed!
10. It works? Great! Now make it permanently available! Go to C:\Program Files\INRIA\Natron-2.3.2\Plugins\OFX\Natron\Shadertoy.ofx.bundle\Contents\Resources\presets\default\ and create a file with extension .glsl, like myeffect.glsl
11. Edit C:\Program Files\INRIA\Natron-2.3.2\Plugins\OFX\Natron\Shadertoy.ofx.bundle\Contents\Resources\presets\default\Shadertoy.txt – add a line
“My Effect” “myeffect.glsl”
It is easy to group items. Use this instead:
“My Effects/MyEffect” “myeffect.glsl”
12. Restart Natron and enjoy!