Symbolics Unifies 3D Modeling, Paint and Animation on Lisp Hardware

SYMBOLICS S-PACKAGES 3D GRAPHICS AND ANIMATION DEMO — Red Martian

Red Martian

An integrated object-oriented Lisp architecture eliminates digital production bottlenecks by allowing 3D geometry, animation curves, and raster paint tools to exchange data bidirectionally without external video input.

AI-assisted summary of SYMBOLICS S-PACKAGES 3D GRAPHICS AND ANIMATION DEMO — original source. Check the original for full context.

Source published:

Key ideas

  • The Symbolics Graphics Division demonstrated the S-Products suite (Geometry, Dynamics, Render, and Paint), showcasing a fully integrated, non-siloed Lisp-based pipeline where 3D geometry, motion scripts, and 2D raster painting cross-communicate freely. (0:42)
  • S-Dynamics introduced continuous single-skin displacement animation on 'smart objects,' supporting up to hundreds of stacked behavioral layers—such as locomotion, breathing, and facial phonemes—without geometric seam tearing. (15:25)
  • S-Paint operates on a true 32-bit framebuffer architecture (24-bit RGB plus an 8-bit, 256-level alpha stencil channel) with procedural intensity/chroma keying and seamless canvas wrap-around texture tiling. (23:00)
  • Via the S-Record module, the unified suite directly controls automated frame-by-frame recording and outputs to international broadcast formats including NTSC, PAL, and early HDTV. (27:30)

Detailed notes

## Background This demonstration was uploaded to YouTube by the channel Red Martian on August 8, 2013. According to the page description, it features the Symbolics Graphics Division showcasing their S-PACKAGE 3D color graphics system, software that was later used to develop the Nintendo 64.

## TL;DR Host Matt Elson demonstrates the integrated architecture of the Symbolics S-Products suite running in an object-oriented Lisp environment. The presentation details 3D modeling and CAD data ingestion in S-Geometry, dynamic timeline scripting and single-skin organic mesh deformation in S-Dynamics, and full 32-bit raster compositing and brush manipulation in S-Paint. It culminates with photorealistic shading and rendering passes in S-Render, showcasing how seamless cross-module communication allows artists to model, animate, paint, and render complex synthetic scenes without leaving the system before exporting via S-Record.

## Atmosphere & style The presentation carries the measured, authoritative, and deeply technical tone of a high-end Silicon Valley workstation demo from computer graphics' golden era. Matt Elson speaks with steady, unhurried confidence, walking through intricate workflows while highlighting the ergonomic efficiency of the three-button mouse status bar and dynamic Lisp environment. Watching the demonstration evokes a sense of retro-futuristic marvel, as cutting-edge organic mesh deformations, interactive curve scrubs, and real-time shading passes unfold smoothly on historic computing hardware.

## Bulletin - [00:42](https://www.youtube.com/watch?v=gV5obrYaogU&t=42s) The Symbolics Graphics Division demonstrated the S-Products suite (Geometry, Dynamics, Render, and Paint), showcasing a fully integrated, non-siloed Lisp-based pipeline where 3D geometry, motion scripts, and 2D raster painting cross-communicate freely. - [15:25](https://www.youtube.com/watch?v=gV5obrYaogU&t=925s) S-Dynamics introduced continuous single-skin displacement animation on 'smart objects,' supporting up to hundreds of stacked behavioral layers—such as locomotion, breathing, and facial phonemes—without geometric seam tearing. - [23:00](https://www.youtube.com/watch?v=gV5obrYaogU&t=1380s) S-Paint operates on a true 32-bit framebuffer architecture (24-bit RGB plus an 8-bit, 256-level alpha stencil channel) with procedural intensity/chroma keying and seamless canvas wrap-around texture tiling. - [27:30](https://www.youtube.com/watch?v=gV5obrYaogU&t=1650s) Via the S-Record module, the unified suite directly controls automated frame-by-frame recording and outputs to international broadcast formats including NTSC, PAL, and early HDTV.

## Key takeaways - [00:42](https://www.youtube.com/watch?v=gV5obrYaogU&t=42s) The S-Products suite connects Geometry, Dynamics, Render, and Paint into a simultaneous, non-blocking Lisp Machine multitasking environment. - [02:03](https://www.youtube.com/watch?v=gV5obrYaogU&t=123s) Built in object-oriented Lisp, the 3D Geometry viewport allows direct inspection and translation of scene elements at the body, face, edge, and vertex levels. - [05:31](https://www.youtube.com/watch?v=gV5obrYaogU&t=331s) The interactive modeling workflow accelerates user rhythm by snapping mouse actions to previous tools and providing real-time dynamic mouse status documentation. - [08:52](https://www.youtube.com/watch?v=gV5obrYaogU&t=532s) Geometry supports native Platonic solids, numeric CAD precision, digitized floor plan encoding, and industrial CAD data interchange (CADAM, CATIA, and IGES). - [11:30](https://www.youtube.com/watch?v=gV5obrYaogU&t=690s) Dynamics formats temporal animation graphically, displaying time along the horizontal axis and transformation channels along vertical stacked tracks. - [14:12](https://www.youtube.com/watch?v=gV5obrYaogU&t=852s) Animation motion curves can be reshaped interactively, scrubbed at variable speeds, and smoothed using low-pass filters to eliminate digitized input wobbles. - [14:12](https://www.youtube.com/watch?v=gV5obrYaogU&t=852s) Modular animation cycles can be authored once and instanced into master timelines, with stretch and squash controls directly governing playback frequency. - [15:25](https://www.youtube.com/watch?v=gV5obrYaogU&t=925s) Single-skin organic meshes utilize stacked behavioral displacement layers without geometric seam tearing, supporting hundreds of simultaneous modifiers. - [16:48](https://www.youtube.com/watch?v=gV5obrYaogU&t=1008s) Complex facial speech rigs rely on low-polygon proxy 'slab' structures for interactive scripting before driving recursively smoothed final meshes. - [18:27](https://www.youtube.com/watch?v=gV5obrYaogU&t=1107s) S-Paint features an expandable tree-based brush system with client-partitioned preset libraries and painting modes that stamp, tile, or reveal underlying layers. - [20:26](https://www.youtube.com/watch?v=gV5obrYaogU&t=1226s) Typography functions seamlessly in both 2D and 3D, allowing identical font definitions to be typeset flat in Paint or extruded into dimensional objects in Geometry. - [20:26](https://www.youtube.com/watch?v=gV5obrYaogU&t=1226s) Screen-shifting canvas tools expose outer edges in the center of the viewport, enabling artists to blend out seams for mathematically seamless repeating texture maps. - [23:00](https://www.youtube.com/watch?v=gV5obrYaogU&t=1380s) S-Paint's 32-bit framebuffer reserves 8 bits for a 256-level alpha stencil, extractable via per-channel RGB intensity keys or interactive chroma keys. - [25:07](https://www.youtube.com/watch?v=gV5obrYaogU&t=1507s) S-Render generates 100% synthetic photorealistic imagery within the software ecosystem using Gouraud and Phong shading paired with bump, diffuse, reflection, and opacity maps. - [26:33](https://www.youtube.com/watch?v=gV5obrYaogU&t=1593s) Subdivision and algorithmic smoothing allow rapid escalation of mesh complexity in minutes without manual point re-encoding. - [27:30](https://www.youtube.com/watch?v=gV5obrYaogU&t=1650s) The integrated pipeline enables hybrid 2D/3D workflows, letting artists project custom raster paint textures directly onto 3D surfaces before recording out to NTSC, PAL, or HDTV via S-Record.

## Detailed walkthrough ### [00:42](https://www.youtube.com/watch?v=gV5obrYaogU&t=42s) Overview of Symbolics S-Products and System Architecture

Host Matt Elson introduces the Symbolics S-Products, breaking down the core software suite that comprises the graphics environment on the Symbolics Lisp Machine. The suite is anchored by four primary modules alongside a dedicated video control utility. Geometry is used for building 3D objects and defining spatial relationships; Dynamics handles animation scripting and structures time; Render processes the 3D scene geometry, lights, and textures into rendered images; and Paint is an integrated raster painting package. These are complemented by S-Record, which governs video hardware and automated frame-by-frame recording.

Rather than existing as siloed, sequential utilities, the S-Products are architected as an integrated ecosystem with extensive cross-communication. Geometry and Dynamics talk directly to each other and can feed scene data into Render either independently or together. Render and Paint exchange image data, allowing artists to paint directly on rendered surfaces or generate maps for rendering. Geometry can communicate with Paint, Dynamics interfaces with Paint for rotoscoping or texture shifts, and both Dynamics and Paint interface directly with S-Record to control machine-driven video recording output. Elson stresses that this open pipeline is designed to eliminate workflow bottlenecks: “The benefits of this are that we have a fully integrated environment where you're never locked out of one program in favor of another and everything can communicate with anything else giving you full access to all the products and therefore the most power to be gained from them.”

```mermaid flowchart TD accTitle: Symbolics S-Products System Architecture accDescr: Interconnections between Geometry, Dynamics, Render, Paint, and S-Record.

subgraph Core["Core 3D & Animation"] GEO["Geometry\n(Spatial/Objects)"] DYN["Dynamics\n(Time/Animation)"] end

subgraph Imaging["Rendering & 2D"] RND["Render\n(3D Scene Rendering)"] PNT["Paint\n(Integrated 2D System)"] end

REC["S-Record\n(Video Control)"]

GEO <--> DYN GEO --> RND DYN --> RND GEO <--> PNT DYN <--> PNT RND <--> PNT DYN --> REC PNT --> REC ```

[02:03](https://www.youtube.com/watch?v=gV5obrYaogU&t=123s) The Geometry Environment and Object-Oriented Editing

Entering the Geometry configuration screen, Elson presents the 3D world space viewport. The global origin is centered at (0, 0, 0), with labeled positive X, Y, and Z axes. The positive ZX ground plane is denoted by a visible triangle, the positive Y axis is connected vertically, and the negative coordinate directions are demarcated by visible gaps in the axis lines to give users an immediate mental coordinate reference. The interface surrounds the main viewport with tactile controls: object sensitivities are arranged across the top edge, camera sensitivities line the bottom, and primary menus run down the side of the display. A contextual fifth menu pops up directly at the mouse cursor on demand, placed there because it is accessed so frequently that traveling to static screen edges would waste time.

At the very bottom of the display sits a listening window where the operator can enter Lisp commands or read system responses, bordered beneath by a persistent black bar called the mouse status line. This line acts as dynamic, context-sensitive documentation, continuously updating to reflect the exact left-, middle-, and right-button mappings for whichever tool or geometry element is currently hovered over. Elson describes the three-button mouse as acting like a miniature keyboard in practice, removing the need to memorize hotkeys or navigate away from the viewport to find operational choices.

Using a newly initialized wireframe cube, Elson highlights two key software design paradigms: - **True Camera Orbit vs. World Motion:** Orbiting around the cube preserves its stationary world coordinates; toggling axis visibility confirms that the camera moves through 3D space while the object remains fixed at the origin. - **Default Hidden-Surface Removal:** Unlike standard wireframe displays of the era that leave backfacing lines visible and create optical ambiguity, the system removes occluded edges by default so complex spatial volumes remain instantly readable.

Under the hood, the entire system is built in object-oriented Lisp, giving the software deep inspectability: “We program in Lisp, and not only in Lisp, but we program in object-oriented Lisp.” Because elements are first-class software objects, the user can directly query and manipulate any component in the scene hierarchy. Selecting an entire polyhedron exposes high-level global edits, but the user can also drill down to inspect and transform individual or grouped polygonal faces, line segments and edges, or individual vertices, translating them across X, Y, or Z space using 2D mouse movements mapped onto the 3D coordinate system.

[05:31](https://www.youtube.com/watch?v=gV5obrYaogU&t=331s) Rapid 3D Modeling: Constructing an Airplane

To illustrate the speed of the interactive modeling workflow, Elson constructs a stylized airplane starting entirely from a default cube. He begins by selecting the visible front and side edges, orbiting the camera to grab the occluded rear edge, and executing a cut command that divides the segments into thirds. Displaying the resulting vertices, he cuts the forward edge down the middle and slices the top polygon into three distinct triangular sections. The software optimizes user rhythm by snapping the mouse pointer directly back onto the previously executed command button: “You'll notice that my mouse appears on top of the last choice that I just made, which is cut, so as I work I begin to accelerate because the system is configuring itself to my working methods on the fly.”

Without ever transforming the underlying world coordinate system, Elson maneuvers the camera around the geometry to shape each section of the aircraft: - **Tail and Fin:** The top polygon is extruded outward along its surface normal (perpendicular at 90 degrees), scaled down, and translated rearward along the Z axis. - **Wings:** Selecting the two newly formed lateral triangles, Elson flips the camera to orthographic top and front orientations. He extrudes the faces outward, scales them down toward their shared midpoint, offsets them outward along their element normals, and shifts them rearward in Z to establish a swept wing form. - **Fuselage and Nose Cone:** Grabbing the front quad face, he extrudes it forward twice in succession along its normal, scales the second extrusion inward to form a tapered nose cone, extrudes one final time, and collapses the terminal face into a sharp vertex to form a pitot-style nose needle. - **Wing Sweep and Aerodynamic Smoothing:** Grabbing the leading-edge vertices of both wings, he drags them forward along the Z axis to produce an aggressive delta-wing angle.

With the basic hard-edged form complete, Elson applies an algorithmic smoothing pass over the faceted geometry, converting the angular box model into an aerodynamic, curved aircraft hull.

[08:52](https://www.youtube.com/watch?v=gV5obrYaogU&t=532s) Primitives, CAD Data Exchange, and Architectural Modeling

Elson shifts from freehand polyhedral modeling to mathematical primitives and external data integration. Geometry natively generates regular Platonic solids—tetrahedrons, octahedrons, and icosahedrons—alongside standard geometric primitives such as cubes, cylinders, and spheres. Operators can instantiate these primitives using preset default parameters or define their dimensions interactively with the mouse. Furthermore, every interactive mouse action in the environment is mirrored by exact numeric input parameters, permitting engineering-grade precision when freehand modeling is insufficient.

The software also functions as an ingestion and exchange hub for external technical assets. The environment can encode digitized data from architectural floor plans and 3D drafting layouts, and it features built-in import and export filters for major industry CAD formats of the period, including CADAM, CATIA, and IGES.

To demonstrate structural editing, Elson constructs a model of a house: - He first enters 2D outline vertices directly into the viewport to establish the house's footprint and profile. - To create a pitched, sloping roof overhang on the gable end, he selects the roof face, locks the rotation pivot directly to the segment along the bottom edge of the face, and tilts it downward. Elson remarks on this flexibility: “It's a very powerful aspect of the environment that you can reach in and treat these objects in all sorts of different ways and manners; they're very, very malleable objects.” - Adding a chimney feature, he picks the chimney's intersecting line segments and slides them dynamically along the roofline until the placement looks correct. - Extraneous construction edges are cleaned up using a dissolve tool, leaving a clean, manifold architectural model ready for texturing or animation.

[11:30](https://www.youtube.com/watch?v=gV5obrYaogU&t=690s) Animation in Dynamics: The Dome Script and Motion Playback

Once modeling is finalized, the asset can be animated by transitioning into the Dynamics system. The Symbolics interface splits dynamically, placing Geometry across the top half of the screen and Dynamics across the bottom. Elson emphasizes that this unified multitasking environment is central to the machine's power: “This a very, very important and powerful feature of the environment that you can have both programs running simultaneously, that you're never locked out of one, you're never closed out of one program in favor of another program.”

The Dynamics workspace formats animation visually: time advances horizontally from left to right along the timeline, while spatial and hierarchical transformation channels are stacked vertically from top to bottom. This layout allows artists to read, manipulate, and shape numerical data as visual function curves. Elson loads a 10-second animation script featuring an architectural dome and an escaping vehicle: - **Hierarchical Actor Tree:** The script tree splits into three main branches: the Dome, the Doors, and the Camera. - **Visibility vs. Motion Channels:** Opening the Dome branch displays no motion curve tracks because its only parameter is a simple boolean visibility toggle. - **Coordinated Door Mechanics:** Expanding the Doors branch reveals sub-tracks for the left and right doors. Zooming into the timeline reveals three distinct timing segments per door: an initial curve governing the sliding opening motion, followed by a sustained hold segment keeping them open. - **Camera Path:** The camera is scripted to pitch upward and fly directly out through the roof opening just as the doors part.

When previewing animations, the Symbolics environment caches the rendered vector passes as temporary bitmap files, granting the animator flexible motion analysis tools during playback: - Playback can run at real-time speeds, in reverse, or bounce back and forth continuously. - Velocity can be throttled interactively up to 10× in either direction (demonstrated running smoothly at 300% speed). - The mouse acts as a manual scrub wheel: moving the mouse horizontally lets the user scrub forward and backward across the timeline to freeze and evaluate individual frames.

Elson demonstrates how motion curves can be reshaped interactively, showing an irregular, hand-drawn curve mapped to the camera's translation channel to simulate the low-frequency rumble of rocket engines firing during takeoff, and points out that redrawing this spline can instantly alter the movement from a stochastic mechanical vibration to an entirely different motion profile.

[14:12](https://www.youtube.com/watch?v=gV5obrYaogU&t=852s) Hierarchical Structuring and Temporal Dynamics

When freehand input produces an unsteady line or an unwanted “drunken wobble,” the system allows the animator to clean up the motion curve immediately using a low-pass filter to smooth out irregularities. The power of this dynamic manipulation is demonstrated through a bird model in flight, which serves as a prime example of hierarchical object structuring. The bird’s wing consists of six distinct segments chained together, with each component structured hierarchically into the preceding one. When viewed on the color display, the individual pieces naturally intersect and interpenetrate through the flap cycle without requiring manual polygon collision recalculations.

Because S-Dynamics treats temporal data as visual assets, an animator can construct a self-contained cyclical motion and embed it directly into larger production timelines. A two-second flight cycle script is created once and dropped into a 28-second flythrough sequence through a New York City environment. Within the timeline script editor, this master bird cycle is duplicated into sequential blocks, then graphically stretched and squashed. Compressing the timeline blocks progressively increases the flap frequency, allowing the bird to accelerate smoothly as it dives through the urban canyon.

“Part of the beauty of Dynamics is that we can treat our temporal data graphically so once I have defined this single script for the bird flying and its 2C page case we can then take and insert that into a larger script in this case the 28 second sequence here for the New York City flythrough,” the presenter explains.

- Wing hierarchy: Six segmented polygon pieces nested sequentially from shoulder to wingtip. - Motion curve refinement: Low-pass filtering eliminates wobbles from digitized or drawn motion curves. - Master cycle reuse: A 2-second flight loop controls the primary flapping mechanics. - Timeline manipulation: Graphical stretching and squashing adjusts speed and playback rate inside the 28-second master animation.

[15:25](https://www.youtube.com/watch?v=gV5obrYaogU&t=925s) Single-Skin Displacements and Smart Objects

Beyond standard multi-part kinematic hierarchies, the system introduces surface displacements acting upon what the demonstrator describes as "smart objects." Rather than assembling an articulated character out of separate rigid geometric components that hinge at seams, displacement animation operates on seamless, single-skin meshes. Animators can program these models with fundamental organic behaviors such as breathing, walking, and talking. A human test figure demonstrates this progression: starting from the point where he first learns basic locomotion—stepping right foot forward, then left foot forward—the system shows him sitting down, crossing his arms and legs, and lying down to sleep. The presenter quips about character behavior when instancing multiple actors: “And of course one person by thems might go to sleep but if you get a bunch of them what do they do they inevitably party.”

The capability extends across diverse biological forms. Lower on the taxonomic hierarchy, an articulated snake demonstrates localized muscle contraction, visible as waves of tension traveling down through the body and tapering toward the tail. The displacement architecture is pushed further with an animated Doberman Pinscher running continuously on a single-skin polygonal body. Because the displacements can be modulated continuously, the dog's paws never strike the ground the exact same way twice, and head turning can occur independently while the quadruped gait cycle repeats.

“We can layer on these displacements as deep as we want to go if you want 300 layers of displacements that's fine there's no software limitations,” the demonstrator emphasizes, highlighting that the underlying code imposes no arbitrary ceilings on modifier stacking.

```mermaid flowchart TD accTitle: Layered Displacements on a Single-Skin Mesh accDescr: Diagram illustrating how foundational meshes receive multiple stacked behavioral displacement layers without geometric seam tearing.

subgraph Base ["Base Geometry"] Mesh["Single-Skin Manifold Mesh"] end

subgraph Displacements ["Displacement Modifier Stack"] Loco["Locomotion Layer (Walking / Running)"] Organic["Secondary Dynamics (Breathing / Flexing)"] Express["Micro-Gestures (Looking around / Phonemes)"] end

subgraph Output ["Deformed Output"] Anim["Seamless Organic Animation (Up to 300+ Layers)"] end

Mesh --> Loco Loco --> Organic Organic --> Express Express --> Anim ```

[16:48](https://www.youtube.com/watch?v=gV5obrYaogU&t=1008s) High-Level Abstraction and Facial Animation Scripts

Facial speech animation leverages high-level geometric abstraction. Rather than burdening the animator with dense, high-polygon representations during choreography, the facial rig begins as a sparse "slab structure" composed of broad polygonal patches. Animators teach the coarse model specific phonemes and emotional expressions in isolation, which are then compiled into a comprehensive playback script. This low-polygon proxy provides interactive frame rates during editing. Once the timing and expressive cues are dialed in, the low-resolution geometry can be duplicated, recursively smoothed, and driven directly by the identical motion script to yield a final high-resolution performance.

Analyzing the script reveals that the composite facial performance resolves into four distinct motion tracks operating simultaneously: 1. Primary jaw motion (mouth opening and closing). 2. Lateral lip retraction (mouth corners pulling back). 3. Pursed lips or pout (forming the vocalized "ooh" sound). 4. Terminal emotional transition (the smile rising across the lower face).

The script timeline interface lets the animator scrub forward and backward using the mouse across an inclined curve. As the playhead ascends the incline on the first track, the mouth cycles through rhythmic "close-open" states. Below that track, the lateral corner pulls trigger, followed on the third tier by the rounded lip displacement, until the bottom tier introduces the final upward smile curve.

“We animate with the fewest number of polygons we can then take and copy this simple object and smooth it and then drive a smooth object in this animation,” the presenter notes regarding the workflow optimization.

[18:27](https://www.youtube.com/watch?v=gV5obrYaogU&t=1107s) The S-Paint Interface and Brush Architecture

The demonstration transitions into the 2D domain with S-Paint. The graphical user interface is organized as an expandable tree structure running from left to right, where primary function categories form the trunk and detailed modifier parameters fan out as branches. Two visual anchor points remain completely static regardless of menu traversal: a green status column and a persistent color-mixing palette area.

At the top of the menu tree sits the brush sub-system, offering a comprehensive selection of digital painting tools: - Airbrushes for diffuse atmospheric shading and soft transitions. - Blending brushes that calculate color intermixing across existing pixels to simulate traditional wet oil paint. - Cutout brushes capable of picking up arbitrary canvas regions to stamp them elsewhere with hard or soft feathered borders. - Diffusion brushes that actively soften sharp boundary edges and blend neighboring pixel matrices to emulate physical lens defocus or edge bleeding for compositing. - Round brushes providing uniform, predictable line work across the display. - Speckle brushes that randomize droplet distributions to replicate chalk, charcoal, and toothy paper textures.

The brush management system allows artists to create, customize, and store an unlimited variety of brush presets. The demonstrator points out that digital studios can maintain dedicated brush directories partitioned by client—saving distinct asset libraries for Client A, Client B, and Client C to maintain specific brand aesthetics across projects. Furthermore, a brush’s application mode can be modified on the fly: rather than applying flat pigmentation, it can be configured to reveal underlying stored imagery, sweep structural graphic patterns, or tile complex bitmaps directly onto the canvas.

“We can make and save an unlimited number and kind of brushes you can make a library of brushes for client a client b client c and then call them back up at any particular time while keeping them uh separate,” the host explains.

[20:26](https://www.youtube.com/watch?v=gV5obrYaogU&t=1226s) Vector Shapes, Typography, and Surface Operations

The shape generation module supports primitive and vector operations, including circles, rectangles, freeform polygons, ellipses, and linear splines (both connected chains and discrete segments). Text handling inside the Symbolics graphics environment is uniquely integrated across dimensional workflows: typography can be typeset, kerned, and styled as flat artwork inside S-Paint, or the identical digital font definitions can be piped into 3D modeling space, extruded into dimensional signifiers, and manipulated within 3D coordinate space.

The shape interface organizes user selections into a two-column hierarchy: - The first column dictates the interior fill contents (solid colors, multi-stop linear gradients, four-color corner gradients, palette-mapped ramps, speckled fields, or scaled images). - The second column dictates the transfer mode used to fuse the shape onto the canvas (opacity blends, mosaic pixelation filters, recoloring passes, or texture brushing).

```mermaid flowchart LR accTitle: S-Paint Shape Application Architecture accDescr: A two-column interface logic separating interior shape contents from the transfer mode applied to the canvas.

subgraph Column1 ["First Column: Contents"] C1["Solid Color"] C2["4-Color & Palette Gradients"] C3["Resized External Bitmaps"] end

subgraph Column2 ["Second Column: Application Mode"] M1["Solid Stencil & Opacity"] M2["Recolor & Shading"] M3["Mosaic & Filter Passes"] end

subgraph Result ["Canvas Operation"] Final["Seamless Texture Map / Composite"] end

Column1 --> Result Column2 --> Result ```

Under the miscellaneous menu, artists have access to a suite of region transformation tools. Sections of the canvas can be cloned, translated across the workspace, scaled, repositioned, or stamped down with automated drop shadows. The system also includes coordinate grid overlays and specialized screen-shifting mechanics designed for surface texture creation. By using the screen-shifting tool, an artist can wrap canvas quadrants around the display borders, exposing the outer perimeter seams directly in the center of the viewport. The artist paints out the seam artifacts with standard blending tools and shifts the canvas back, producing mathematically perfect, tileable texture, bump, and opacity maps for downstream 3D rendering.

“Text in the symbolics environment is both two-dimensional and three-dimensional when you're working with it you can work with it in paint and it's completely two-dimensional but you can use the same font in three dimensions extrude it and play with it move it around in three space,” the demonstrator highlights.

[23:00](https://www.youtube.com/watch?v=gV5obrYaogU&t=1380s) 32-Bit Compositing and Stencil Channel Generation

S-Paint includes a dedicated two-dimensional animation module that interfaces directly with the 3D pipeline. Underpinning the entire paint environment is a true 32-bit framebuffer architecture: 24 bits are allocated to standard RGB color (8 bits per channel), while the remaining 8 bits drive a dedicated stencil (alpha) channel providing 256 discrete levels of transparency. This fine-grained alpha resolution gives the artist meticulous control over multi-layer compositing and optical effects.

The 8-bit stencil can be established through three primary methodologies: - Direct brushwork: Painting masking densities directly onto the image canvas using soft or hard media. - Vector fill shapes: Imposing geometric primitives filled with continuous opacity gradients across target regions. - Key extraction: Generating masks procedurally via intensity keys or chroma keys.

When running an intensity key, the matte can be extracted independently from the red, green, or blue color channels. On a red-channel intensity key, high-luminance white regions define 100% stencil opacity, while red visualization feedback reveals unprotected pixel areas. Switching the extraction target to the blue channel yields an entirely different silhouette, isolating background elements away from foreground figures.

For flesh-tone isolation, the chroma key tool samples an average skin value directly from the canvas and registers it onto the current color bar. Sliders allow real-time calibration of key hardness and edge softness. The demonstrator proves the efficacy of the keying engine by pulling a clean matte around a woman’s face, dropping a red-to-yellow directional gradient over her features, and then inverting the stencil to colorize the surrounding field, creating instantaneous stylized posterization graphics.

“The paint system is a 32-bit paint system 24 bits for RGB and eight bits for the alpha or stencil Channel depending upon how you'd like to use it the stencil is uh 256 level of opacity and this allows us to do all kinds of very subtle and sophisticated compositing,” the presenter states.

- Framebuffer distribution: 24-bit RGB truecolor accompanied by an 8-bit alpha stencil channel. - Alpha depth: 256 gradations of transparency for clean sub-pixel edge blending. - Matte generation modes: Manual brush stenciling, procedural gradient fills, RGB channel intensity keying, and multi-parameter chroma keying. - Mask previewing: Real-time visual overlay (white for opaque stencil, red for masked/unprotected areas).

[25:07](https://www.youtube.com/watch?v=gV5obrYaogU&t=1507s) S-Render: Photorealistic Shading and Synthetic Reality

The workflow culminates in S-Render, the module responsible for converting mathematical 3D geometry into finished raster imagery. S-Render evaluates scene geometry, material definitions, and environmental lighting setups to compute optical interaction across surfaces. The system can simulate a broad spectrum of material physicalities, including metals, polished woods, refractive glass, and rough concrete.

Inside the render parameter menu, artists configure surface illumination models. S-Render provides access to Gouraud smooth shading, Phong shading with specular highlights, and coordinated mapping channels: - Diffuse texture mapping to wrap surface graphics across geometry. - Bump mapping to calculate false surface relief and micro-roughness via perturbed surface normals. - Reflection mapping to simulate environmental sheen and mirroring. - Opacity mapping to control localized translucency across surfaces.

The demonstrator underscores that the Symbolics environment is completely self-contained. Rather than relying on digitized real-world video plates or externally generated assets, the software enables artists to model, texture, animate, and shade entirely photorealistic imagery inside a unified software ecosystem. To illustrate this progression from initial primitive form to photorealism, the presenter pulls up the foundational wireframe mesh of the Doberman Pinscher, demonstrating how bare geometry acts as the starting canvas for complete synthetic realization.

“We're quite proud of the fact that you can have totally believable images in the symbolic environment that are 100% synthetics painted inside the environment built inside the environment rendered inside the environment with no external data coming in except the hand and the eye of the artist,” the host asserts.

[26:33](https://www.youtube.com/watch?v=gV5obrYaogU&t=1593s) Polygonal Complexity and Surface Shading of the Dog Model

The demonstration illustrates the efficiency of the Symbolics modeling workflow through the progressive refinement of a 3D dog model. Beginning with a rudimentary low-polygon form, the system smoothes the geometry and scales it upward to successively higher levels of polygonal complexity. The narrator emphasizes that moving through these stages of detail required minimal effort on the operator's part, noting: “The simple to the more complex dogs took approximately a minute each to create just by smoothing the dog off we didn't have to go through and re-encode every new point.” This workflow eliminates the tedious task of manually calculating or placing coordinate points by hand.

```mermaid flowchart TD accTitle: Model Refinement and Shading Pipeline accDescr: Pipeline showing the progression from low-poly gray clay geometry to shaded and textured models. subgraph Geo["Geometry & Complexity"] A["Low-Polygon Base Dog"] --> B["Iterative Subdivision & Smoothing"] B --> C["High-Complexity Polygon Mesh"] end subgraph Shading["Rendering & Shading Variations"] C --> D["Faceted Shading (Clay Gray)"] C --> E["Smooth Shading (Clay Gray)"] D --> F["Faceted Gold Reflection Map"] E --> G["Smooth Gold Reflection Map"] end ```

The presentation then shifts to surface properties and rendering styles. The model is first displayed using a basic gray clay appearance with simple slab surfaces and faceted shading, leaving individual polygon boundaries clearly visible. By enabling smooth shading, the faceted seams disappear into clean, continuous surfaces, though the narrator acknowledges that a plain gray finish remains somewhat unappealing. To demonstrate material versatility, a reflection map is mapped onto the mesh, transforming the dog into polished, gleaming gold. The system also retains the ability to toggle between shading techniques instantly, showcasing the same reflective gold dog with faceted shading left on to create a stylized, jewel-cut metallic look.

- Model creation time: approximately one minute per refinement stage by smoothing rather than re-encoding mesh vertices. - Surface treatments demonstrated: flat gray clay faceted shading, smoothed gray clay shading, and smooth versus faceted gold reflection mapping.

[27:30](https://www.youtube.com/watch?v=gV5obrYaogU&t=1650s) Paint Integration and Final Overview of the S-Products Suite

Moving beyond pure 3D rendering, the demonstration highlights the hybrid workflow made possible by integrating geometric data directly into the paint system. Using the underlying 3D dog geometry as a canvas, artists can project or paint diverse textures and stylistic treatments onto the screen. The narrator presents an eclectic series of artistic variations: a bursting "fireworks" dog, a soft terrycloth fabric model, an electric neon outline model, and a spooky, stylized Halloween-themed model. This ability to merge procedural 3D forms with 2D raster painting tools provides rapid artistic flexibility without requiring complex custom shaders or physical simulation.

```mermaid flowchart LR accTitle: Symbolics S-Packages Core Architecture accDescr: Diagram illustrating the four core Symbolics packages outputting via S-Record to global video formats. subgraph Suite["Core Symbolics S-Packages"] direction TB G["S-Geometry"] D["S-Dynamics"] R["S-Render"] P["S-Paint"] end subgraph Output["Output Pipeline"] SR["S-Record"] VF["Worldwide Video Formats<br/>(NTSC / PAL / HDTV)"] end Suite --> SR --> VF ```

The presentation concludes with a formal recap of the entire Symbolics graphics environment, summarizing the software suite as four tightly coupled foundation packages: S-Geometry, S-Dynamics, S-Render, and S-Paint. As the narrator explains: “The combination of these four products allow you to create virtually anything that you can imagine.” To complete the production pipeline, the suite pairs with the S-Record animation control and device software, allowing finished frames and animation sequences to be recorded out directly to any standard international broadcast video format, including NTSC, PAL, or high-definition television (HDTV).

- Textured model variants shown: fireworks, soft terrycloth, neon, and Halloween. - Four core constituent packages: Geometry, Dynamics, Render, and Paint. - Output formats supported via S-Record: NTSC, PAL, and HDTV.

## Notable quotes > [00:42](https://www.youtube.com/watch?v=gV5obrYaogU&t=42s) we have a fully integrated environment where you're never locked out of one program in favor of another and everything can communicate with anything else giving you full access to all the products and therefore the most power to be gained from them. — Matt Elson

## Mentioned Matt Elson, Symbolics Graphics Division, Symbolics Lisp Machine, S-Products, S-Geometry, S-Dynamics, S-Render, S-Paint, S-Record, Nintendo 64, Lisp, CADAM, CATIA, IGES, Gouraud shading, Phong shading, NTSC, PAL, HDTV, Red Martian

## Video description Symbolics Graphics Division demonstration of the S-PACKAGE 3D color graphics system. This software was later used to develop the Nintendo 64.

[Source](https://www.youtube.com/watch?v=gV5obrYaogU)

中文简报

Symbolics在Lisp硬件上整合3D建模、绘图与动画 集成式面向对象Lisp架构允许3D几何体、动画曲线与光栅绘图工具双向交换数据,无需外部视频输入,从而消除数字化制作瓶颈。 主持人Matt Elson展示了在面向对象Lisp环境中运行的Symbolics S-Products套件的集成架构。演示详细介绍了S-Geometry中的3D建模与CAD数据摄取、S-Dynamics中的动态时间轴脚本编写与单层表皮有机网格形变,以及S-Paint中的全32位光栅合成与画笔操作。演示以S-Render中的逼真着色与渲染流程收尾,展示了无缝的跨模块通信如何让艺术家在无需脱离系统的情况下完成复杂合成场景的建模、动画、绘制与渲染,并最终通过S-Record导出。 Symbolics图形部门展示了S-Products套件(包括Geometry、Dynamics、Render和Paint),呈现了一个完全集成且无壁垒的基于Lisp的流水线,3D几何体、运动脚本与2D光栅绘图可在其中自由互通。 (0:42) S-Dynamics在“智能对象”上引入了连续单层表皮置换动画,支持多达数百个叠加的行为层(如位移、呼吸和面部音素),且不会产生几何接缝撕裂。 (15:25) S-Paint基于真正的32位帧缓冲区架构运行(24位RGB外加8位、256级alpha蒙版通道),具备程序化亮度/色度抠像以及无缝画布环绕纹理平铺功能。 (23:00) 该统一套件通过S-Record模块直接控制自动化逐帧录制,并输出为包括NTSC、PAL和早期HDTV在内的国际广播格式。 (27:30)

Reading summary

Host Matt Elson presents the Symbolics S-Products suite, arguing that an object-oriented Lisp architecture enables an interconnected 2D/3D graphics pipeline that eliminates workflow silos between modeling, animation, painting, and rendering. Unified Object-Oriented Architecture and Modeling (0:42) The suite is built upon an object-oriented Lisp implementation where all elements exist as inspectable software objects. Rather than operating as isolated applications, S-Geometry, S-Dynamics, S-Render, and S-Paint communicate bidirectionally. In S-Geometry, operators manipulate polyhedra, faces, edges, and vertices directly in 3D coordinate space using context-sensitive mouse commands, numeric inputs, and automatic hidden-surface removal. The environment supports mathematical primitives alongside CAD data exchange formats such as CADAM, CATIA, and IGES. Visual Temporal Control and Dynamic Deformations (11:30) S-Dynamics formats animation data visually, placing time on a horizontal axis and hierarchical transformation channels vertically. Animators can reshape motion curves as visual splines, scrub frames bidirectionally, throttle playback speeds up to 10×, or apply low-pass filtering to remove erratic digitizer input. Reusable master movement loops can be graphically stretched or compressed within larger project timelines. Beyond rigid multi-part hierarchies, the system provides single-skin mesh displacement animation, permitting over 300 stacked behavioral layers—such as organic locomotion, breathing, and facial phoneme curves—without geometric seams or software-imposed limits. Hybrid 2D/3D Painting and Compositing (18:27) S-Paint utilizes a 32-bit framebuffer partitioned into 24-bit RGB truecolor and an 8-bit alpha stencil channel providing 256 levels of opacity. Users can pull matte silhouettes via brushwork, vector shapes, RGB channel intensity keys, or calibrated chroma keys. Two-dimensional typography can be exported directly into 3D space as extruded geometry, and screen-shifting functions allow artists to paint out edge seams to generate seamless, tileable texture maps for 3D materials. Finished 3D models can also be imported back into S-Paint as canvases for direct stylistic overpainting. Photorealistic Rendering and Hardware Output (25:07) S-Render translates 3D scene geometry, environmental lighting, and surface characteristics into completed raster imagery. It supports Gouraud and Phong illumination alongside diffuse, bump, reflection, and opacity mapping. The system enables progressive subdivision, smoothing low-polygon proxies into high-density meshes in roughly one minute per stage without manual vertex encoding. Completed sequences are managed by S-Record, which governs frame-by-frame deck control and exports to standard international broadcast formats, including NTSC, PAL, and HDTV. The presentation highlights that Symbolics provides a self-contained, fully synthetic production pipeline capable of generating broadcast-ready imagery without external footage, though the demonstration focuses strictly on ideal in-engine workflows and does not discuss computational performance overheads or hardware costs.

精炼阅读摘要

主持人Matt Elson展示了基于Symbolics Lisp Machine的S-Products 3D图形与动画套件,强调该系统通过面向对象Lisp构建的无缝集成流水线,将几何建模、动力学动画、着色渲染与2D绘图完全打通,无需外部素材即可合成高复杂度视觉内容。 集成式系统架构与面向对象建模环境 (0:42) Symbolics图形环境的核心由四大模块组成:用于构建3D对象与空间关系的Geometry、管理时间与动画脚本的Dynamics、负责光影与材质合成的Render,以及集成光栅绘图的Paint,并辅以硬件输出工具S-Record。各模块间支持双向数据互通,消除了传统软件之间的管线孤岛。系统底层完全基于面向对象的Lisp构建,场景中从多面体到面、边、顶点的所有元素均为第一类对象,操作者可通过三键鼠标和上下文敏感状态行直接进行交互式变换,系统还默认提供消隐线显示与真实相机轨道旋转功能,保证复杂三维空间的视觉可读性。 在建模能力上,几何环境不仅支持从基础立方体快速切分、挤出、沿法线伸展并进行算法平滑以制作流线型机身,还内置了柏拉图多面体与标准几何图元。系统允许鼠标自由操作与精确数值输入并行,并提供CADAM、CATIA及IGES等行业CAD格式导入导出接口,支持在统一视图内完成二维轮廓放样、倾斜屋顶铰接及结构边缘溶解清理等复杂工程造型任务。 动力学时间轴与多层单皮网格位移 (11:30) 进入Dynamics模块后,界面以水平时间轴对应垂直变换通道的形式呈现函数曲线,并支持与Geometry同屏分屏多任务运行。动画预览时系统将矢量通道缓存为位图,支持最高10倍速回放、反向弹跳播放以及手摇轮式的交互式时间轴拖动。针对运动控制,系统支持低通滤波平滑曲线以消除抖动,并能将基础动作循环模块化。例如,一段2秒的六段层级翅膀飞行动作脚本,可直接嵌套进28秒的纽约城市穿梭主时间轴中,通过在时间轴上图形化拉伸或压缩曲线,动态改变扇翅频率以表现俯冲加速。 在角色动力学方面,系统引入了作用于“智能对象”的单皮(single-skin)连续网格位移技术,摆脱了传统多段刚体关节在缝合处的破面问题。演示表明,该位移动态层级在底层代码中无软件上限,可叠加多达300层变形修饰器,使行走、呼吸、局部肌肉收缩与头部转动等有机行为能够自然融合,同一种四足步态每次落脚都能产生连续细微的差异。 低面数代理表情脚本与2D/3D资产互通 (16:48) 针对面部动画与语音合成,系统采用了基于粗糙多边形贴片组成的低面数“板结构”代理方案。动画师在稀疏代理模型上调校下颌开合、嘴角后拉、撅嘴发音及微笑等四组独立通道脚本,以保证编辑时的交互帧率;调整完毕后,该运动脚本可直接复制并无损驱动经过细分平滑的高精度模型。 进入S-Paint环境后,2D绘画系统与3D场景形成了深度双向绑定。文字排版既可以在Paint中作为平面矢量字型进行字距微调,也能直接无缝导入3D空间沿法线挤出为立体模型。绘图界面采用树状展开菜单,提供包含喷枪、油画混色、扩散羽化及散点肌理在内的无限可定制笔刷库。此外,系统通过屏幕平移工具可将画布边缘循环包裹至视口中央,便于艺术家消除接缝,从而快速绘制出在三维渲染中完美平铺的贴图、凹凸与不透明度通道。 32位帧缓冲合成与材质渲染管线 (23:00) S-Paint底层依托完整的32位帧缓冲架构,其中24位用于RGB真彩色,8位提供256级精度的Alpha遮罩通道。该遮罩支持笔刷手绘、矢量渐变填充以及基于RGB单通道亮度和色度键提取的程序化抠像,允许针对肤色等复杂区域实时微调边缘软硬度并进行反向选区着色。在最终的S-Render阶段,几何体、材质与虚拟光源综合计算出包括金属、木材、折射玻璃与混凝土等物理质感,全面支持Gouraud平滑着色、Phong高光着色,以及漫反射、法线凹凸、环境反射与不透明度映射。 在杜宾犬模型的迭代展示中,操作者仅需约一分钟即可通过平滑细分将简易低模升级为高复杂度网格,而无需手动重新编码点位。该模型既能渲染为平滑或刻面质感的反光黄金,也能直接导入Paint系统绘制烟花、毛圈布面料、霓虹发光轮廓及万圣节风格涂装,实现了三维几何形体与二维光栅风格化表现的混合表达。 演示表明,S-Products将S-Geometry、S-Dynamics、S-Render与S-Paint紧密整合为一套闭环的数字内容创建系统,最终借助S-Record硬件控制组件可直接输出至NTSC、PAL及HDTV等国际广播级视频制式;但演示主要聚焦于工作站环境下的工作流协同与功能范例,并未展开讨论大规模生产环境下的计算瓶颈或跨平台硬件兼容性。

Source quotes

[0:42] Matt Elson: we have a fully integrated environment where you're never locked out of one program in favor of another and everything can communicate with anything else giving you full access to all the products and therefore the most power to be gained from them.

Original transcript

[0:00] e [0:40] [Music] [0:42] hello and welcome to our presentation of [0:43] the symbolics S products I'm your host [0:45] Matt Elson and today we're going to look [0:47] at what comprises the graphics software [0:50] in the symbolics environment there are [0:52] basically four key products there's [0:55] geometry for defining the spatial [0:57] relationships and building objects [1:00] Dynamics structures [1:02] time render takes and looks at the [1:05] three-dimensional scene and gives us a [1:06] rendering of that paint is a fully [1:10] developed and integrated paint system [1:11] into the environment and there's s [1:14] record which allows us to control the [1:16] video environment the relationships [1:19] stand like this geometry and Dynamics [1:22] can talk to each other geometry can talk [1:24] to [1:25] render geometry and Dynamics together [1:28] can talk to render render and paint can [1:31] talk to each [1:32] other geometry and paint can talk to [1:35] each [1:36] other Dynamics and paint can talk to [1:38] each [1:39] other Dynamics and record talk to each [1:42] other and paint and record talk to each [1:46] other the benefits of this are that we [1:48] have a fully integrated environment [1:51] where you're never locked out of one [1:53] program in favor of another and [1:55] everything can communicate with anything [1:56] else giving you full access to all the [2:00] products and therefore the most power to [2:01] be gained from them let's start in [2:03] Geometry this is our geometry [2:07] configuration and what we're seeing in [2:09] this window here is the world space this [2:13] is our Global center with 00 0 here the [2:17] positive Z positive Y and positive x [2:20] axis labeled the positive ZX plane is [2:24] marked with the triangle the P positive [2:26] y- axis is attached the negative axes [2:29] are all marked with gaps so we have a [2:30] nice clean visual reference into the [2:32] world [2:33] space across the top of this window we [2:36] have the object sensitivities across the [2:39] bottom we have camera sensitivities down [2:41] the side of the this configuration are [2:44] our menus and the fifth menu is brought [2:46] up with a mouse click uh we use this [2:48] menu so often that it doesn't make any [2:50] sense to be placing it off to the side [2:52] so we place it where you can bring it up [2:54] with the greatest [2:55] ease across the bottom is a list [2:57] listening window and and uh this is [3:00] where one can talk to the computer or [3:02] the computer can talk to you and below [3:05] that in this black line you'll notice it [3:07] updating as I [3:08] go this is the mouse status line This is [3:11] online documentation to let you know [3:14] what your choices are at all times you [3:16] never have to leave the any [3:17] configuration to see what your choices [3:20] are for the mouse the mouse is very [3:22] important we have a three button Mouse [3:24] left middle and right buttons it's [3:26] becomes a small keyboard when you're [3:27] working with it it's very powerful this [3:36] way here we've created a simple Cube [3:39] couple of things to notice before we get [3:41] too deeply involved with this if we turn [3:43] off our visible axes we can see the cube [3:46] and look at it from all sides in three [3:48] space I'm moving around the cube the [3:50] cube is not moving I am moving if we [3:53] turn our visible axes on we can see that [3:57] we are moving around the cube the cube [3:59] is standing stable in relationship to [4:01] the world we do hidden surface removal [4:04] by default in other environments what [4:06] you would be seeing would be an object [4:08] that looked like this very difficult to [4:10] tell what's on the front and what's on [4:12] the back of such an [4:14] object as the complexity Factor raises [4:16] in an object becomes more and more [4:18] apparent there's need for doing hidden [4:20] surface [4:23] removal we program in lisp and not only [4:25] in lisp but we program an objectoriented [4:28] lisp the particular advantage and powers [4:30] to this way of programming the first of [4:32] which is that it's object oriented so [4:35] when we're working we can look at an [4:37] object and we can ask it things about it [4:38] we can query it for various things that [4:40] it can do here we selected the entire [4:44] polyhedrin and we now would like to go [4:47] and edit we can see we have quite a long [4:49] list of things we can do to edit this [4:51] entire [4:52] body as we move down we can also edit [4:56] the faces either singularly or [4:59] collectively on the [5:02] object we can edit the segments or the [5:06] edges of the [5:10] object and we can edit the point or [5:13] points of an [5:15] object here I'm moving it in X Y or [5:20] zspace controlling the three space [5:24] environment from the two space plane [5:26] with the [5:28] mouse let's build a little object very [5:31] quickly [5:32] here first we'll collect a series of [5:35] edges those that we can see now we'll [5:38] stop move around the [5:40] object collect the last [5:42] one we'll cut these into [5:54] thirds now we'll take and display all of [5:57] the vertices on the object and we can [5:59] see those vertices we've just created [6:02] we'll take the forward Edge there and [6:04] cut it into the [6:06] middle now we'll select the top [6:09] polygon and begin to cut that into three [6:17] pieces you'll notice that my mouse [6:20] appears on top of [6:23] the the last choice that I just made [6:26] which is cut so as I work I begin to [6:28] accelerate [6:31] because the system is configuring itself [6:33] to my working methods on the [6:38] fly now we'll pull the camera back we're [6:41] not moving the object during all these [6:45] operations we're moving the camera [6:47] around the object we'll extrude that [6:49] polygon along its normal which is a 90° [6:52] angle to the face scale it down now [6:56] we'll move it back in z [7:02] next we'll collect both of the other [7:05] triangles that we [7:11] created let's look at the object from [7:14] the front the side and the top now that [7:17] we're on the top we can watch those as [7:19] we extrude them [7:22] out then scale them down towards their [7:25] common midpoint [7:30] then move them using their element [7:32] normals as a [7:37] direction now we'll move them back in [7:41] Z and it should become apparent that [7:44] we're making a little [7:46] airplane in order to create the [7:50] fuselage let's take the forward polygon [7:53] and we'll extrude it along its [7:58] normal extrude it [8:03] again we'll scale that down to create [8:06] the nose [8:08] cone and we'll put a little Needle on [8:10] the front by extruding that last polygon [8:14] and then collapsing it to a [8:16] point to put some more Delta in the [8:19] wings let's take the leading points on [8:22] the wings Wing edges and move those [8:25] forward in z [8:29] now as we move around the object you can [8:32] see we've got a fairly good [8:35] representation of a little boxy [8:38] plane so in order to make it more [8:40] aerodynamically sound let's smooth it [8:42] off and we'll come back to smoothing [8:44] more [8:47] later so you can see how quick it is to [8:50] build an object in this environment [8:52] let's take a look at a couple of other [8:54] ways to create objects we have platonic [8:57] solids tetrahedrons octahedrons iOS [8:59] hedrin and then geometric Primitives [9:02] Cube cylinder sphere these can be made [9:04] with default parameters or with the [9:06] mouse anything that we do in our [9:08] environment interactively we can also do [9:10] with the numeric input here we'll create [9:13] a little [9:17] house first by encoding the [9:25] outline now we can encode in the [9:27] environment we can encode it external [9:29] data from from Architects drawings three [9:34] space drawings we can also input an [9:37] output data from catam ctia and IIs [9:40] formats [9:54] [Music] [10:13] [Music] [10:20] now that we've built half our little [10:21] house maybe we'd like a sloping Eve on [10:23] the end of it so let's grab it and then [10:27] we'll rotate it by selecting an axis [10:30] here on the bottom of the face it's a [10:33] very powerful aspect of the environment [10:35] that you can reach in and and treat [10:37] these objects in all sorts of different [10:39] ways and manners they're [10:42] very very malleable objects [11:06] now here if we'd like to move that [11:08] chimney we can again select the segment [11:10] and just slide it around on the [11:13] chimney till we get it where we like [11:16] it I'll just dissolve these segments [11:26] away and now we have our little house [11:30] once we've built the object that we [11:32] like we can animate it by shifting over [11:36] into our animation [11:40] program and what you're seeing here is [11:44] geometry across the top of the screen [11:46] and Dynamics across the bottom this a [11:49] very very important and Powerful feature [11:51] of the environment that you can have [11:53] both programs running simultaneously [11:55] that you're never locked out of one [11:56] you're never closed out of one program [11:58] in favor of another program program so [12:00] if we take a look down here there's a [12:01] few very important features on this [12:03] screen that we should take a look at [12:05] we've got time running from the left to [12:07] the right and transformation being [12:10] calculated from the top to the bottom [12:12] you can treat your numerical and [12:13] temporal data graphically is a key [12:16] factor to be able to treat these things [12:17] graphically let's take a look at our [12:19] first script which is a little thing [12:21] about a dome and we're going to fly out [12:23] the top of it as we look at this it's 10 [12:26] seconds long and we can see that as we [12:28] open it there's three branches on this [12:30] tree we have a dome we have the doors [12:34] and we have the camera on the bottom if [12:36] we open the Dome there's nothing going [12:38] on in it there's no curve type in there [12:41] because all we're doing is making it [12:42] visible when we open the doors we have a [12:44] left door and a right door if we take [12:47] that and zoom in on [12:48] it we open these [12:51] up we can see that there's three [12:53] segments going across in time for both [12:55] of them let's open them all [13:00] and we can see that there's a curve and [13:02] then they [13:03] hold so let's play this [13:08] back okay and we have the rumble as they [13:10] go taking off here we're flying out [13:13] through the [13:15] top boom in the symbolics environment we [13:18] record bitmap files of our script and [13:21] then we play those back there's many [13:23] advantages to working this way the [13:25] primary being the amount of analysis [13:27] that the animator can have you can can [13:29] always play it in real time you can play [13:30] it forward you can play it backwards you [13:32] can play it backwards and forwards we [13:34] can vary the speed anywhere from 10 [13:36] times its speed positive or negative if [13:39] we take a look at it here we're playing [13:41] it 300% of its normal speed the crowning [13:45] achievement of this is the ability to [13:47] scroll this with the mouse I can now [13:50] slide my hand to the left and slide my [13:52] hand to the right and move backwards and [13:54] forwards through the script and see [13:56] exactly what's happening at any given [13:58] point in time [14:01] here we've actually drawn in the curve [14:03] for the rumble of the engines as we go [14:06] out and by redrawing this we can change [14:09] that from a stochastic Rumble to a [14:12] drunken wobble by just drawing it across [14:15] the [14:16] screen if our drawing is not as as clean [14:19] as we would like we just take and smooth [14:21] it with a low pass filter and we can we [14:24] can smooth out any bumps that we don't [14:27] like here we have a bird that flies [14:30] forwards this is an animation that [14:32] exemplifies hierarchical structuring of [14:35] objects it has six pieces in the wing [14:37] each one structured into the last one if [14:41] we take a look at it on the color screen [14:42] we can see the individual pieces [14:45] intersecting each other and [14:46] interpenetrating each other part of the [14:48] beauty of Dynamics is that we can treat [14:51] our temporal data graphically so once I [14:54] have defined this single script for the [14:56] bird flying and its 2C page case we can [15:00] then take and insert that into a larger [15:03] script in this case the 28 second [15:05] sequence here for the New York City [15:08] flyth through if we take a look at the [15:11] bird section of the script we can see [15:14] that first the script was copied into [15:16] these repeated segments and then merely [15:18] stretched and squashed into position so [15:21] that we get the bird flying faster as it [15:23] flies down through the [15:25] city Beyond this form of Animation is a [15:27] form called displac ments we can work [15:31] with what are essentially smart objects [15:33] you can teach them how to breathe how to [15:35] walk how to talk there's single skin [15:37] objects single surface objects that can [15:39] be deformed or changed in any shape that [15:42] you like in this case we're seeing a [15:44] little guy walking this is when he just [15:47] learned how to walk he learns how to [15:49] walk right left right foot forward left [15:53] foot forward how to sit down how to [15:55] cross his arms and legs and go to sleep [15:58] and of course one person by thems might [16:00] go to sleep but if you get a bunch of [16:02] them what do they do they inevitably [16:05] party starting a little lower on the [16:07] taxonomic hierarchy we have a snake and [16:11] if we look very carefully at this snake [16:14] we'll notice particularly in the tail [16:16] section here the muscles are actually [16:19] Contracting through the [16:21] body okay with this script of the [16:23] doberman pincher as the dog runs he's a [16:26] single [16:27] surface he's a single skin on that [16:29] object the feet never hit the ground the [16:31] same way twice he's able to run [16:34] continuously and look around we can [16:37] layer on these displacements as deep as [16:39] we want to go if you want 300 layers of [16:42] displacements that's fine there's no [16:43] software [16:45] limitations and here we go with little [16:48] higher level things with a head talking [16:50] and we can see this head [16:54] speaking very simple slab structures [16:57] large polygonal structures we can [17:00] animate on a very high level of [17:02] abstraction here we teach it how to [17:04] speak with one phon or another and then [17:07] we build those into an accumulated [17:08] script we animate with the fewest number [17:11] of polygons we can then take and copy [17:13] this simple object and smooth it and [17:15] then drive a smooth object in this [17:19] animation as we go in and analyze [17:22] exactly what's going on here we see that [17:24] there are basically four things [17:26] happening in here we have the mouth [17:29] opening and closing we have the mouth [17:31] Corners pulling back we have a pout and [17:35] we have or a pursing of the lips and ooh [17:39] sound and we have the smile that comes [17:42] up at the end if we open all of these [17:46] up we can now play this back and as we [17:50] scroll it with the [17:51] mouse on The Top Line we have close open [17:56] close open close open we can see as we [18:01] go up this incline it opens here we have [18:05] the mouth Corners pulling [18:09] back the next line down we can see the [18:12] ooh sound coming [18:18] on and on the very bottom we can see the [18:25] smile moving over into [18:27] paint paint is Red from the left to the [18:30] right it's a tree structure and this is [18:32] the trunk of the tree and this is these [18:34] are the branches as we move up the green [18:38] column and the color mixing area are [18:40] stable areas these did not change as we [18:42] mve down through the various [18:45] menus we can begin at the top with [18:47] brushes we have air brushes blending [18:50] brushes cutout brushes diffusion round [18:53] and speckle brushes uh we can make and [18:55] save an unlimited number and kind of [18:57] brushes you can make a library of [18:59] brushes for client a client B client C [19:02] and then call them back up at any [19:04] particular time while keeping them uh [19:07] separate so here we have a simple black [19:10] line we can save [19:12] that we can change the mode of the brush [19:16] which is what's in the brush and how [19:19] it's applied to the surface from a [19:21] single color to an image it can paint an [19:25] image up through underneath it can paint [19:28] paint patterns tile it pick up other [19:31] things [19:33] um we can use blending brushes allow us [19:36] to get oil like [19:39] effects and here we can see we're [19:41] blending over the surface of this [19:46] canvas cutout brushes allow us to cut [19:49] things out and paste them up at will [19:51] with soft edges or [19:53] without diffusion brushes allow us to [19:56] diffuse sharp edges and to blur pixel [19:58] values one into the next these will [20:00] allow out of focusing effects it's a [20:03] very good compositing tool round brushes [20:06] um allow us to create round lines across [20:10] the screen and speckle brushes allow us [20:12] to create a variety of effects that [20:14] simulate chalk and uh chalk on paper [20:18] various paper [20:26] effects in shapes we can create circles [20:30] rectangles [20:32] polygons ellipses lines both spline [20:36] connected in separate and text text in [20:39] the symbolics environment is both [20:41] two-dimensional and three-dimensional [20:42] when you're working with it you can work [20:44] with it in paint and it's completely [20:46] two-dimensional but you can use the same [20:48] font in three dimensions extrude it and [20:50] play with it move it around in three [20:52] space [21:00] this First Column here after the shapes [21:03] themselves the First Column applies to [21:05] what's in the shape the second column [21:07] applies to how it's applied to the [21:08] surface so in this particular case we've [21:11] got a single color and we're applying it [21:13] as a as a solid across the [21:18] surface we can put a gradient inside of [21:20] there and change the opacity [21:30] Four Color gradients pallet [21:33] gradients we can recolor an image on the [21:36] screen or a structure on the [21:39] screen we can filter areas Mosaic them [21:42] brush [21:44] them call up images into and resize [21:47] images into shapes we can apply them [21:49] with gradients and opacity gradients [21:52] pallet gradients we can speckle on [21:55] things it's a very very wide range of [21:58] things you can do with shapes in the [22:00] miscellaneous file you can copy regions [22:02] around on the screen move them around on [22:05] the canvas reposition them cut them out [22:07] from one area and paste them up [22:09] somewhere [22:10] else cut them out from one area and [22:13] resize them somewhere [22:24] else we can apply grids to the surface [22:27] of the canvas [22:31] we have shadows drop Shadows for our [22:33] objects for our paint [22:35] objects we can shift regions on the [22:38] screen this is a particular benefit for [22:40] creating seamless mappings of texture [22:43] bump op and opacity Maps particularly [22:47] beneficial here that we can take an area [22:49] and shift it around on the screen paint [22:51] out the seams and then shift it back and [22:53] make a map out of it [23:00] inside of the paint system there's a [23:02] complete animation subset this allows us [23:05] to create everything from simple to very [23:08] complex forms of two-dimensional [23:09] animation and combine those with our [23:11] three-dimensional animation [23:14] system the paint system is a 32-bit [23:16] paint system 24 bits for RGB and eight [23:20] bits for the alpha or stencil Channel [23:22] depending upon how you'd like to use it [23:24] the stencil is uh 256 level of opacity [23:29] and this allows us to do all kinds of [23:32] very subtle and sophisticated [23:33] compositing the stencil can be created [23:36] any number of ways the first of which is [23:39] by painting it onto the surface of the [23:40] image secondly you can create a shape [23:43] with various gradients that could that [23:46] can be applied to the surface of the [23:47] object or the image the Third Way would [23:50] be to create a stencil based on either a [23:54] chroma key or an intensity [23:56] key and the intensity key keys can be [23:58] based on the red the green or the blue [24:00] channels for an intensity key based upon [24:03] the red Channel we'll notice that where [24:05] it's white it's 100% stencil we can set [24:09] it there and then we can adjust the [24:11] softness of the edge of that stencil the [24:13] red is showing us where there's no [24:14] stencil the white is where there's 100% [24:17] if we were to base it on Blue we'd get a [24:19] very different image here we we'd be [24:21] stenciling out the background here we [24:24] can base something on a chroma key so if [24:26] we'd like to be sure that we're getting [24:27] just skin we'll take an averaged color [24:30] of the skin type place it on our current [24:34] color bar line and now we can adjust the [24:36] hardness of that red there we're getting [24:39] pretty much all the flesh tone we can [24:41] adjust the softness of that and then [24:44] read that into our stencil in this case [24:47] we're dropping a red to Yellow gradient [24:51] over her and then by reversing the [24:54] stencil and flipping these colors over [24:57] and red doing it can very quickly create [25:00] posterizing effects all sorts of very [25:03] interesting graphic effects can be [25:05] achieved very quickly with this we'll be [25:07] covering render now render allows us to [25:10] take the three-dimensional information [25:12] the the geometry information the the [25:15] objects and to give them surface [25:17] characteristics and then get a picture [25:20] back from what we've based for where [25:22] we've placed the lights in the scene [25:24] what we've told the object to be whether [25:26] it's metal wood glass [25:29] uh concrete whatever and then by placing [25:33] all those parameters on the object and [25:34] placing it in the scene render will give [25:36] us a picture back and of course [25:38] sequential pictures are what give us [25:41] animation this is the render menu and [25:44] this is where we make choices that will [25:46] determine what our object looks like we [25:49] can do things with smooth shading and [25:52] Fong shading and nice highlights and [25:56] texture Maps bump Maps reflection Maps [25:59] opacity [26:01] maps all of these sorts of things to [26:03] give us a a beautiful simulated reality [26:06] we're quite proud of the fact that you [26:08] can have totally believable images in [26:10] the symbolic environment that are 100% [26:13] synthetics painted inside the [26:15] environment built inside the environment [26:17] rendered inside the environment with no [26:19] external data coming in except the hand [26:22] in the eye of the artist what we have [26:24] here is an artist tool let's look at [26:26] these dog images this is an image of the [26:29] dog in a very simple phase of its [26:31] geometric construction we take the [26:33] simple dog and then we smooth it off and [26:35] again to a higher level of complexity [26:38] the simple to the more complex dogs took [26:42] approximately a minute each to create [26:45] just by smoothing the dog off we didn't [26:47] have to go through and re-encode every [26:49] new Point here we have a very simple [26:51] rendering form on this just C gray [26:54] shading simple slab surfaces here we've [26:58] raised the level of polygonal complexity [27:00] of the dog and again we raise it higher [27:03] these are still off with faceted shading [27:05] it's still just a gray clay object the [27:08] next thing we can do is take and smooth [27:10] it off we've now got nice smooth [27:12] surfaces but it's still gray and rather [27:14] unappealing so let's apply a reflection [27:17] map to this and here's our smooth dog [27:21] made of [27:22] gold and this is the same image the same [27:25] dog but leaving the facet shading on [27:28] instead of the smooth shading on we can [27:31] also take the same dog and paint it onto [27:33] the screen with various forms this is [27:36] that combination of geometry and paint [27:38] we spoke of before for those of you who [27:41] don't like fireworks dogs we have the [27:44] soft terry cloth model the neon [27:48] model or the Halloween [27:52] model in conclusion we've seen that the [27:54] symbolics environment is composed of [27:56] four core products they are [27:59] geometry [28:01] Dynamics render and paint the [28:04] combination of these four products allow [28:06] you to create virtually anything that [28:08] you can imagine in conjunction with the [28:10] S record software you can output that [28:12] Vision to any video format worldwide [28:15] whether that's pal ntsc or [28:19] HDTV thanks very much for your [28:27] time [28:57] e e