Generate prime 6-nets (max-degree-6 sphere triangulations) by recurrence.
A 6-net is a triangulation of the sphere with maximum vertex degree at most 6. In the neoplatonic project these are the combinatorial types of interest, but this repository is about the combinatorics: generation, canonical naming, and recurrence, not geometric realization.
A 6-net is prime here if it has no degree-3 vertex and is not a stack of octahedra. Every non-prime is regarded as a connected sum of primes over a face.
The working recurrence is
prime(v) = grow(prime(v-1)) ∪ seed(v), v ≥ 6
with base cases
prime(4) = {tetrahedron}, prime(5) = ∅.
The grow step inserts a vertex into each legal edge, and the seed(v) terms come from fullerene duals generated by buckygen, filtered to maximum degree 6.
The generated objects are written as canonical CLERS names, one per line, sorted and deduplicated.
This repository provides a small command-line pipeline for generating these prime 6-nets by recurrence:
- generate fullerene-dual seeds with
buckygen - convert them to face lists
- canonicalize them with a CLERS namer
- grow
prime(v-1)to obtain candidates forprime(v) - merge, sort, deduplicate, and write compressed output files
The emphasis is on a transparent, hackable enumeration pipeline rather than a polished end-user package.
make
make all VMAX=30
make status
- C compiler
- GNU parallel
- python3
- gzip
- sort
make tools build buckygen, clers_name, grow_step
make seeds generate data/seed/{v}.txt.gz
make primes generate data/prime/{v}.txt.gz
make all seeds + primes
make status show what exists
VMAX=30
JOBS=80
NICE=19
SHARDS_SEED=800
SHARDS_GROW=2000
These are ordinary make variables and can be overridden on the command line.
Seed and prime files are gzip-compressed text files. Each line is one canonical CLERS name.
Current layout:
data/seed/{v}.txt.gz
data/prime/{v}.txt.gz
These generated files are intentionally gitignored.
src/
buckygen.c fullerene generator source
clers_name.c canonical CLERS namer
grow_step.c legal edge-insertion step
plantri_to_poly planar_code -> face-list converter
bin/ compiled tools (gitignored)
data/ generated data (gitignored)
run/ scratch and logs (gitignored)
This README uses standard graph/triangulation language first.
- “6-net” = triangulation of the sphere with maximum degree at most 6
- “prime” = no degree-3 vertex and not a stack of octahedra
- “seed” = fullerene-dual input, filtered to maximum degree 6
- “CLERS name” = canonical traversal name used here for storage and deduplication
A standalone reference implementation of CLERS encode/decode and canonical naming is in the companion repo at https://github.com/peterdoyle1717/clers.
Within the broader neoplatonic project, these 6-nets are the combinatorial types underlying the geometric realizations.
This repository is a generation pipeline.
It does claim:
- a concrete recurrence-based workflow
- canonical naming for deduplication
- reproducible generation from the supplied tools and Make targets
It does not claim, in the README alone:
- a proof here of every mathematical assertion in the project
- that generated data files are checked into the repository
- that all downstream geometric questions are resolved by this code
The seed side of the pipeline uses buckygen and fullerene-dual generation ideas associated with Brinkmann, Goedgebeur, and McKay. The canonical naming side uses CLERS-style traversal coding in the Edgebreaker tradition.
This repository is a project tool: small, direct, and intended to be read.
The code and documentation in this repository were drafted primarily with Claude Code under the author's direction, with additional advice, review, and supervision from ChatGPT.
MIT. See LICENSE.