HN.zip

NAND-16: a computer built from 277,248 NAND gates

153 points by rossant - 90 comments
fancyfredbot [3 hidden]5 mins ago
It looks gorgeous, and you can zoom in to an individual gate level and see lines switch from high to low

The problem is the rendering is wrong. Gates which are connected to two distinct inputs according to the text description which pops up when you click on it are rendered as having both inputs connected to the same wire. It's a bit of a shame.

carodgers [3 hidden]5 mins ago
If you have not tried panning the camera and zooming in to one of the chips, you are missing out.

Bravo to the author. This is inspiring work.

andai [3 hidden]5 mins ago
The Google Earth of computers. I'm amazed my computer can even run this. (Ten year old ThinkPad with integrated GPU.) In the browser no less!

Bravo indeed!

(Also, based on the CSS, the author appears to be GPT.)

TedDoesntTalk [3 hidden]5 mins ago
Thank you. I did not know we could do that. Now I understand how Kevin Flynn (TRON) felt.
monocasa [3 hidden]5 mins ago
I was about to say that's a whole lot of gates for not a lot of computer, but then saw that rom and ram are also an array of nand gates.
bmitc [3 hidden]5 mins ago
It's likely based on or inspired by Nand2Tetris.
aabajian [3 hidden]5 mins ago
I think the takeaway is that we have to think bigger, much bigger, now that AI coding is essentially "solved". Anyone can "write" an ARM simulator now, so that can't be the pinnacle of engineering. I'm thinking about buildings that couldn't be built (reasonably) by one person.

I'll give an example of what I'm working on. There's a model for segmenting organs from CT scans. There's another model for calculating radial diameters of blood vessels from CT scans. You can combine the two and approximate how much blood flow each organ gets based on its segmented volume and the sum total radial diameter of vessels feeding it. You can then render all of that in an app that shows perfusion to that organ.

The idea is to combine these models to extract every ounce of usable information from a CT scan that might be useful for procedural planning (I'm an interventional radiologist). While each algorithm would take weeks/months to implement, Opus 5.5 can do them in minutes to hours and then stitch them together. The results thus far have been better than anything I've seen.

hex4def6 [3 hidden]5 mins ago
As a EE by trade, AI coding has been life changing. I can read code, but since it's not my day job, trying to get a meaningful understanding of multiple codebases is frankly weeks of time.

I no longer have to beg and plead the SW team to implement driver fixes or feature ads; I can freakin' do it myself.

Likewise, being able to explore e.g, a new vision algo piped directly into the software stack allows for setting up a demo in an afternoon.

I try to stay very cautious, and thoughtful prompting / checkpointing / getting it to first search for similar PRs as a guide have helped make sure it stays 'boring' and doesn't break architecture.

So far, I haven't been bitten... :)

musicale [3 hidden]5 mins ago
> As a EE by trade, AI coding has been life changing

Waiting for

   As a SWE by trade, AI hardware design has been life-changing...

   As a former engineer (now Uber driver) by trade, AI hardware and software design have been life-changing...
> So far, I haven't been bitten... :)
jmalicki [3 hidden]5 mins ago
Wouldn't that be amazing, to get greater competition and progress? You seem to be implying there's some negative.
MajorTakeaway [3 hidden]5 mins ago
That's what propaganda is.
bmitc [3 hidden]5 mins ago
How do you know what Opus 5.5 is doing? How do you know it's correct?

Just earlier today, I had Opus 5.5 try and read an X-ray. It struggled to give any real information.

Stitching algorithms together is also not hard.

aabajian [3 hidden]5 mins ago
It's a tool to help with catheter choice, C-arm angle, and contrast injection rate. These are things I think about in every case anyhow, might as well add some data to drive my decisions. If the results don't match reality, I can always fall-back on my personal defaults.
ggm [3 hidden]5 mins ago
He has an exterior model in ground truth: you take a pig, you anaesthetise it and isolate an organ, and you measure flow rate in a live subject.

When the model is shown to be within tolerance of what you can measure in the accepted standard methods right now, you can move over with confidence.

bmitc [3 hidden]5 mins ago
That ground truth model is extremely crude though, is it not? A pig is not a human, and it's also not a sick human.
tails4e [3 hidden]5 mins ago
I think this is very cool. AI generated or not, its well done, interactive and has great visuals.
hollowturtle [3 hidden]5 mins ago
These AI demos all look the same
brunesto [3 hidden]5 mins ago
I think it looks amazing. Quick question, what is the meaning of AndBus16 (top left corner of SRAM 1k x16)? some delay?
tarkin2 [3 hidden]5 mins ago
This is a hilarious question. I would bet the author would next to ask whatever AI they used. We’re congratulating the author, essentially, on outsourcing his knowledge and hard work.

I mean, it’s cool they got their AI agents to follow the footsteps of humans before it, but that’s it.

anonzzzies [3 hidden]5 mins ago
When some human, let's say musk, buys a company and a bunch of people to build something, people congratulate him, not the people who did the work right? What's the difference?
tarkin2 [3 hidden]5 mins ago
And I am impressed by the people who did the work, gained the skills for the work, and put it in the years of dedication to do the work.

Of course, managing those people is a great skill too. But it's a managerial skill, not a technical skill.

And, frankly, it's more impressive than managing agents: people are more difficult than agents.

jamesgill [3 hidden]5 mins ago
You could also do this out of NOR gates. The Apollo Guidance Computer was famously built almost entirely from NOR gates.
guiambros [3 hidden]5 mins ago
This is pretty sad. Seeing this a couple of years ago would be mind blowing. An impressive technical feat by someone with grit and resilience to painstakingly build this from scratch.

Today? Meh.

LarsDu88 [3 hidden]5 mins ago
I had the exact same thought. I vibecoded a MOS6502 emulator a few months back in Rust. My Rust skill is weak, and I learned absolutely nothing about the 6502 or CPU design. Had I done it manually, there's also no way to prove I created it without LLM help making the whole exercise less appealing overall.
socializer [3 hidden]5 mins ago
> there's also no way to prove I created it without LLM help

You don't need to prove it, that was never a requirement. You can simply say it. The only complication is that there's a fair number of people who, for some reason, really want to pass LLM output as their own. They are present on HN too. But here's another ancient trick to overcome that: reputation. Either the reputation you already have, or reputation you build over time. If you have a reputation as an honest person with genuine interest in software, you really don't have to worry, and you will have audience for your work.

Retr0id [3 hidden]5 mins ago
I'm very grateful I have public pre-LLM projects I can point at (including a 6502 emulator!), and I have absolutely no idea how I'd go about bootstrapping the same kind of reputation starting from scratch.
LarsDu88 [3 hidden]5 mins ago
Unfortunately few of us have such reputation to truck with. I think the reality is there is no point in showing off manually coded work any more. All that stuff is really left for self-edification, and increasingly so as AI becomes more capable.
socializer [3 hidden]5 mins ago
> I think the reality is there is no point in showing off manually coded work any more

What was the point before? To have fun, build a community, and to get attention of hiring managers. The first two reasons are still there. The third is more questionable, but there's still plenty of companies that hire based on what you know, not how well you prompt.

raddan [3 hidden]5 mins ago
Agreed. In the pre-LLM days, students always asked me how to "maximize" their hirability. The standard response was "have a passion project" and yeah, that did help people get hired in some ways. But the project was almost never the point of the demonstration. It was more to show that you are _the kind of person_ who sweats the details, who likes taking deep dives. For many of the best jobs, that's _still_ what they want; it's just now, a Github repository is no longer sufficient. That should not stop a passionate person from pursuing their passions.
jacquesm [3 hidden]5 mins ago
The hiring manager is more than likely to toss your output to another AI which will then decide if you warrant extra attention or not.
morpheos137 [3 hidden]5 mins ago
LLM output should be credited to whoever prompted it. I don't get this hysteria. Llms are tools like compilers or chain saws. We don't say a cabinet made from milled wood is some how less authentic than a cabinet made with flint tools. We don't deny people who write compiled programs in a high level language without understanding every branch of the AST and every transistor setting authorship of their programs. Just because something is somewhat non deterministic and draws from the wealth of previously curated human knowledge does not make it an independent agent and not a tool. The people who find AI generated work 'sad' are implicitly sad about the democratization of knowledge and the lowering of barriers to entry to producing things. The thing produced is still a human product. Rather than saying it is an ai creation we can say it was author prompted and compiled of the combination of the author's intent and the store of human knowledge and reasoning trained into an LLM. What is there to be sad about a new tool existing to make things?
LarsDu88 [3 hidden]5 mins ago
I used to think this, but I can ask an LLM to design me a CPU at this point while knowing absolutely nothing about how it works. Literally nothing. This is not the same as writing a program and handing it to a compiler. This is more like asking youtube to give you a video, then pretending you are Mr. Beast.
socializer [3 hidden]5 mins ago
Thanks for making my point for me, although probably not in the way you intended.

The credit for the Doordash meal should be given to the person placing the order. If it weren't for their amazing prompting^Wordering skills, which can make food materialize out of thin air, we would not be eating today.

Lichtso [3 hidden]5 mins ago
LLMs are not like other tools. LLMs are running a model, and that model is just provenance / attribution washing on a unprecedented scale.
UpsideDownRide [3 hidden]5 mins ago
It's like Elon paying someone to place on an arpg ladder. Or like driving a car to civer the marathon distance.

There is something being done in both cases but it aint the thing.

Mind you there is nothing inherently wrong in using LLMs. The issue is when trying to pass it as your own output.

jbjbjbjb [3 hidden]5 mins ago
It more like you texted a carpenter to make you a wardrobe.
IcyWindows [3 hidden]5 mins ago
The issue is we don't know if they texted the carpenter or had a detailed design discussion followed by detailed follow up and tweaks.

People often assume one extreme or the other, but in my opinion, this is where these disagreements stem.

UpsideDownRide [3 hidden]5 mins ago
In both cases it was not a solo project.
morpheos137 [3 hidden]5 mins ago
Yes an usually it is easy to tell one shot ai attempts vs careful or interatively regimes designs. Just because ai was used to execute and help generate the design in detail does not mean the human in the loop is not essential to the product.
ThrowawayR2 [3 hidden]5 mins ago
"LLM output should be credited to whoever prompted it" promptly falls apart when you convert it to its pre-LLM equivalent "worker output should be credited to the manager who supervised it." These LLM bros are like bad managers trying to pretend the creativity, reasoning, and effort of their subordinates is actually their own just because they had the idea.
Lerc [3 hidden]5 mins ago
>My Rust skill is weak, and I learned absolutely nothing about the 6502 or CPU design.

But you could have if you had have chosen to. Did you ask the AI what the slow parts were, and why?

Why did you want to emulate a 6502 in the first place? If you just wanted to run some 6502 code then that's ok, you didn't really need to know much about the 6502. If you wanted to know how much better it could be if it had an single register that was the high byte of zero page address accesses then you probably would have to be engaged enough to find out, and the AI would help you answer questions. You could try rearranging the lookup table at the bottom of the die to see if you could make your own instruction set that would perform better overall. AI would help with that too, but to direct it to do so you would have to be learning something.

LarsDu88 [3 hidden]5 mins ago
Ok, I did learn a little bit about the 6502. I would have learned far more by implementing the emulator itself.

My actual goal was to understand if it was possible to build the equivalent of a rudimentary CPU inside of a living cell. At a high level, the 6502 shows me that most of the circuitry of the chip is not concerned with arithmetic, but rather orchestration and moving data.

Same problem actually exists when trying to map this concept to a cell... the lack of wiring makes this more difficult.

Lerc [3 hidden]5 mins ago
Yeah, the microcode ops are a pretty good demostration on how it is all just a sequence of connect-this-to-that with a bus for the this and fixed functions on all of the that.
dmitrygr [3 hidden]5 mins ago
> Had I done it manually, there's also no way to prove I created it without LLM help

Of course there is -- ask you about it.

The coolest interview process i ever participated in (at MIT Lincoln Lab) was structured this way, and seems 100% LLM-proof. The interview was: give a talk about a cool/impressive technical thing you did for an hour and then answer questions from the interviewers about it for an hour. No way to succeed there without actually understanding.

jubilanti [3 hidden]5 mins ago
stream it live on twitch or wherever, build a community there
noosphr [3 hidden]5 mins ago
I've build a similar project in university in two weeks with lisp, spending 30 minutes before bed on it. The difference being that it started with analogue voltages in the transistors.

I'm starting to think people impressed by LLMs are for the first time in their life not using a hammer on fastening screws and deeply impressed by tools that font fight them every step of the way.

Retr0id [3 hidden]5 mins ago
Yup. I got excited for a bit, until I loaded the page and saw it was slop. I still would be impressed if someone actually took the time to learn about and implement it for themselves.
HarHarVeryFunny [3 hidden]5 mins ago
Yeah, and it seems they didn't even physically build it (which is most of the point of these retro projects), else where are the photos? So this is an emulation of a vibe coded processor. Couldn't they at least have added a three.js animation of bits flying around or something?!
IshKebab [3 hidden]5 mins ago
Maybe ideas aren't so cheap anymore...
miohtama [3 hidden]5 mins ago
Zoom out and you can see the frame buffer directly in video ram
enzo05814648 [3 hidden]5 mins ago
Sorry to be pedantic but...every "boolean" logic gate can be made out of NAND gates pretty trivially (XOR too for that matter). So you just have to design a computer from logic gates and then decompose each one into NANDs.

"I made a computer out of n logic gates" doesn't sound as cool I guess?

Granted I am criticizing the concept and post title, not the execution.

Firaxus [3 hidden]5 mins ago
I thought this was generally known?

I don’t have any familiarity with what’s considered the state of the art here, but I was wondering if the number of nand gates used is significant? So maybe this is neat because it uses less than was though possible?

Edit: looks like from reading some additional comments here that this isn’t particularly novel in that regard though…

artemonster [3 hidden]5 mins ago
Impressed by visuals working so smoothly on mobile
wang_li [3 hidden]5 mins ago
A nand gate takes 2 transistors. So 554,000 transistors if this were manufactured in a physical device.

By way of comparison, the Intel i386 had 275,000 transistors.

matja [3 hidden]5 mins ago
Most of the gate budget here is on SRAM used for system memory and video memory, so not exactly comparable to a i386 which had neither on-die.
ohazi [3 hidden]5 mins ago
4 transistors for a two-input NAND gate in CMOS.
jhallenworld [3 hidden]5 mins ago
1 transistor for DTL... certainly CMOS is more relevant.
HarHarVeryFunny [3 hidden]5 mins ago
ARM1 was only 25,000 transistors.
hoten [3 hidden]5 mins ago
First thing I tried was "double-click: fly to this latch". Didn't work. AI slop?

edit: press tab first.

andai [3 hidden]5 mins ago
When I double click a chip, there's 5 seconds of lag (I have old computer) then it zooms into it and exposes the circuits.
welcome_dragon [3 hidden]5 mins ago
I mean if this was someone taking Nand2Tetris several steps further it would be impressive.

  claude "create a NAND gate-based computer, giving it a crappy web page"
HarHarVeryFunny [3 hidden]5 mins ago
Why waste tokens building the computer when all you are going to show the user is the crappy web page? (the AI that created it may have had the same thought)
sdcfgy [3 hidden]5 mins ago
What's the point if you didn't do it yourself?

Feels like this https://www.youtube.com/watch?v=gId2HsHvSgs

saulpw [3 hidden]5 mins ago
The role is "producer" and it's a valid and influential role, even if it's not directly creative. Producers decide what to focus on, raise the money, and put together the principals. As an actor or director you may not like working with them, but you can't deny their importance.
sdcfgy [3 hidden]5 mins ago
You walk into a food factory and you ask for a pizza. It comes out and you tell them that you wanted mushrooms, so they make another one. It arrives and you complain that it's square and not round, so they make another one. That one has no tomato sauce so you send it back again. Eventually you get the pizza you want.

I make my own pizza because I like doing it. And if I can't be bothered to make one, I'll just pick a ready made one off a menu from a pizza restaurant.

hex4def6 [3 hidden]5 mins ago
You then decide to ask it to vary the unbleached:white flour ratio. You ask it to suggest flavor combinations based on 14th century english cookbooks. What happens if the dough is knead it for 3 minutes? 30? Substitute the water for oil and egg whites?

You ask it to try putting the mushroom in the pizza dough. What about cauliflower? What if the tomato sauce / cheese / mushroom order is changed? What if I add the vegetables in a second cooking step?

You're not a cook, but I'd say that at a certain point you might be considered a head chef in this example.

Doing something for fun is all well and good if that's the goal. Finding the best pizza dough recipe doesn't actually need you to get your hands in the dough if you can get the AI to do it for you. That's no different to delegating it to a subordinate cook.

You don't write in assembly. Or, probably, C. You don't write your own graphics driver, or GUI toolkit, or OS kernel, or typeface...We're all just climbing the abstraction tower. It's just that AI is a larger jump than most.

sdcfgy [3 hidden]5 mins ago
You still didn't make it.
jhbadger [3 hidden]5 mins ago
"To make an apple pie from scratch, you must first create the universe" -- Carl Sagan
fc417fc802 [3 hidden]5 mins ago
And you didn't mill your own flour for the pizza you supposedly made from scratch.

Oh, you did? But did you grow your own wheat out back?

Don't be obtuse. It doesn't add anything to the conversation.

sdcfgy [3 hidden]5 mins ago
I didn't write the compiler but I did make the pizza.

This is definitely not being obtuse. It's keeping discussions around what we actually achieve as humans in the bounds of reality, not within the bounds of marketing and ego.

fc417fc802 [3 hidden]5 mins ago
You claim not to be obtuse yet you still haven't responded to the point that's now been presented in multiple ways.

If I use unity did I write my own game? What about a framework such as bgfx? Or am I required to write my own calls to standardized 3D APIs?

The important detail isn't what was and wasn't pre-made (there will pretty much always be something that was pre-made) but rather the list of contributions by the individual. If I use tomato sauce from a can and a frozen crust you might or might not be impressed by the pizza that I "made" depending on how far I went beyond that starting point.

tarkin2 [3 hidden]5 mins ago
A “producer” is just flattering terminology for a product owner.

I was happy to have a good product owner.

But these posts are trying to gain plaudits for their technical skills and hard work.

When in fact they owned the product, rather than demonstrated the hard work and dedication of years past.

I mean I’m happy to congratulate the agents they used. Phwoar, look at those weights. Impressive!

fc417fc802 [3 hidden]5 mins ago
> But these posts are trying to gain plaudits for their technical skills and hard work.

Playing devil's advocate, AI is now standard tooling for any CS adjacent engineering discipline. The question then (IMO) is how this compares to what someone else would accomplish with the same or similar tools.

tarkin2 [3 hidden]5 mins ago
I can spend years learning music theory and the piano to perform a nice sounding piece, or I can press the “demo” button on an electronic keyboard to produce a nice sounding piece.

I’ve accomplished the same end result with the demo button—in fact it may sound nicer. Is pressing the demo button more impressive?

fc417fc802 [3 hidden]5 mins ago
You've ignored my point entirely. The question is how much others would accomplish given the same or substantially similar set of tools. The demo button in your example isn't technically impressive because the "operator" hasn't done much of anything. But importantly that doesn't mean you can't do impressive things with a midi tracker.

People regularly do impressive things with LLMs. Somewhat more commonly, they do unimpressive things with them.

hollowturtle [3 hidden]5 mins ago
Nah. You either are like Rick Rubin or you're not producing anything
awesome_dude [3 hidden]5 mins ago
I feel more like an orchestrator when vibe coding than a developer, I'm telling each part what I want from them, judging them on results, and ensuring each part runs at the right time with the right lead in
Lerc [3 hidden]5 mins ago
I guess it depends on your goal.

I'm making one of these myself. I'm not using AI to design the CPU, but I am using it to make the simulator and editor. I liked some of the design choices in Sebastian Lague's simulator for simplicity, so I'm making something like that, but web based and that I can use on a tablet to doodle designs while sitting on the sofa.

I did get rather nerd sniped after deciding I didn't want to lay all of the tracks myself and got it to autoroute as it went. That was a rabbit hole in itself. It seems even when using AI you can be sucked into trying to figure out a tricky problem that you don't strictly have to solve.

Nurysso [3 hidden]5 mins ago
OHH my god this is soo awesome, I wonder how people build such things.
Retr0id [3 hidden]5 mins ago
They opened their AI agent and typed "make me a 16-bit computer built from NAND gates" and hit enter.
phoghed [3 hidden]5 mins ago
Go ahead and paste that into your coding harness of choice and see if you get this out.
Retr0id [3 hidden]5 mins ago
It'd take a few extra sentences to get the details, but I'm confident enough that it would work that I'd rather save my tokens for something more personally interesting.
phoghed [3 hidden]5 mins ago
4 sentences huh? I think I’m going to remain a doubter.
ktm5j [3 hidden]5 mins ago
Sometimes people disagree, don't take it personally. You might be right and they're wrong, but even still you don't have to blow up about it. That's why you got flagged.
Retr0id [3 hidden]5 mins ago
I'm sincerely curious, when was the last time you tried agentic coding?
socializer [3 hidden]5 mins ago
Yes, the secret ingredient of these kinds of AI projects is being rich and spending an ungodly amount of money on it.

I kinda get it as a tech demo, but projects like this leave a bad taste in my mouth because I'm not sure what they're really supposed to accomplish for the author or the community. It's probably not something the person was genuinely interested in, it has no commercial or educational value, so it just... sucks the air out of a hobby? There are quite a few people who designed and built their own computers from discrete gates, and we're sharing this page instead.

anonzzzies [3 hidden]5 mins ago
I am tempted to try it, but it would waste tokens that I need. I'm quite sure it'll do it one shot though.
phoghed [3 hidden]5 mins ago
No, it’d do something perhaps similar, surely worse, and you’d justify your failure by saying “yeah but I just did xyz it would have blah blah”

There’s 0 chance you one-shot this, especially with the prompt the other guy gave.

Could you eventually make something analogous? Sure. Code will, sooner than later k think, be as cheap as ideas are. People should start to adjust to that reality now instead of trying to dismiss anything an LLM touched as slop.

btilly [3 hidden]5 mins ago
It has long been known that you can build any gate from NAND gates.

So you can take an existing model of a computer, turn everything that isn't a NAND into a collection of NAND gates, then run software for the original computer.

moosedev [3 hidden]5 mins ago
They don’t. Not any more.