Live data from Hacker News

Ask HN: Why did consumer 3D printing take so long to be invented?

news.ycombinator.com

141–150 of 215 posts

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#141
post #107

Earlier quoted context omitted.

Go wild, man. I fully support your right to talk about the 0001970s.

I'd put my money on it flipping back to 0 after 9999

From past evidence, I think it's more likely to start a new calendar at 0 somewhere around 4000-5000.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#142
post #117

Earlier quoted context omitted.

If by "render the gcode" you mean "interpret the G-code" then, no, G-code dates from 01963 and is easier to interpret than the BASIC that home computers used in the 01970s. If by "render the gcode" you mean "produce the G-code" then it depends on the geometry you're producing G-code for, and the algorithms you're using to do it, but potentially being able to do it overnight gives you a lot of flexibility there. Peopl…

I mean "render the gcode" as in going from a 3D model to the gcode you want your tool to follow. Following the gcode would be generally pretty simple; I agree. However, I doubt most home hobbyists had computers in their house in 00000000001959 capable of manipulating 3D graphics in a meaningful way that would really be approachable to a general hobbyist. Wikipedia suggests 1960s CNC's were often controlled by a PDP-8…

We were talking about "the 70s and 80s", not 01959.

My point about APT is that a "beefy machine" in 01959 was the embedded controller in your keyboard by 01983; it wasn't a beefy machine any more. The PDP-8 was indeed pretty common for CNC control in the late 01960s, and it could run about 333000 12-bit instructions per second, which is about half as fast as the original IBM PC. So, yeah, a machine like that was exactly a home PC by the mid-80s. For real-time control of the 3-D printer, you can get by with less.

There were three big problems for manipulating 3-D models for home hobbyists in the 70s and 80s.

One was computational speed: for games, you need to render the 3-D graphics fast enough to provide an illusion of immersion, and with a few hundred thousand instructions per second (and no multiplier) you were limited to a handful of polygons. Like, typically about 20. See the Apple ][ FS1 flight simulator https://youtu.be/lC4YLMLar5I?&t=93, the 01983 Star wars arcade game (at 2:02), Battlezone (2:14), and Ian Bell and David Braban's Elite from 01984, which was successfully ported from the 2MHz 6502 in the BBC Micro (2:53, but also most of the rest of the hour of the video) to the Z80-based ZX Spectrum (3.5MHz but noticeably slower than the 6502; see https://www.youtube.com/watch?v=Ov4OAteeGWs).

For producing G-code, though, you don't need to be able to handle all the 3-D geometry in 50 milliseconds. You just need to be able to handle it overnight. That's a million times longer, so you can do a million times as much computation on the same hardware. You can't handle a million times as many polygons, because you don't have enough storage space, but you can represent geometry in more expressive ways, like Bézier patches, nine of which made up the Utah Teapot I mentioned in https://news.ycombinator.com/item?id=42080437, or parametric or implicit equations, solids of revolution, CSG, etc.

You do need some kind of user interface for seeing what you're designing that doesn't require waiting overnight to see the results, which I think is what you mean by "a meaningful way that would really be approachable to a general hobbyist". But it's possible I have a different concept of general hobbyists than you do; as I remember it, home computer hobbyists in the 70s were constantly writing things like

    2120FORQ=1TO4:IFLEFT$(R$(Q),1)=O$THENRC=Q:ST=ST+2*Q:DX=DX-2*Q:NEXTQ
and writing programs in assembly language. And machining metal in a machine shop has been a popular hobby in the US for at least a century, using user interfaces that are more demanding than that. So I think hobbyists would have been willing to tolerate a lot of demands on their mental visualization abilities and relatively poor user interfaces if that was the price of 3-D printing.

But the user-interface issue gets us to the second problem hobbyists had with 3D in the 70s and 80s: display hardware. The limited displays of the time were hopelessly inadequate for displaying realistic 3-D. The Star Wars arcade cabinet mentioned above used a vector CRT in order to be able to do high-resolution wireframe, because framebuffers were far too small. With color palettes of 2–16 colors, even Lambertian flat shading was nearly out of reach until the late 80s.

Again, though, this is much more of a problem for games than for 3-D printing.

My first experience with CAD was on an IBM PC-XT with a 4.7MHz 8088, roughly five times faster than the BBC Micro Elite is running on above (https://netlib.org/performance/html/dhrystone.data.col0.html). I was using AutoCAD, a version whose 3D functionality was inadequate for any real use, and the machines had two video cards—a text-only MDA (basically just a character generator and some RAM) and a 320×200 CGA, on which I could see the actual drawing. Redrawing the whole CGA was slow enough that you couldn't do it after every drawing or erasing operation, so erasing a line or arc was instant, but would leave holes through the other lines it had crossed. Until you issued the REDRAW command, which took typically 1–5 seconds for the fairly simple mechanical drawings I was doing. (Remember that 2-D side-scrolling games were impossible on things like the CGA because you just didn't have enough bandwidth to the video card to redraw the whole screen in a single frame.) Zooming in and out also suffered from a similar delay, but was very necessary because of the low-resolution screen.

Once I finished the drawing, I would plot it out on a CalComp pen plotter, which was basically a 3-D printer without the Z-axis. This had enormously higher resolution than the CGA because it didn't have to contain RAM to hold all the lines it had drawn; the paper would remember them. Some hobbyists did have HP-GL pen plotters during this period of time, but it wasn't very common. I had one at home in 01990. My dad used it to make multicolored Christmas cards.

This sort of approach allows you to provide a real-time interactive user interface for modifying geometry even on a computer that is far too slow to rerender all the geometry every screen frame. It would have worked just as well for 3-D as it did for 2-D, which is to say, it would have been clumsy but adequate.

But the third problem was, as you said, the knowledge. Because the 3-D printers didn't exist, hobbyists didn't know the algorithms, they didn't know the vector algebra that underlay them, they didn't have the software, they didn't have BBSes full of 3-D models to download, etc. That would have developed, but not overnight.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#143
post #134
post #102

Earlier quoted context omitted.

However, the Centronics interface was designed to allow them to build the printer without including a microcontroller in it. (Microprocessors of any kind were several years off.) It wasn't until the mid to late 01970s that it became common to include microcontrollers in printers. As for the question of software for 3D models, see my overview of the history of that field in https://news.ycombinator.com/item?id=4208043…

Just for info, Centronics interface is very slow for 3D printer. It could work (as 2D plotters work), but people make figures faster, and 3D made things even worse.

3-D printers are much lower bandwidth than conventional 2-D printers, and the conventional Centronics parallel port could handle up to "75,000 characters per second", according to https://en.wikipedia.org/wiki/Parallel_port#Centronics. The total amount of data in a print is larger, but typically the 3-D printer is only processing 1–10 commands per second, compared to about 100 for a dot-matrix printer.

But the point I was trying to make was that dot-matrix printers predated the availability of microcontrollers, or even microprocessors, and you needed cheap microprocessors to make hobbyist 3-D printers.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#144
post #72

Earlier quoted context omitted.

Microcontrollers and stepper motors were already controlling 2-D printers in the 01970s and early 01980s at higher speeds and similar powers to currently popular 3-D printers. The first RepRaps did not "use a full-power PC as their host machine"; they were controlled by AVRs, just like Arduino (which didn't exist yet). Generating motor control waveforms on a full-power PC is a nightmare nowadays, and was already a ni…

Now I'm very tempted to build a 3D printer with an 8-bit home computer and vintage parts.

I'm very interested to hear about the results if you do. If I'm wrong, you'll be able to show me how!

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#145

Earlier quoted context omitted.

My son is into vintage computers and I'm pretty sure I could make a 3d printer from the old c64s, disk drives, and printers in my basement. The hot end would be the only issue and I'm pretty sure you could rig one up from a glue gun or soldering iron.

Floating point maths would be hard, and fitting the model in 64k would be a challenge - but paging could resolve that, or streaming/paging from disk if you assume something like CP/M. Logically it's a simple project, though the devil is always in the details!

Floating-point was ubiquitous in the BASIC interpreters on early home computers. It was just slow. CP/M didn't really do paging, although you could read and write 128-byte records to disk. But CP/M disks were typically only 90 kibibytes, or maybe up to a mebibyte for 8-inch floppies. And a lot of hobbyist home computers omitted disk drives because they were too expensive.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#146

The pieces did NOT exist in the 1970s. Fast microcontrollers, stepper motors, precision miniaturized manufacturing, reliable and cheap miniaturized DC electronics, and far far more technology was non-existent at any kind of affordable price point. Look at kitchen appliances or metal/wood shop machinery from this era, still heavily analog, mostly made from sheet steel, mostly non-computerized. The 80s would bring bett…

> Look at kitchen appliances or metal/wood shop machinery from this era, still heavily analog, mostly made from sheet steel, mostly non-computerized.

Yup I miss that too. Maybe all the appliances came only in avocado green or harvest gold, but they held together and did not spy.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#147

The pieces did NOT exist in the 1970s. Fast microcontrollers, stepper motors, precision miniaturized manufacturing, reliable and cheap miniaturized DC electronics, and far far more technology was non-existent at any kind of affordable price point. Look at kitchen appliances or metal/wood shop machinery from this era, still heavily analog, mostly made from sheet steel, mostly non-computerized. The 80s would bring bett…

Sure but they did by the 80s and 90s. I had a cad/cam class in the 90s and the pen plotter we used, not sure which model but HP 7090 from the 80s is similar, had all the technology necessary to build a 3d printer. Hell you could build a 3d printer from essentially first principles using old broken tech and stuff from a hardware store. The first time I saw a 3d printer years ago, my first thoughts was why it took so l…

You will probably be interested in reading my summary in https://news.ycombinator.com/item?id=42080682 of the things the RepRap project struggled with in the first years of the project; it explains why it took so long.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#148
post #25

I think it's probably correct that few people *really* cared until the Reprap project showed a real DIY 3D printer was possible. Early machines were industrial machines with huge price tags, proper linear motion systems, complicated extrusion systems and so on. There is a bit of a mental leap to go from seeing $100k+ machine and dreaming to design something that can be built for $200-500. The problems were: no "refer…

A few notes: The patents were a huge impediment. They did not expire till 2008 - before then printers cost $25k. They were expensive and stratasys had no incentive to make them $300 like they are today so volumes were limited. From their release in 1995 until 2008 stratasys sold like 13000 printers according to their company history web page. For a long time now Prusa has shipped more printers than that in a single m…

Note that Bowyer doesn't mention the patents at all in this interview, so I question your assertion that the patents were a huge impediment to him. Possibly they dissuaded other people from starting a RepRap-like project years earlier, but I think the vast majority of such people didn't even imagine that an affordable 3-D printer was possible.

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#149
post #145

Earlier quoted context omitted.

Floating point maths would be hard, and fitting the model in 64k would be a challenge - but paging could resolve that, or streaming/paging from disk if you assume something like CP/M. Logically it's a simple project, though the devil is always in the details!

Floating-point was ubiquitous in the BASIC interpreters on early home computers. It was just slow. CP/M didn't really do paging, although you could read and write 128-byte records to disk. But CP/M disks were typically only 90 kibibytes, or maybe up to a mebibyte for 8-inch floppies. And a lot of hobbyist home computers omitted disk drives because they were too expensive.

Sure floating point is possible, but if you're thinking of something like a 6502 or Z80 you'd have to implement it yourself - no maths co-processor, or dedicated instructions for it.

In terms of paging I was thinking of paging in later layers of data from disk, perhaps from a large file, perhaps from a series of files. But CP/M certainly did have support for paging RAM, in 3.x, if your hardware supported it.

(My own emulator, and the hardware I have running genuine CP/M are all running 2.x so no paged RAM there. Shame!)

Re: Ask HN: Why did consumer 3D printing take so long to be invented?

#150

Earlier quoted context omitted.

Why are you giving your numbers leading 0s?

It's to showcase their superior thinking over four digit year neanderthals. A very iamverysmart thing, as if people don't know after the year 9999 there will be a 10000. Which is why I'll always prepend even more digits when replying, because I'm thinking even further ahead than the short-sighted five digit people and even bigger numbers all the time. https://longnow.org/

A single 0 just throws me off because it makes me think of octal.
Post reply on HN