The Regina 7.4 Handbook

Benjamin Burton

Revision 7.4 (2025-08-29)

Both Regina and this handbook are licensed under the terms of the GNU General Public License.

Regina is a software package for 3-manifold and 4-manifold topologists, with a focus on triangulations, knots and links, normal surfaces, and angle structures. For 3-manifolds, it includes high-level tasks such as 3-sphere and unknot recognition, connected sum decomposition and Hakenness testing, comes with a rich database of census manifolds, and incorporates the SnapPea kernel for working with hyperbolic manifolds. For 4-manifolds, it offers a range of combinatorial and algebraic tools, plus support for normal hypersurfaces. For knots and links, Regina can perform combinatorial manipulation, compute knot polynomials, and work with several import/export formats. Regina comes with a full graphical user interface, as well as Python bindings and a low-level C++ programming interface.

Tip: You can also browse the alphabetical index of tasks.


Table of Contents

1. Introduction
Getting Started
What does Regina do?
3-Manifold Triangulations
4-Manifold Triangulations
Higher Dimensions
Knots and Links
Census Creation and Lookup
Normal Surfaces and Hypersurfaces
Angle Structures
Splitting Surfaces
Scripting
Interfaces
Documentation
Data Files
Important Changes in Regina 7.0
A new, more flexible file format
Dimensions 9–15 removed by default
Python is a first-class citizen
C++ embraces modern standards and value semantics
TONS removed temporarily
Genealogy
Citing Regina
Who is Regina?
2. Working with Packets
The Packet Tree
Different Packet Types
Container Packets
2-Manifold Triangulations
3-Manifold Triangulations
SnapPea Triangulations
4-Manifold Triangulations
Higher-Dimensional Triangulations
Knots and Links
Normal Surface Lists
Normal Hypersurface Lists
Angle Structure Lists
Surface Filters
Text Packets
Script Packets
Attachments
General Operations on Packets
Creating New Packets
Cloning Packets
Renaming Packets
Deleting Packets and Subtrees
Moving Around the Tree
3. Triangulations
Creation
Empty Triangulations
Example Triangulations
Isomorphism Signatures
Dehydration Strings (3-manifolds only)
Splitting Surface Signatures (3-manifolds only)
Orientable and Non-Orientable Surfaces (2-manifolds only)
Layered Lens Spaces (3-manifolds only)
Seifert Fibred Spaces (3-manifolds only)
Layered Solid Tori (3-manifolds only)
Orientable Handlebodies (3-manifolds only)
I-Bundles, S1-Bundles, and Cones (4-manifolds only)
Doubling Constructions (All Dimensions)
Importing Triangulations
Creating a Census
Analysis
Identifying the Manifold (2-D and 3-D)
Validity, Orientability and Other Basic Properties (All Dimensions)
Viewing Facet Gluings (All Dimensions)
Skeletal Information (All Dimensions)
Algebraic Invariants (3-D and 4-D)
Combinatorial Composition (3-D and 4-D)
High-Level Recognition Routines (3-D)
SnapPea Calculations (3-D)
Decomposition (All Dimensions)
Triangulating Vertex Links (3-D and 4-D)
Triangulating Boundary Components (3-D and 4-D)
Modification
Editing Gluings (All Dimensions)
Automatic Simplification (3-D and 4-D)
Manual Simplification: Elementary Moves (All Dimensions)
Improving Treewidth (3-D)
0-Efficiency (3-D)
Truncating Vertices (3-D and 4-D)
Converting Real to Ideal Boundaries (3-D and 4-D)
Subdivision (All Dimensions)
Orienting and Reflecting Triangulations (All Dimensions)
Puncturing (3-D)
Drilling Edges (3-D)
Building Connected Sums (3-D)
Building Disjoint Unions (All Dimensions)
Simplex and Facet Locks
Adding and Removing Individual Locks
Viewing Locks
Saving Locks
4. SnapPea Triangulations
Creation
Converting from a Regina Triangulation
Converting from a Knot or Link
New SnapPea Triangulations
Importing Triangulations
Analysis and Modification
Volume, Solution Type and Other Basic Properties
Cusps, Fillings and Tetrahedron Shapes
Homology and Fundamental Group
Retriangulation
Exporting to Other Formats
5. Normal Surfaces and Hypersurfaces
Enumerating Normal Surfaces and Hypersurfaces
Analysis
Viewing the Triangulation
Summary of (Hyper)surfaces
Details of Individual (Hyper)surfaces
Original Matching Equations
Compatibility Between (Hyper)surfaces
Cutting Along and Crushing Surfaces (3-D)
Triangulating Hypersurfaces (4-D)
Filtering Surfaces (3-D)
Creating Filters
Filtering by Surface Properties
Combining Several Filters
6. Angle Structures
Strict Angle Structures
Enumerating Angle Structures
Analysis
Viewing the Triangulation
Details of Individual Angle Structures
7. Knots and Links
Creation
Example Knots and Links
Text Codes
Torus Links
Whitehead Doubles
Parallel Cables
Analysis
Crossings and Components
Polynomial Invariants
Algebraic Invariants
Text Codes
Associated Graphs
Link Complements
Decomposition
Modification
Editing Crossings
Automatic Simplification
Improving Treewidth
Reidemeister Moves
Reflection, Rotation and Reversal
Making a Link Alternating
Self Framing
Building Composite Links
Building Disjoint Unions
8. Importing and Exporting Data
Importing
Regina Data Files
SnapPea Triangulations
Orb / Casson Triangulations
Isomorphism / Knot Signature Lists
Dehydrated Triangulation Lists
Python Scripts
Attachments
Exporting
Regina Data Files
SnapPea Triangulations
3-Manifold Recogniser Triangulations
Spreadsheet-Readable (CSV) Surface Lists
Python Scripts
9. Python Scripting
Starting a Python Session
Graphical Python Consoles
Command-Line Sessions
Script Packets
Accessing Regina from Python
Automatic Imports
API Documentation
Inline Documentation
Talking with SnapPy
Sample Python Sessions
Working with a triangulation
Working with a packet tree
Reporting progress of long operations
10. Configuration
General Options
Python Options
Tools Options
11. Compiling Regina Into a C++ Project
Installing the Development Files
Compiler and Linker Flags
Using a Makefile
Passing Flags to gcc
API Documentation
12. Contributing to Regina
13. Troubleshooting and FAQ
14. Bug Tracking and Release Announcements
A. Command Line: Main Applications
regina-gui - Regina's graphical user interface
regina-python - Regina's command-line Python interface
B. Command Line: Specialised Utilities
censuslookup - Search for triangulations in Regina's census databases
katie - Triangulate a 3-manifold or 4-manifold from a decorated link
regconcat - Combine several Regina data files
regconvert - Convert between different Regina file formats
regfiledump - Dump the contents of a Regina data file
regfiletype - Identify the formats of Regina data files
retriangulate - Exhaustively search through triangulations or knot/link diagrams using local moves
sigcensus - Form a census of splitting surface signatures
tricensus - Form a census of triangulations
trisetcmp - Compare triangulations between two Regina data files
C. Command Line: Compiling and Linking
regina-engine-config - Get compiler and linker flags to build software against Regina
regina-helper - Helper utility for working with a Regina installation
D. Version History
E. Authors and License
Acknowledgements
License Details
Citation
Copying and Modification
External Software
Index
Bibliography