The Mother of All Demos is 50 years old today

In a crowded, but quiet theatre in Renlo Park, California, at the Stanford Research Institute, the modern computer was born. It was on 9 December 1968 that a group of researchers at Stanford University delivered a 100-minute long demo of a system they had been working on called NLS – the oN-Line System. NLS was the precursor to many operating systems and networks that followed since, influencing designs and systems made by Xerox, Oracle, Sun, Apple, Microsoft, IBM, AT&T Research, Intel, AMD, ARM, Qualcomm, the University of California, and the rest of the PC hardware industry.

The demo includes key elements of modern computing that only came years later to the public on their personal computers. NLS was never commercially licensed, and instead was designed by lead researcher and architect Douglas Engelbart to augment human capabilities and the capacity for collaboration in real-time on computer systems for the express purpose of learning how to design other systems and software. NLS was a prototype that allowed rapid prototyping of ideas and research into how to change the way people worked with computers, but many of the features and concepts introduced by NLS wound their way into commercially licensed software.

The key elements of that are things like video conferencing with multiple participants, picture-in-picture mode for collaboration, document sharing through a fileserver or file system, remote storage with versioning, hypertext, a precursor to ARPANET for connectivity, search engines, website design, word processing with proper typography (in fact it closely resembles LaTeX), autocorrection, hotkey shortcuts, and much more. NLS’s handling of hypertext links and embedded images served as the inspiration for Bill Atkinson’s Apple HyperCard, a collaborative document creation system developed by Apple in 1987.

NLS wasn’t just software, it was also hardware – we see the first mouse prototype ever designed along with a working cursor and pointer, a macro-enabled chorded keyboard (which still exists today in multiple forms) for quickly performing typical tasks or chaining keys together to perform more complex operations, a web camera, and QWERTY keyboard with a row of function keys. The demo even includes custom-built CRT displays and cameras with display memory, allowing for post-processing effects on the fly, which allowed them to capture output from a CRT without having the flickering shown on the display (displaying one frame captured by the camera twice before injecting it into the video feed, giving you a 30Hz output with a 15Hz video source without artifacts).

The basic hardware peripherals weren’t even as impressive as the demo’s switch to Engelbart showing how they were approaching system design to make computers more usable in the workplace. The team added a polling-based system to a time-sharing mainframe with a dedicated Input/Execute Control server that would run critical subroutines on its own without having the mainframe doing all the heavy lifting. In interrupt-based systems, the CPU would drop whatever it was working on at the time to process your pressing of a key on the keyboard, and this meant that a mainframe receiving input from a dozen or more operators would either have to be exponentially faster to manage all the input, or would just get slow for everyone using it.

NLS was designed for a network of dumb terminals connecting to the host mainframe server, and interrupt-based input over the network meant poorer performance for everyone when things got really busy. This way, all the terminals would interact with the Input Control server, which would in turn relay that information to the mainframe on a priority-based schedule. This influenced modern network design, because today we have networks with computers hooked up to a managed switch that handles traffic and system priority, and acts as a buffer for information going to other computers or servers so that the network isn’t contended and overwhelmed with traffic collisions. Modern hardware designers also adopted the same idea through the use of chipsets, which manage input that is polled from peripherals and fed to the CPU based on the peripheral’s priority.

If you have the time today, or later this evening, grab some coffee and cookies and work your way through this incredible demo. Fifty years later, every computer, operating system, and programming language takes inspiration from this one project. Although NLS isn’t available anywhere on the internet to play with, NDMA makes a functional replica for Windows 3.0 systems, and Project Hyperscope implements another replica inside your web browser, but it will only work with an older Windows or Linux install and Firefox 2.0 (released in 2008).