Evolved Art

Computers are thought of as unthinking, logical machines. However, it is still possible, in a way, to ask a computer to create specific kinds of abstract art — sometimes without directly specifying what it should look like.

Genetic algorithms (which I’ve played with before) represent problems to be solved as sequences of bits. For example, an uncompressed RGB bitmap could be represented as 24*X*Y bits, where X and Y are the width and height in pixels of the picture in question. These bits can then be treated as genes — subject to crossover, mutation, and perhaps other operators when creating a new generation.

The key is the fitness function. Each candidate solution is tested to see how well it works. It is assigned a score on some arbitrary scale by the fitness function. A simple fitness function for pictures, for example, might award a positive score for blue and green, and deduct points for red. This would eventually lead to a picture of pure cyan pixels (#00FFFF).

Similarly, an existing picture can be used as a fitness function. As the candidate solutions blindly evolve, selection pressures ensure that more child genomes drift towards the optimal solution (the search space here is linear and smooth.) Eventually, over the generations, the picture emerges.

In the above video, bytecode genomes are interpreted as wire art. Every pair of bytes represents one 16-bit polar coordinate — one of 65,536 equally-spaced points on the unit circle. Two such pairs make a chord; a virtual “wire” can be strung between them, changing pixel values in the area inside the circle.

In this run, a fixed population of 150 genomes of length 1400 (representing 350 wires) are evolving. Each generation, each genome is evaluated in terms of how closely it would match the target image, if interpreted as polar coordinate wire art. Pairs of genomes are chosen at random, and a sort of contest is run. The genome of the two with the higher fitness score is more likely to be chosen to reproduce. In this way, genomes which code for wires that contribute helpful pieces of the target image are selected for.

(Monochrome wire is used in this run, but greyscale and full RGB color are also possible. I’m using monochrome here, since it’s faster.)

The scientific community has known for over a century that Darwinian evolution works. But it’s still fascinating to see it for yourself in real-time.

Posted in BASIC, Coding, Math, Science | Leave a comment


“Thanks” to the recently-passed S.J.Res. 34, ISPs now are legally permitted to sell the Internet access history of their customers. Good job, you crooks.

This is a bald-faced sellout by a Congress intent on wringing every dollar they can for their corporate buddies from the public. Had Ma Bell tried to sell our phone history back in the day, new management would have been quickly installed by a mob armed with torches and pitchforks. Do we really want to live in a world where our every action is available for purchase?

I don’t. So I bought a bear. Specifically, a TunnelBear.

The delivery may be whimsical, but the idea behind it is sound. If our ISPs are legally allowed to sell our private browsing history to the lowest bidder, it falls to us to leave them nothing to sell.

VPNs are nothing new. The name “Virtual Private Network” is pretty accurate — it allows you to securely and privately join a remote network by exchanging encrypted communications over an untrusted link (the Internet in general and now even our own ISPs.)

So TunnelBear.com (for free, for the first 500MB per month, or unlimited for a low-cost subscription) allows users to securely and automatically connect to various networks that they have set up around the world. ISPs only see encrypted browser traffic to TunnelBear’s servers, not the contents or even the final destination. You browse as usual, and the requests come from some anonymous server in … wherever the VPN server is.

Non-techie analogy: The “bear” (the VPN software and VPN servers) securely “tunnels” your data to another location, so your ISP can’t see what you’re doing and sell your private data.

There’s a bit of a performance hit, but not as bad as you’d expect. My 150/150 FiOS connection got me about 75/50 through the VPN, which should be more than enough for even HD video. More importantly, inbound ports still work — TunnelBear seems to only catch outbound browser traffic.

With the recent political climate, I think we’re going to see more VPN providers. The peace of mind is worth it.

Posted in Current Events, Digital Citizenship, Internet, Networking, Reviews, System Administration | Leave a comment

Sense Home Energy Monitor: First Impressions

Sense has come up with a really interesting approach to home power monitoring. Their Sense Home Energy Monitor uses DSP and machine learning to “listen” to the power being consumed by your house, in real time, and with something like 15-20W resolution.

The box contents: The Sense unit, two magnetic loops, power harness, WiFi antenna, and some miscellaneous parts.

A small monitoring unit (the red box near the center of the picture above) is wired into both phases of a home power panel. Two sense loops are connected to the two main power phases coming into the panel, and a WiFi antenna is routed outside the panel.

Sense, installed in the electrical panel.

Setup was relatively straightforward, with just a few snags. Sense (no doubt on the advice of their lawyers) recommends turning off the main breaker if you do the installation yourself. They are also very careful to remind you, multiple times, that the leads to the main breaker are always live.

After the pickup are clamps attached (very easy), the WiFi antenna in place (not too hard) and the power wired in (straightforward, but a little tricky to get the wires to seat properly), the software setup can begin. Half a minute or so after powering Sense on, it chimes a short tune to let you know it’s up and running. (If you look closely, you can see amber LEDs flickering behind the plastic casing even before the chimes sound.)

Once installed and connected to your WiFi (stay nearby, since initial setup involves connecting to the unit via Bluetooth with a phone or tablet), Sense will start monitoring your home’s power consumption. Resolution is impressive — while I can’t confirm the fifteen-to-twenty watt periodic fluctuations in power, I can already see the 3D printer cycling the bed heater on and off.

Check out what it can see already. The small fluctuations are the 3D printer cycling the heated bed. The large, kilowatt-level ones are baseboard heaters. Being able to monitor those will really help!

A real-time graph of power consumption.

Sense’s real strength will come with time. Over time, it can learn what devices are in your home by sensing how they “sound” when they power on and off. Already, just from reading the graphs, I’ve learned that my computer monitor takes about 100w, the 3D printer perhaps 100-200W when active, and that baseboard heaters are HUGE power hogs, clocking in at about a kilowatt each.

But eventually, Sense should be able to name them and tell how long they’re on. According to the developers, it can sometimes even tell when devices aren’t working correctly — for instance, seeing a furnace cycle several times before igniting.

It’s not cheap at $299, but worth it. I bet it pays for itself before summer’s out.

Posted in Electronics, High Voltage, Power, Reviews, Tools, Toys | Tagged , , , , , | Leave a comment

Analog Mechanical Computing

Civilization advances by extending the number of important operations which we can perform without thinking about them.

–Alfred North Whitehead

It’s fascinating to see how far we’ve come in just a few decades. Check out this old US Navy film from 1953 on how a mechanical firing computer works. They’re using custom-cut gears and cams to physically calculate algebraic and trigonometric functions. People (okay, this is 1953 — “men”) enter data by turning wheels and moving levers, and mechanical linkages in a purpose-built computer the size of a refrigerator turn this into firing solutions.

These days, a microcontroller priced lower than a cheap cup of coffee could do all of this easily. A smartphone wouldn’t even notice the extra computational load, and could effortlessly handle a fleet’s worth of such computations while showing you the HD video of how it used to be done.

Posted in Analog, Mechanical, Nostalgia | Leave a comment