POINTS

curve-first 3D modeling, for beginners

9-bit

A 3D modeling room for beginning design students. One curve, three complexity levels, and a surface that rebuilds while you drag. It descends from ALYUS next door - modern math under period chrome.

Runs in any modern browser, nothing to install or sign into, though it will add itself to your home screen and work offline if you ask it to. It works down to a phone, where a tab switcher hands either the curve or the 3D view the whole screen. Drag the wet-cyan anchors to reshape the profile and the surface rebuilds under your thumb. It also runs natively on a 25-year-old Mac, which is further down this page.

the network operation, auto-orbiting, exported from the app

Points is a teaching tool. A student draws one Bézier curve in the left view and watches a surface appear in the right view, revolved or extruded or swept or lofted or built as a curve network, depending on which operation is set. The 3D view orbits on its own so nobody has to learn pan, orbit and dolly before they can see their own form. A click-and-drag tilts the camera when they want a different angle.

Everything else on screen is tuned to recede. The dithered field, the period-amber handles and the workstation-green chrome all sit back a step, so the wet cyan-and-magenta line in the middle of the canvas is the only place attention has anywhere to go. That is the pedagogy as much as the look. A curve is enough.

The math is cubic Bézier - the same pen-tool curve any design student has already dragged a handle on - with none of the NURBS apparatus of knots and weights sitting on top of it. Add anchors with + PT, take them away with − PT, drag the handles, switch the operation, watch it rebuild. When it looks right it exports as a real quad-mesh OBJ.

five operations

Each operation takes one or more Bézier curves and turns them into a quad surface, a uniform u,v grid that exports as real quads - not triangles. Any curve closes into a loop with one click, and the caps stop being emitted where there is no longer an open end to cap.

  • revolveSweeps the profile around the vertical axis. Draw half a vase, watch it spin into a vase. A periodic profile gives you a torus instead.
  • extrudePulls the profile straight back along the depth axis. The simplest flat-to-solid move there is, and the one everybody already has a mental model for. A periodic profile gives a closed tube.
  • sweepRuns a cross-section along a rail. One rail is the classic sweep, a second rail stretches the section between the two, and more sections blend down the length so it can go thin to fat and back. Sections and rails each get their own tabs with + / − to add and remove.
  • loftInterpolates through a list of cross-sections. Two profiles is the classic A-to-B loft, and more than two makes the surface flow through each in turn. The profiles do not have to match, they get sampled onto a common parameterization first.
  • networkSeveral cross-section curves blended across one or more rail paths, in the spirit of Rhino's NetworkSrf but built from flat-drawn curves. Add curves in either direction, then sculpt the result with CARDINAL.

Every operation supports live thicken - a slider that gives the surface material thickness. The offset runs along the true surface normal at every vertex so the wall stays perpendicular, and the open ends cap themselves. A second smooth / fillet slider relaxes the mesh, which is a global fillet you can dial until the sharp edges round off. What comes out is a closed shell, ready for subdivision modeling or a printer.

A handful of worked presets covers all of them - Face, Banana, Cabriole leg, Boat hull and Leaf. Each one starts as straight lines and animates into its form, so a student watches the construction happen before touching anything.

Anchors come in two flavors. SMOOTH keeps the tangent handles antiparallel so the curve flows through, CORNER zeroes them so it cusps. Two tool buttons switch a clicked anchor either way, which matters most at a PERIODIC join, where the closure starts life as a straight chord and usually wants smoothing.

Export writes real quad faces (f a b c d), not split triangles. Filenames roll off a wordbank that brackets the era this app is arguing with, new wave electronics on one side and observational astronomy on the other.1

datatrace

The Datatrace menu drops a real-world dataset straight into the active curve. Each one arrives with smooth Catmull-Rom-to-Bézier handles already fitted, and each one is editable the second it lands.2

  • EKG, one heartbeatThe Lead II PQRST waveform. Open curve. The shape every designer already recognizes without being told.
  • Keeling Curve, 2024Monthly CO₂ from Mauna Loa. Open curve. The climate sawtooth, turned into geometry you can revolve.
  • Analemma, one yearThe position of the sun at noon over a year. A closed figure-8, which revolves into a lopsided and rather good vase.
  • F-hole, violin topStylized after the Stradivari templates. Closed curve. An Italian baroque profile that luthiers still draft by hand.
  • Humpback moan, one callThe envelope of a single call. Open curve, and the only one here drawn by an animal.
Close-up of the EKG datatrace loaded in the curve editor - wet cyan anchors trace the PQRST waveform, period-amber handles, dim-blue axis line down the middle
the EKG curve, which is where the 9th bit lives

five ways to look at it

The 3D view has five render modes. Each one asks a different question about the surface.

  • shadedSolid phong + a dim quad-edge overlay. Default. The form, lit.
  • glossyA reflective material under a phosphor studio environment. Read the highlights running over the surface the way you would judge a clay maquette.
  • wireQuad-edge wireframe only. The actual quad topology, no triangulation.
  • triTriangulated wireframe with the diagonals showing. This is how the GPU splits every quad in two behind your back.
  • zebraDiagonal phosphor stripes from a custom shader, which is the old Alias zebra-analysis trick. Continuity reads at a glance: stripes wrap smoothly across a tangent join and break across a cusp.

CARDINAL is the on-surface sculpt - a toggle, not a sixth mode. Switch it on over any render and a grid of wet cyan-and-magenta dots settles onto the surface, spaced independently of the mesh underneath. Drag one and the surface pushes or pulls along its local normal, falling off into the neighbors. Shift-click gathers several and moves them together. Two sliders set how many dots there are, and changing that number does not throw away the sculpt you already made.

Zebra render mode on a deformed surface - diagonal phosphor-green stripes wrap around a bulge in the vase, the dark bands subtly tinted by surface facing so depth reads even inside the dark stripe
zebra mode, reading continuity
Full app view - EKG datatrace loaded on the left, revolved EKG on the right with cardinal-point grid visible on the surface
the EKG revolved, with the cardinal grid on
Wireframe render mode showing the underlying quad mesh of the same revolved EKG surface
wire mode, the actual quad mesh

animate

Alias/1 was an animation system as much as it was a modeler, and the Animate menu carries that forward. Set keyframes that capture the whole editable state, curves and periodic flags and cardinal sculpt together, then play to loop between them. Switching operation clears the keys, and mismatched topology throws an error rather than guessing what you meant.

Export Video hands back an .mp4 that QuickTime opens without converting anything, at three seconds, ten seconds or a full cycle. In 1985 the same gesture drove a film recorder writing 35 mm - same move, different century.

points-astrometry-revolve-anim.mp4, one cycle, exported from the app
points-vega-network-anim.mp4, the network operation, exported from the app

NDZ, the other paradigm

Two ways to author now live in the same room. CURVE is everything above: draw the profile, the surface follows. NDZ is a node-and-wire graph that gets there backwards - you wire it, it settles. You wire modules together, profile into revolve into divide into attractor into instance, and the whole chain re-settles the instant any value moves. There is no run button. The CURVE | NDZ switch moves between them, and it is the same kernel underneath, so a Revolve node is the surface builder and the OBJ that leaves is the same real quads.

The NDZ node graph in Points - a chain of nodes (profile, revolve, divide surface, attractor, instance) on the left wired together, a stats readout showing 5 nodes, 6 wires, 9216 quads, 364 instances, and on the right a glossy revolved vase form with hundreds of black beaded shapes standing off its surface in columns, sized and placed by the attractor field
a revolve in NDZ, divided and populated off an attractor field

The graph stages two ideas the direct tools cannot. First the field: an Attractor is a thing in space with a visible reach, every divided point reads its own value off it, and every instance is sized and colored by what it read. Drag the attractor and the whole population breathes. Second, vectors come free. Divide hands back the surface normal at every point, so shapes stand off the surface without anyone building a vector by hand, and an Aim node swings the whole field to face a target.

The palette reads top to bottom, construct above and extract below. Drag a header to move a node, drag a port into a port to wire it, click a wire to cut it. Click any node and the geometry it controls lights up cyan in the 3D view. It is a sibling to the node room in Classicery next door, the same node-and-wire idea pointed at real surfaces.

the 9-bit conceit

points is dressed in 8-bit chrome - a phosphor-dark workstation palette, bitmap type, dithered shading and not one gradient. Period-correct to within about half a decade of the IRIS workstations that ran the original Alias/1. Those 8 bits are the museum.

The 9th bit is the live curve. While it is being edited it glows full-saturation cyan-and-magenta against the period palette, anchors pulsing wet under a halo. It is the only place the present day shows up on screen.

The conceit is a teaching move as much as an aesthetic one. The curve is the thing the student is supposed to be thinking about, so the chrome recedes into period dither and the curve glows wet cyan and magenta.

the backports

The 9-bit conceit wanted to be more than a costume, so points got ported backward, off the web entirely and onto the hardware the look is borrowed from. It runs as a native application on a clamshell iBook G3 - once under Mac OS X 10.4 Tiger, and once in the Classic Mac OS underneath it.

points running natively on Mac OS X Tiger on a PowerPC iBook - a curve editor on the left, a green-wireframe revolve surface in an OpenGL viewport on the right, with the Tiger Aqua menu bar and Dock visible
Tiger on PowerPC, Cocoa and OpenGL, drawn on the actual GPU
points running as a native Classic Mac OS application - a curve editor, a wireframe revolve, and a floating Controls palette with Revolve / Extrude radio buttons, drawn in Color QuickDraw
Classic Mac OS, Color QuickDraw, a floating Controls palette

The Tiger build is a real native app, a Cocoa window around an OpenGL viewport, so the surface is drawn on the GPU rather than interpreted in software. The Classic build is a true Toolbox application with a floating Controls palette and menu-driven everything, the way a 1999 program was meant to be driven. Neither one is something you would download. They are built for hardware most people no longer have, and they exist to prove the curve survives the trip back.

the rooms next door

points sits between two adjacent rooms in the suite.

ALYUS, the museum

The Classicery clean-room recreation of Alias/1, a 1985 surfacing program that shipped on the IRIS workstations. Cardinal-spline profile editor, four-viewport canvas, and paint and animation and rendering and a film recorder all in the one suite. points borrows the chrome and the curve-first instinct, ALYUS keeps the period interface honest.

visit ALYUS →

Plug Innery, the NURBS continuation

A small suite of plugins for Rhino - which is where the Alias surfacing approach ended up. Where points teaches with cubic Bézier in a browser tab, Plug Innery does production NURBS work for somebody who already knows the math.

visit Plug Innery →

Three rooms and a hallway. The student walks it.

1 New wave electronics on one side: modular, oscillator, vocoder, telex, lacquer, mirrorball, vinyl, polyester. Observational astronomy on the other: syzygy, parallax, perihelion, ephemeris, pulsar, andromeda, vega, betelgeuse, chondrite, planetoid, with messier, herschel, hubble, kepler, cassini and schiaparelli along to do the observing. Nobody asked for this.

2 A dozen to twenty anchors apiece, which is few enough to keep editing by hand and enough to keep the shape honest. The heartbeat is a Lead II trace, the CO₂ is the Mauna Loa monthly record, the analemma is solar noon over a year, the f-hole comes off the Stradivari templates, and the whale is the envelope of one call from the 1971 humpback recordings.