Skip to main content

It's time to build the Analytical Engine

Normal people have a small part of their brain that acts as a sort of automatic limiter. They get some crazy idea like writing a book or campaigning for a government apology or calculating the number of legal track layouts for a cheap train set and their limiter goes: "Don't be ridiculous" and they go back to normal life.

Unfortunately, I was born with that piece missing.

So, it's not without trepidation that I say that it's time Britain built the Analytical Engine. After the wonderful reconstruction of the Difference Engine we need to finish Babbage's dream of a steam-powered, general-purpose computer.

The Analytical Engine has all the hallmarks of a modern computer: it has a program (on punched cards), a CPU (called the 'mill') for doing calculations and it has memory. Of course, it's not electric, it's powered by steam. But the principles that underlie the Analytical Engine are the same that underlie the computer I'm writing this on.

From Flickr user csixty4

What a marvel it would be to stand before this giant metal machine, powered by a steam engine, and running programs fed to it on a reel of punched cards. And what a great educational resource so that people can understand how computers work. One could even imagine holding competitions for people (including school children) to write programs to run on the engine. And it would be a way to celebrate both Charles Babbage and Ada Lovelace. How fantastic to be able to execute Lovelace's code!

From Flickr user gastev

Of course, Babbage and his family only ever made parts of the engine (see the picture above). But that shouldn't stop us from constructing it now. All that's needed is money. I'd imagine there are plenty of people who'd want to work on the project.

Unfortunately, I think it would cost a lot of money. The construction of a second Difference Engine for Nathan Myhrvold is said to have cost $1m and that was after all the hard work of figuring out how to make it was completed. It also took years.

But that shouldn't hold us back.

If sufficient money could be raised I'd jump at the chance to run this project as a charity that would donate the completed machine to either London's Science Museum or the National Museum of Computing. Clearly, I can't do this in my free time (and nor could others) so sufficient money would need to be raised to pay a reasonable salary to those involved. And I'd imagine that the materials cost would be very large as well.

Am I mad? Would you donate to make the Analytical Engine an oily, steamy, brass and iron reality? Can we live up to Lovelace's words when she wrote: "We may say most aptly, that the Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves. "

PS A commenter asked about pledging money to the project. I'm not quite ready to start accepting cash! :-) But people can pledge by either sending me an email or simply writing a comment here. That'll give me an idea of interest in doing this.

PPS UPDATE. Please visit Plan 28 for more on this topic.


Unknown said…
I am interested in supporting such a project financially. Perhaps you could set up a pledge page to see how much money could be gathered from individual contributors.
I would donate to this project in a second!
Alex said…
A project like this might get some traction on Kickstarter
Unknown said…
Does it have to be made of metal? You have 3D plastic printers now (MakerBot ... etc.) that makes very strong plastics and tight tolerances. Couldn't most of the parts be made out of those?
Kurtkilgor said…
This comment has been removed by the author.
Matt Doar said…
Oh yes, I've imagined that since I was a teenager in the darkened spaces of the British Musuem. The ultimate steampunk credentials, and a wonderful piece of history.
sep332 said…
@Phu Nguyen
I'm afraid that's very unlikely for this project. Babbage's engines have excruciatingly tight tolerances for both shape and motion of the parts.
I was not part of the Difference Engine project. But I do have a lot of experience of building things, although they are mostly software.

The reality is that a project like this would need a leader technical enough to understand what was going on, and with the experience to manage the people building it. That I believe I could do. And in the past I've shown that I can round up support for a good cause.
Unknown said…
Yes, you're mad - but that doesn't make you wrong :-)

I'd happily make a (small) contribution too. I guess the trick will be to attack enough grass-roots interest (like the Turing petition) to get noticed by someone who can really make things happen - Paul Allen perhaps?
Anonymous said…
Not only money, but engineering creds and specialists in Victorian engineering. In _The Difference Engine: Charles Babbage and the Quest to Build the First Computer_ by Doron Swade, one of the folks involved in the building of Difference Engine No 2 in the 1980's, he says that they chose Difference Engine No 2 because it was the only Engine with complete plans. The Analytical Engine had so many revisions, that there wasn't ever any One True Analytical Engine.

Also, the plans for Difference Engine No 2 had to be studied intently in order to determine what materials and tolerances had to be specified. Today, there are many measurements and specs that go into an engineering document, but back in Victorian times, it was the equivalent of a napkin drawing and some verbal instructions.

Of course, in the end, Difference Engine No 2 was built successfully (albeit with much gnashing of teeth). So this isn't to say that an Analytical Engine couldn't be built. I'm sure it could.

I, on the other hand, am working on a "reimagining" of the Analytical Engine, which I'm calling the Logical Engine. It is based on rod logic and on binary. This will vastly simplify the parts required, and the tolerances are not so excruciatingly precise, although it will be somewhat larger because of the binary, rather than decimal, representation. It will also be, of course, steam powered.

Babbage did indeed consider different bases other than 10, but eventually settled on 10 in the end as a compromise between required precision and size.

And rod logic is not without precedent: Thomas Fowler in 1840 built a small base-3 calculating machine. The Logical Engine is closer to the work done by Eric Drexler -- father of nanotechnology -- but the concepts scale up well.

I will be exhibiting "Logical Engine No. 1", which is a small mechanism computing three simple logical functions (and, or, xor) at Maker Faire NY 2010 on Saturday September 25 at the NextFab Studio Philadelphia booth. If anyone would like to see it, please stop by and say hi!

Anyway, I've currently got the core of the Logical Engine designed (the Logical Mill, the equivalent of an ALU). I'll be working on it after Maker Faire, but I think the problem will be the funds to get the rods manufactured. I'll be starting a Kickstarter project for it.

This isn't to cast doubt on your own laudable effort to build a Babbage Analytical Engine. This is just an alternate history version :)
Anonymous said…
In _The Difference Engine: Charles Babbage and the Quest to Build the First Computer_, by Doron Swade, one of the guys on the team to build Difference Engine No. 2 in the 1980s, he says that they chose Difference Engine No. 2 because it was the only machine with full plans.

There was never any One True Analytical Engine, since Babbage kept refining and changing parts of the design.

Also, Swade says that even with the full plans, they had to have the help of an engineering team to put together the spec drawings for manufacture. Today, spec drawings include materials, tolerances, finish, and a whole host of other measurements. In the Victorian age, they had the equivalent of a napkin drawing and some verbal instructions!

Nevertheless, building any Analytical Engine would be a laudable goal.
Anonymous said…
My previous comment being said, I am currently working on a "reimagining" of an Analytical Engine, which I call the Logical Engine. It will do everything the Analytical Engine could do, but it is based on binary rod logic. And, of course, it will be steam powered.

I think that binary rod logic would have made the Analytical Engine easily built, since the parts would all be fairly uniform, simple, and such tight tolerances would not be necessary.

I will be exhibiting "Logical Engine No. 1" at Maker Faire NY 2010 on Saturday September 25 at the NextFab Studio Philadelphia booth. This is just a simple mechanism which computes three simple logical functions (and, or, xor) using binary rod logic. It isn't steam-powered :)

After Maker Faire, I plan on building the Logical Mill, which is the equivalent of Babbage's Mill, or the ALU in a modern computer. I have already designed a 4-bit ALU, which can easily be scaled to 16 or even 64 bits wide. The only problem will likely be funding: I'll probably start a Kickstarter project for it, since the rods might run me a few thousand dollars.

Anyway, if you're at Maker Faire, drop by and say hi!
Anonymous said…
Jeez, sorry for the multiple comments. I got an error back from the first post, saying that the post was too long. Yet there it is... John, feel free to delete this and the other posts! Don't want to be accused of blog spam! :(
No worries. Will sort out when near a computer, not a phone!
Unknown said…
Sir, I think you are quite clearly mad; this is by no means a bad thing.

Theoretically it might be possible to modify the machine to take more effective input than punch cards. Might it be possible to create a mechanical "compiler" that would translate a set of commands to the machine through a mechanical type writing device?
Depending on the size of the punch cards you could easily produce a keypad that can quickly reproduce the data input that any given card could hold. I think such an idea would be worth pursuing, although it would likely double or triple the costs at the least.
Unknown said…
I could not find this project on
Unknown said…
I could not find this project on
Kickstarter does not permit charities or non-profits.
Unknown said…
sep332: Are you sure? People have built Difference Engines out of Meccano and Lego - although those are much smaller than the one the Science Museum built. Do the tolerances required become finer as the machine becomes bigger? The Meccano guy thinks there would be no problem with building a full-sized Meccano Difference Engine No. 2.

Anyway, if 3D printing isn't yet accurate enough, and suitable off-the-shelf parts aren't available, CNC machining's become a lot cheaper in the last ten years - I'd be surprised if that weren't accurate enough.

John: what exactly is the scope of your project? Would it be enough to construct something as close to Babbage's design as possible using off-the-shelf parts? Or would you want to go the whole hog, and make all the parts using Victorian techniques?
I think the project would need to be in three parts:

1. Decide what would constitute an Analytical Engine from Babbage's plans. This would need serious help from historians.

2. Build a 3D simulation with a physics engine to verify operation. Iterate this with 1 above.

3. Build the entire machine.

I would like to go the whole hog and build the complete machine with Victorian materials. The Difference Engine No. 2 project has taken a lot of the uncertainty out of that part.
Bon said…
Totally behind it! It would be a wonderful achievment, would support it anyway I could.
Mark J. Easton said…
I'd donate time and/or financial assistance.
Unknown said…
I'd support this, financially or with time; I agree it would be a wonderful tool for bringing the inner workings of a modern "computer" to children, and it would be awesome (in the most literal sense of the word) to be able to watch it execute my code.

Good luck!
Unknown said…
You'd need some good steam engine experience. I would recommend contacting the Kew Bridge Steam Museum ( for help with that
Alastair Smith said…
I've always wondered why no-one had taken it upon themselves to build the Analytical Engine. I'm glad you've taken the initiative where I haven't, and I hope that with your influence you'll be able to make some great progress towards this notable and worthy goal.

I saw that you mentioned that you'd need the input of an historian. I studied the History of Computing as module at University a few years ago under Professor Martin Campbell-Kelly. I'm sure he would be interested to hear of your idea, and may well be interested in contributing his knowledge and expertise.

srimech said…
Sounds good to me, it would be fantastic to see the analytical machine working as designed.

I presume you've seen the Meccano Analytical Machine at ?

I'm also trying to build a mechanical Turing machine, it's very amateur at the moment but there's some details up at if you're interested. I see there's some other people making mechanical computers in the comments, which look very interesting!

If I could help out with the construction of the Analytical machine in any way I would very much like to, even if it's just donating some cash.
Unknown said…
I agree the engine should be built. A couple of years ago I contacted they Science museum about getting copies of the original drawings which they have. They where not very helpful. Have you thought about doing it as a collaborative build? There are lots of people with the tools, time and ability to make the components. Open source engineering.
Unknown said…
Out this thing up on and let's get going! :)
Anonymous said…
I think this is an absolutely fantastic idea and would very much be willing to lend anything I have that can be of use. Though this would mostly be in the simulation arena, I would be delighted to be able to help out with the practical side of things too.
Bill said…
Count me in for a tenner. It's a no brainer.
Unknown said…
i wouldn't be able to give much being a lowly railway signalling engineer and being paid a pittance, but i'd certainly try add something to the pot!
xavhorse said…
Colour me interested!
Unknown said…
I would donate to this effort.
mariocat said…
i think this is an awesome idea make it as steammpunk as possible man.
mariocat said…
i think this is an awesome idea you shud try to make it as steampunk as possible.
Ian Watson said…
I think this would be a great idea and I'm sure there would be many useful spin-offs from such a project.

You say "How fantastic to be able to execute Lovelace's code!"

Do you have any evidence that such code exists? I know Ada Lovelace collaborated with Babbage on writing papers abut the Analytical Engine but I wasn't aware that there was any actual code written and that describing Ada Lovelace as the worlds first computer programmers is actually a popular myth and is not supported by any hard evidence (e.g code she wrote).

I myself am working on a book about the history of computing and have put a chapter on Babbage online at:
TinHatMoose said…
If I win the lottery I`ll be donating a big chunk of it to this..Good luck,looking forward to the completed project.
T Dipper said…
Two points:

1) What (if anything) can Babbage's machine do which a silicon processor can't?

2) I don't wish to sound shrill, but I believe I emailed to offer collaborative assistance via a Centre for Engineering Excellence we're helping to build. For the love of brass, get in touch!
Grimsterise said…
Great Idea, let's do it.
Also: Her name was Ada King nee Byron, she was also Lady Lovelace but never Ada Lovelace.
Frank B said…
List of crowdfunding for nonprofits (Indiegogo is in that list among others):

Popular posts from this blog

How to write a successful blog post

First, a quick clarification of 'successful'. In this instance, I mean a blog post that receives a large number of page views. For my, little blog the most successful post ever got almost 57,000 page views. Not a lot by some other standards, but I was pretty happy about it. Looking at the top 10 blog posts (by page views) on my site, I've tried to distill some wisdom about what made them successful. Your blog posting mileage may vary. 1. Avoid using the passive voice The Microsoft Word grammar checker has probably been telling you this for years, but the passive voice excludes the people involved in your blog post. And that includes you, the author, and the reader. By using personal pronouns like I, you and we, you will include the reader in your blog post. When I first started this blog I avoid using "I" because I thought I was being narcissistic. But we all like to read about other people, people help anchor a story in reality. Without people your bl

Your last name contains invalid characters

My last name is "Graham-Cumming". But here's a typical form response when I enter it: Does the web site have any idea how rude it is to claim that my last name contains invalid characters? Clearly not. What they actually meant is: our web site will not accept that hyphen in your last name. But do they say that? No, of course not. They decide to shove in my face the claim that there's something wrong with my name. There's nothing wrong with my name, just as there's nothing wrong with someone whose first name is Jean-Marie, or someone whose last name is O'Reilly. What is wrong is that way this is being handled. If the system can't cope with non-letters and spaces it needs to say that. How about the following error message: Our system is unable to process last names that contain non-letters, please replace them with spaces. Don't blame me for having a last name that your system doesn't like, whose fault is that? Saying "Your

The Elevator Button Problem

User interface design is hard. It's hard because people perceive apparently simple things very differently. For example, take a look at this interface to an elevator: From flickr Now imagine the following situation. You are on the third floor of this building and you wish to go to the tenth. The elevator is on the fifth floor and there's an indicator that tells you where it is. Which button do you press? Most people probably say: "press up" since they want to go up. Not long ago I watched someone do the opposite and questioned them about their behavior. They said: "well the elevator is on the fifth floor and I am on the third, so I want it to come down to me". Much can be learnt about the design of user interfaces by considering this, apparently, simple interface. If you think about the elevator button problem you'll find that something so simple has hidden depths. How do people learn about elevator calling? What's the right amount of