Ulisse Dini’s surface is a pseudosphere, the trumpet-shaped surface of constant negative curvature, twisted round into a helix. It comes straight from three formulas in two parameters: u goes round the axis and v runs from the narrow tip to the flared rim.

A blue spiralling trumpet-like surface winding down to a sharp tip

Reference: choose Examples  Dini’s surface on the canvas toolbar to load the finished definition.

Build it

  1. Place six sliders: Turns: 2 (1 – 4) with Decimals 1, Twist: 0.2 (0 – 0.6) with Decimals 2, Grid around: 80 (30 – 120) and Grid along: 16 (6 – 30) with Decimals 0, Neck: 0.15 (0.05 – 0.6) with Decimals 2, and Size: 6 (2 – 15).

  2. Place an Expression (Maths), 2*pi*x, with Turns, and a Range (Maths), u, from 0 to it with Grid around → N.

  3. Place a Range, v, from Neck to 1.5 with Grid along → N.

  4. Place three Expression components, each with u → x and v → y, with Graft on y:

    • cos(x)*sin(y)

    • sin(x)*sin(y)

    • cos(y) + log(tan(y/2)) + z*x, with Twist → z.

  5. Place a Construct Point (Vector) with the three, an Addition (Maths), Grid around + 1, and a Surface From Points (Surface), Dini surface, with Flatten on P and the row length → U.

  6. Place a Scale (Transform) with Size → F, and turn Preview off on the points and the unscaled surface.

The Dini’s surface definition on the canvas
Figure 1. The finished definition
The red preview of Dini’s surface
Figure 2. The preview in FreeCAD’s 3D view

What is happening

Without the z*x term (Twist 0) the formulas give the pseudosphere: circles of radius sin v stacked at heights cos v + ln tan(v/2), flaring from a cusp to a rim. Adding Twist × u lifts each point in proportion to how far round it is, so going once round climbs 2π × Twist. The trumpet becomes a helix, and it overlaps itself after each turn. With a = 1, Dini’s surface keeps a constant Gaussian curvature of −1/(1 + Twist²) everywhere.

The tip, v → 0, runs off to minus infinity, so Neck stops the grid short of it. Grafting v makes one row of points per value of v, the layout Surface From Points expects. The geometry tests check that the surface passes through the formula’s points. The surface updates in about half a second.

Things to try

  • Set Twist to 0 for the plain pseudosphere (only one turn’s worth is visible).

  • Set Turns to 4 and Twist to 0.1 for a tightly wound shell.

  • Lower Neck to 0.05 for a longer, sharper spike.