Some more single pixel imaging experiments

Here are some virtual pictures of an image of a slumbering cat that I found in Beijing. The pictures were generated with the single pixel lensless camera simulation I programmed.

Here’s the original image, scaled and converted to greyscale:


First, 5000 random observations of the original 128 pixel x 128 pixel image.


Now, 10000 observations of the original image:


Now, 15000 observations:


16384 observations (same as the number of pixels in the original image)



And lastly, a totally-overkill 20000 observations


It’s cool to see how the image quality increases with increased sampling.


Lensless single pixel cameras are pretty cool… let’s simulate one!

So, a while back I stumbled across this article:

To summarize it, Bell Labs built a single pixel camera that needs no lenses to operate… pretty cool concept right? I immediately wanted to build one.

After doing some research, I realized the concept was pretty simple: place an array of selectively-blackable windows in front of a light sensor like a photodiode, send random patterns to the windows, record the light level at the photodiode, repeat a few thousand times, and all of a sudden you’re left with a giant system of linear equations, the solution to which is the image the camera “sees”.

The problem arises when you try to solve this system. The system is HUGE, so there’s no way you could solve it through gaussian elimination, so instead we solve the system through minimizing the system’s l1 norm, and a least-squares method.

As I’m in Princeton for my summer job at PPPL, I’m lacking my workshop and tools, so I couldn’t actually build a single pixel camera. Instead I did the next best thing. I programmed a simulation of one in Matlab.

I used this awesome l1-minimization system solving library called l1_ls from Stanford, and after writing some Matlab code, I was able to “take a picture” of a  256×256 pixel image.
Below is the reconstructed image, taken from 10,000 “exposures” of the virtual single pixel camera, followed by the original image.

It’s not much, but it’s something. It’s a start.

The next step on the-programming side is to use Hadamard matricies rather than pseudorandom matricies to generate the sampling patterns. Other groups have done this, and I’m hoping it will help “distribute the sparsity” of the sampling matricies, resulting in a better final image. The step after this is to build one… and maybe one that works in the IR, UV, microwave, or x-ray spectrum.


Next step: building one.

A Summer at PPPL

I’ve got a job. My first job. And it is freaking awesome. Well, it’s kind of a job. Technically it’s a paid internship, but I guess there’s really not that much of a difference. Anyway, I’m being paid to research at the Princeton Plasma Physics Laboratory. I’m working on developing technology that will allow tokamak reactors to have liquid lithium flow over the inside wall of the reactor without the reactor breaking. (For the physics nerds, the lithium chemically captures low energy hydrogen that has escaped confinement and pumps it out of the system. This prevent the low energy hydrogen from re-enetering the high energy plasma and lowering it’s temperature.)

It’s not quite the plasma physics I was hoping to do when I came here, more of mechanical engineering and materials science, but hey, I’m still as happy as can be, curious, and excited.

How cool is that?

MIT RoboTube

It took a while, but I’ve finally succeeded in turning my MIT admissions tube into a simple robot that can unfold from its normal tube-like state, roam around, detect obstacles, and determine how to best get around them. The code the robot runs needs some work to prevent inadvertent spinning around and a better algorithm for navigating away from things, but for now it works pretty decently. I’ve christened the robot as “RoboTube.”

RoboTube — a Robotic MIT Admissions Tube from Will Jack on Vimeo.

Tech Specs:
Microcontroller: Arduino Uno Board
Motor driver: L293D
Power supply: 2x 9V batteries through 12V and 5V regulators (LM7812 and LM7805)
Rangefinder: Sharp IR long distance rangefinder, part number GP2Y0A02YK0F
Motors: 2x Sparkfun 1:100 DC gear motors
Opening mechanism: Futaba servo and a coast-hanger pushrod
Chassis: HDPE body and MIT admissions tube wheels

Time for Some Hacking!

I have been pretty down recently because rather than building awesome things, I’ve been writing tons of college and scholarship applications. But, that all paid off just a few days ago when I found out that I had been accepted to MIT!

I have been feeling pretty down recently because rather than building awesome things, I’ve been writing tons of college and scholarship applications. But, that all paid off just a few days ago when I found out that I had been accepted to MIT! About a week after this I received a shiny cylinder in the mail: the hallowed MIT acceptance letter bearing tube. I opened it up, and found this inside.


First of all, isn’t that poster awesome? Along with this poster was a relavant invitation: MIT apparently wants all accepted students to hack (hack as in make something cool out of, not maliciously break into a computer system) their tubes in whatever way they can, and submit the hacks to Anyway, the gears in my head have been turning, and I think I’m going to turn this tube into an autonomous robot that can navigate its environment using data from a sharp IR rangefinder. I’ll keep the website updated with how exactly I’m going to do this in the days to come.

In other news, I am still working on cleaning reactor MK. IV’s vacuum chamber, and I hope to have plasma in the chamber soon.

A Pen and a Confession

Alright, I need to confess to a terrible habit of mine: I lose pens like it is my job. While I have been making strides in keeping track of my pens it is still a problem, so I figured what might help would be having a pen that I have some sort of personal attachment to, that way I would make a constant conscious effort to not lose it. What better way to form a personal attachment to a pen than by making one? So that’s just what I did.

I also just felt like making a pen, but the pen serves some practical purpose as well.

Here is the finished product:


The pen consists of part of a broken anodized aluminum camera tripod, a strange stainless steel bushing thing I found and machined to fit my needs, and a hex cap bolt that pushes the pen’s tip out when twisted. The pen was designed to take Pilot G2 refills, undoubtedly my favorite. The pen is refillable by heating up its tip and removing the stainless steel bushing, which is held in place by red Loctite adhesive.

The pen writes very well, however it’s a bit top heavy, so I think I’ll cut it down and chance the refill to a pilot G2 mini refill. If there’s enough interest I may start making and selling these pens too!