Skip to content

peterdoyle1717/primegen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

primegen

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.

What this repo does

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 for prime(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.

Quick start

make
make all VMAX=30
make status

Requirements

  • C compiler
  • GNU parallel
  • python3
  • gzip
  • sort

Main targets

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

Main parameters

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.

Output format

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.

Repository layout

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)

Notes on terminology

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.

What is and is not claimed

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

Acknowledgements / context

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.

Provenance

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.

License

MIT. See LICENSE.

Releases

No releases published

Packages

 
 
 

Contributors

Languages