Blender’s prehistory - Traces on Commodore Amiga (1987-1991)

by Piotr Zgodziński, March 19th, 2018


The following article is a historical look at the era that spawned first raytracers for home computers, a predecessor to Blender among them. Writing it was possible thanks to the fact, that, for the first time, the progam and source code of said predecessor are publicly available.


Traces on Commodore Amiga in 1988. Suzanne is imported from modern version of Blender.



Preface

Today Blender is one of the industry leaders, but it started quite small, three decades ago. If you ever wondered when and where some of the most iconic Blender conventions like "right-click select" or 3D cursor originated, it’s then, in the Amiga era, even before Blender was born.

At the end of October 2017, after Blender Conference, I had a pleasure to visit Blender Animation Studio in Amsterdam and talk with Blender's creator Ton Roosendaal about Blender's earliest days. This chat took us all the way back to the Commodore Amiga, that in 1980s was the only affordable multimedia platform in existence. It was so early, that the term "multimedia" had not been coined yet. There, on the Amiga, "Traces" was born, a precursor to Blender. Although different in name, it was already very much in the spirit of its more famous younger brother.

While we talked at Blender Animation Studio, Ton said he still had his Amiga 2000 somewhere around. We went to the storage area, but sadly Amiga wasn't there, in its place was a vintage Silicon Graphics workstation. Fortunately, among the hard drive backups, was the Amiga software and source code of the oldest precursor to Blender, that is now, for the first time, available for everyone to download and analyze (link at the bottom of this page). It’s an interesting artifact, a true representative of its times, when there was hardly any 3D software that ran on home computers, as this traditionally required the power of mainframes and millions of dollars in hardware to operate. Then, in 1985 Commodre Amiga came to the market and changed everything. When the famous Juggler demo appeared, spread on floppy disks all around the world, suddenly every aspiring coder was rushing to code his own raytracer, and Ton Roosendaal was no exception.


Juggler demo was awe-inspiring, barely anybody believed raytracing can be done on a home computer. Some even called it a hoax. It made the cover of Amiga World magazine in 1987.

Interview

Piotr Zgodziński: Thank you Ton for sharing your precious time with people curious about the origins of Blender. First question - why around 1988 you decided that you needed to write an in-house raytracer for your digital media company, Neo Geo? Weren't already available solutions good enough, or maybe they were too expensive?

Ton Roosendaal: Ray-tracers are very easy to code - especially compared to scanline rasterization based Z-buffer systems. In the end ray-tracers were too slow for production, so I started adding our own Z-buffer and scanline rendering.

Available solutions these days didn’t satisfy much. Textures for example were hardly supported. It was only when LightWave became available on Amiga that things improved [in 1990-ed.] By then we were already eying to move to Silicon Graphics though.

Why Amiga? What was the deciding factor for you when choosing the platform to develop your own 3D raytracer?

In 1985 there was really no other choice for poor people like me. If you wanted something with video and graphics, Amiga was the only choice. Desktop publishing was for Macintosh, sound designers used Atari. And the boring people used IBM PCs!

When was the Amiga your main development tool?

1987 - 1991 (summer).

Do you remember the hardware specs of your Amiga machines?

I started with an Amiga 500 with 512 Kb. Bought the memory expansion to make it 1 MB.

Then in 1988 we invested in two Amigas 2000 with “turbo cards”. I believe one was with 68020, the other 68030. Memory went up to 8 MB. Hard drives had 40 MB. We backed up everything on floppies first and on Magneto-optical drives after. In the end we also bought a 68040 card for rendering.



Ton Roosendaal in front of Silicon Graphics machine in 1992. Beneath his chin there is Amiga 2000 in the background.

What programming languages and tools did you use to develop the software on the Amiga?

At first I coded a lot in Amiga Basic. But the speed was not that good. GFA Basic was much faster, it even had functions! And when they added the compiler it was really fast. Best was, that you could inline machine code in GFA basic. We coded a lot of small functions using assembly - but only small functions (square root, matrix mult, etc). The renderer is mostly plain Basic.

I also started learning C on Amiga. It was a fascinating language, used by some in the demo scene. I didn’t do much with it though, until we got the Silicon Graphics workstation.



The source code of Traces in GFA Basic.

Where did you learn programming? Did you have any formal education when it comes to programming or were you self-taught?

Everything is self-taught. I was very interested in computers though, and read a lot about boolean algebra, computer languages and hardware design. Just from local libraries and magazines.

Was the Amiga your first computer or were there earlier machines that you explored?

Before the Amiga - my first computer - I had a Sinclair Spectrum. Coded plenty of assembly on it.

Why did you abandon Amiga and moved on to Silicon Graphics?

The main reason was that Amiga itself proved to be a dead-end for production. The market demanded higher quality graphics, especially 24 bits color. If Amiga would have made that step sooner…

Another reason was platform instability. Both the hardware and the Amiga OS were notoriously unstable. You couldn’t rely on it to work for more than a couple of hours. When I finally had the first SGI and got to used to Unix a bit, it was such a relief!


Multitasking on the Amiga allowed the user to run multiple programs at the same time, a very unusual thing for a computer of that period. All other consumer-grade computers were single-tasking machines in 1985, including IBM PC and Macintosh.


I was surprised to discover that Traces uses “right-click select” method, as no Amiga applications did. Why such a decision?

I don’t really remember how this started. It seems so logical. I bet some of the other 3D tools in these days explored efficient mouse usage as well?



Amiga had two-button mouse, with the right click usually used to manipulate pull-down menus. Traces had no pull-down menus and relied on keyboard activated on-screen menu instead. Left click was reserved for placing the 3D cursor, thus only right-click remained to select objects.

One exceptional Blender and Traces idea, not commonly found in other 3D software, is called a “3D cursor”. Did you invent it yourself? When I think about it, if you use left click to position 3D cursor and you don’t have pull-down menus, it makes the right-click a very attractive option for selecting.

Credits for that go to Sculpt 3D ! [The first Amiga 3D modeler and raytracer released in 1987 - ed.]


Sculpt 3D with 3D cursor visible, 1987.


Do you remember where the idea of layers came from?

I think the Videoscape modeler had layers… Aegis Modeler 3D ?

In the release file for Amiga Traces you wrote: “This is code from NeoGeo BV, written by Ton Roosendaal and Frank van Beek.” What was the contribution by Frank van Beek? Were there other people involved?

The company started with 2 people, with Frank van Beek as co-founder and business partner. Frank was (and is probably still) a much better coder than I am. He taught me a lot. In the end he was more of a 2D guy for coding, and I did the 3D stuff. In 1991 we hired our first employee, the company grew to 7 people in the years after.

In the first year of our company we hardly had commercial jobs making 3D animations. Doing practical things with 3D was too slow anyway, we mostly did this for fun in our spare time. In 1990 we had our first 3D animated jobs, and it was clear we would never be able to offer the quality the industry would demand. So it wasn’t about looking at other Amiga software for inspiration, at that time I was already eyeing Alias, Wavefront, Softimage… the stuff used in Hollywood and by big TV stations.

Thank you Ton for taking time to share with us your experiences. It’s amazing that the idea started almost 30 years ago on a small home computer is still pretty much alive, involving thousands of people around the world.

Amsterdam, October 2017 - Cracow, March 2018

Update 1. Traces in action, recoded by BlenderBach:

Update 2. What happened next in the story of Blender? Watch this video interview with Ton by Andrew Price.


Update 3. If you want more background information about the time period we were talking about, I made a documentary about prehistory of LightWave as well.



__________________________________________________
For SGI window manager users only!
--------------------------------------------------

These are the filetype rules and window manager icons of NeoGeo.

Copy these files in the /usr/lib/filetype/local/ directory.

How to acivate this, is SGI manual stuff!
Also: the quoted image software (anim/paint/imp) is NeoGeo only!

--------blender@neogeo.nl-------------------------

Download old Blender logo converted from FTI to SVG



Download Amiga Traces executable and source code

https://download.blender.org/source/chest/neogeo/Amiga-software.zip

Requirements

To run the program, you have to be a quite savvy Amiga user yourself, the process is not a point-and-click one and describing it is out of the scope of this article. You can use WinUAE emulator, remembering than Traces was developed around 1988, so it may not play well with newer versions of Amiga hardware and operating system. The non-standard files required to run Traces are:

LIBS:iff.library

FONTS:univers.font

FONTS:univers/11


links: library, font

During my testing I discovered it runs well and rarely freezes. There are some test scenes provided, including one that looks like a commercial for Philips. To move around, you can use some familiar Blender conventions in Traces (or, rather, if you are using Blender today, you are still using 30 years old Traces conventions, which is amazing when you think about it):

F1 - load scene

F2 - save scene

Numpad digit keys - manipulate view

Space - on-screen menu

Right click - select object

Enter - draw wireframe (default is bounding box view)

G, R, S - Grab, Rotate, Scale

B - border select

Traces accepts Sculpt 3D object format. Sculpt was probably the first 3D raytracer and modeler for the Amiga, as well as for any other personal computer. It was released in 1987 and by the time Traces was conceived, Sculpt’s model format became widespread.


Objects imported from Sculpt 3D. I made this scene in 2016.


Sample render from Traces. I don’t know how to define proper reflective materials yet and there is no manual. Maybe someone will figure it out eventually.

Ad for Philips.

A file requester under F1 key.




©Piotr ZgodzińskiCookies