syntopy.
← Tutorial guide

Notebook audit

Audit date: 16 October 2026. Source checkout: 4be76a6eb4c6aa7f3935ceac95606c7704105be9.

Scope and method

Inventoried the 78 existing notebooks under notebooks/, excluding checkpoint directories, before adding the new tutorials. Read notebook JSON, counted code cells/lines, scanned code for path/install/service patterns and inspected saved error outputs. Reviewed the local v0.9.86 API implementations and executed the replacement examples against pythonocc. The old notebooks were not all executed: this is a static legacy audit and a runtime-verified replacement sequence, not certification of the legacy collection.

The valid legacy notebooks contain 20,129 code lines. The invalid notebook is excluded from that line total. Automated flags overlap and identify review risks, not proof that an entire notebook is unusable:

  • 69 contain machine-specific path patterns.
  • 37 contain more than 150 code lines.
  • 31 contain package-installation commands or strings.
  • 9 contain saved error outputs.
  • 3 reference external service configuration.
  • 1 has invalid notebook JSON: ACADIA23_BuildingGenerator.ipynb, parser error at line 186, column 51.

For example, ACADIA23_BGR_TrainingValidationTesting.ipynb modifies sys.path, reads datasets from C:/Users/wassimj/..., and writes a trained model to that user's Desktop. Such examples need more than an import update to become portable beginner tutorials.

Curriculum decisions

The new entry point is tutorials/README.md, with one short, self-contained gateway notebook per agreed theme in the user's exact order. Examples use direct API calls, ordinary loops, small synthetic data and explicit checks. They avoid helper functions/classes, long benchmarks, downloaded datasets and in-notebook installation. The supplied exercises are optional and are not included in the execution guarantee.

All spatial graph creation uses TGraph, as requested. No new tutorial uses TopologicPy's legacy Graph class or Kuzu. Database coverage uses a local RDF/SPARQL store with a TGraph as its source. The PyG Data object is a tensor container converted from TGraph, rather than another spatial modelling API.

Legacy workshops, benchmarks, RAG prototypes, trained-model files and specialist demonstrations remain unchanged for reference. They are not presented as lessons in the new sequence. Retaining them also preserves original research material and existing links. A future deletion or archive migration can be considered separately.

The intended thematic mapping below is a filename-based triage aid; it is not an assertion that every notebook fits exclusively into one group. All rows have the same disposition: retain as legacy reference; use the new numbered tutorial as the beginner entry point. Root-folder non-notebook assets were left untouched; the new tutorials carry their own documented inputs.

Version-specific findings

Execution of early replacement drafts exposed two API issues in this checkout: the legacy Graph choice alias passes an unsupported method argument to its betweenness implementation, and the Kuzu convenience wrapper uses AS exists, rejected as a reserved identifier by Kuzu 0.11.3. These were observed during testing, not inferred from notebook names. Following the user's direction, both classes were removed from the replacement design, and no library-source workaround was introduced.

Energy model defaults resolve template/weather paths beneath the installed module, which do not match this checkout's asset location. Tutorial 14 supplies explicit paths to bundled copies and verifies the result. The IFC tutorial uses the current built-in importer and a 24-entity local STEP fixture. No IfcOpenShell dependency is needed for that notebook.

Only notebook code, sample inputs, setup documentation and verification support were added. No public library API was modified. See verification.md for execution results, exact environment and limits.

Original notebook inventory

Code line counts include comments and blank lines. Saved outputs were not counted as code. The malformed JSON file cannot be counted reliably.

Original notebookCode cellsCode linesSuggested themeStatic review flags
ACADIA23_BGR_TrainingValidationTesting.ipynb1473Graph Machine Learningmachine-specific paths
ACADIA23_BuildingGenerator.ipynb00Parametric Design and Optimisationinvalid notebook JSON
ACADIA23_Day1.ipynb1856Basicsmachine-specific paths; installs in notebook
ACADIA23_GML_D02_Topologicpy_Tutorial.ipynb1285Basicsmachine-specific paths; installs in notebook
ACADIA23_GraphCSVImport.ipynb453Data Exchange and Interoperabilitymachine-specific paths; installs in notebook
AdjacentVerticesByCompassDirection.ipynb470Topological Queries and Relationshipsmachine-specific paths
AlignVertices.ipynb8160Spatial and Geometric Analysismachine-specific paths; long example (>150 code lines)
ANN-new.ipynb1684Graph Machine Learningmachine-specific paths; installs in notebook
Betweenness_Centrality.ipynb1111Graphs and NetworksNo heuristic flags
Building_Tower.ipynb1388Parametric Design and Optimisationmachine-specific paths
BVH.ipynb253Spatial and Geometric Analysismachine-specific paths
Chessboard.ipynb7420Parametric Design and Optimisationmachine-specific paths; long example (>150 code lines)
Clustering.ipynb654Graph Machine Learningmachine-specific paths; installs in notebook
CombinatorialSubComponents.ipynb1190Topological Queries and Relationshipsmachine-specific paths
CSG.ipynb942Geometry and Constructionmachine-specific paths
DGL-Classification-CSV.ipynb1465Graph Machine Learningmachine-specific paths
DGL-Classification-DGCNN.ipynb1462Graph Machine Learningmachine-specific paths
Edge_Face_Metrics.ipynb136Spatial and Geometric Analysismachine-specific paths
EnergyModel.ipynb13169Energy Analysismachine-specific paths; installs in notebook; saved error output; long example (>150 code lines)
ExportToGLB.ipynb2643Data Exchange and Interoperabilitymachine-specific paths; installs in notebook; long example (>150 code lines)
FaceByOffsetArea.ipynb5203Spatial and Geometric Analysismachine-specific paths; installs in notebook; saved error output; long example (>150 code lines)
GA.ipynb4139Parametric Design and Optimisationmachine-specific paths; installs in notebook
GQL.ipynb29467Graph Databasesmachine-specific paths; installs in notebook; long example (>150 code lines)
Graph_Bridges_Cuts.ipynb3155Graphs and Networksmachine-specific paths; long example (>150 code lines)
Graph_Partition.ipynb2184Graphs and Networksmachine-specific paths; long example (>150 code lines)
Graph_TGraph_NetworkX_Benchmark.ipynb13661Graphs and Networksmachine-specific paths; installs in notebook; long example (>150 code lines)
GraphBooleans.ipynb4168Graphs and Networksmachine-specific paths; long example (>150 code lines)
GraphByIFCPath.ipynb984IFC and BIMmachine-specific paths
GraphGrammars.ipynb123Parametric Design and Optimisationmachine-specific paths
GraphIsomrphismMatching.ipynb12565Graphs and Networksmachine-specific paths; saved error output; long example (>150 code lines)
GraphRAG01.ipynb326Graph Databasesinstalls in notebook
GraphRAG02.ipynb9190Graph Databasesmachine-specific paths; installs in notebook; long example (>150 code lines)
GraphRAG03.ipynb3320Graph Databasesmachine-specific paths; long example (>150 code lines)
GraphRAGTopologicPy_POC-3_Claude.ipynb18921Graph Databasesmachine-specific paths; long example (>150 code lines); external service/configuration
GraphViz.ipynb9196Visualisation and Communicationmachine-specific paths; long example (>150 code lines)
IFC4-RV-Exporter.ipynb141679IFC and BIMmachine-specific paths; installs in notebook; long example (>150 code lines)
IFC_Explainable_Semantic_Building_Graph_Tutorial.ipynb20850IFC and BIMmachine-specific paths; saved error output; long example (>150 code lines)
IFC_Healing_Semantic_Relationships.ipynb11189IFC and BIMmachine-specific paths; installs in notebook; long example (>150 code lines)
IFC_SpatialRelationshipsGraph.ipynb1286IFC and BIMmachine-specific paths; installs in notebook
import_HBJSON.ipynb554Energy Analysismachine-specific paths; installs in notebook
Interpolation.ipynb853Spatial and Geometric Analysismachine-specific paths
Isovist_Metrics.fixed.ipynb3153Space Syntax Analysismachine-specific paths; long example (>150 code lines)
Isovist_Metrics.ipynb3153Space Syntax Analysismachine-specific paths; long example (>150 code lines)
Kuzu.ipynb15100Graph Databasesmachine-specific paths; installs in notebook
LineGraph.ipynb171144Graphs and Networksmachine-specific paths; saved error output; long example (>150 code lines)
MEP.ipynb466IFC and BIMmachine-specific paths
MEP01.ipynb10156IFC and BIMmachine-specific paths; long example (>150 code lines)
MEP02.ipynb460IFC and BIMmachine-specific paths
mesh_plot.ipynb350Meshing and Discretisationmachine-specific paths
MSD.ipynb9235Space Syntax Analysismachine-specific paths; installs in notebook; long example (>150 code lines)
MSD02.ipynb11433Space Syntax Analysismachine-specific paths; installs in notebook; long example (>150 code lines)
Neo4j.ipynb16213Graph Databasesmachine-specific paths; long example (>150 code lines); external service/configuration
NEO4J_House_Export.ipynb11435Graph Databasesmachine-specific paths; installs in notebook; saved error output; long example (>150 code lines); external service/configuration
Outposts_Graph.ipynb1066Graphs and Networksmachine-specific paths
pagerank.ipynb1071Graphs and Networksmachine-specific paths
PDF_Import.ipynb361Data Exchange and Interoperabilitymachine-specific paths
PrincipalAxis_CanonicalMatrix.ipynb669Spatial and Geometric Analysismachine-specific paths
Provenance.ipynb1546Dictionaries and Semantic Datalong example (>150 code lines)
PyG-new.ipynb17117Graph Machine Learningmachine-specific paths; installs in notebook
PyG_BGR_Classification.ipynb14108Graph Machine Learningmachine-specific paths
PythonOCC_benchmark_01.ipynb1768Basicslong example (>150 code lines)
Pyvis.ipynb947Visualisation and Communicationmachine-specific paths; installs in notebook
QuotientGraph.ipynb263Graphs and Networksmachine-specific paths
RDF_BOT_Export.ipynb12465Graph Databasesmachine-specific paths; installs in notebook; long example (>150 code lines)
RDF_BOT_Import.ipynb1061Graph Databasesmachine-specific paths
Roof.ipynb327Geometry and ConstructionNo heuristic flags
Semantic_MEP_Space_Coordination_Reasoner.ipynb15780IFC and BIMmachine-specific paths; long example (>150 code lines)
ShapeGrammar_WithProvenance_Tutorial.ipynb32396Parametric Design and Optimisationlong example (>150 code lines)
ShellByDisjointFaces.ipynb270Geometry and Constructionmachine-specific paths; installs in notebook
Shortest_Paths_With_Capacities.ipynb141864Graphs and Networksmachine-specific paths; installs in notebook; long example (>150 code lines)
Space_Syntax_Gallery.ipynb21316Space Syntax Analysislong example (>150 code lines)
Space_Syntax_Gallery_2.ipynb22318Space Syntax Analysissaved error output; long example (>150 code lines)
StreetNetworkAnalysis.ipynb15269Space Syntax Analysismachine-specific paths; installs in notebook; long example (>150 code lines)
SubgraphMatching.ipynb6112Graphs and Networksmachine-specific paths
TopologicPy_Reasoner_Demo.ipynb10105IFC and BIMmachine-specific paths; installs in notebook
Unsupervised_Learning.ipynb38271Graph Machine Learningmachine-specific paths; installs in notebook; saved error output; long example (>150 code lines)
WireByHoleArea.ipynb5228Spatial and Geometric Analysismachine-specific paths; installs in notebook; saved error output; long example (>150 code lines)
WireByOffset_VariableOffsets.ipynb6106Spatial and Geometric Analysismachine-specific paths; installs in notebook