October 28, 2025
Description
GeoCore is a 3D-printable building system for kids that turns simple cardboard tubes into a hands-on geometry set. Print the colourful hubs, cut rods (or reuse cardboard cores), and snap them together to make cubes, domes, bridges, and more. Each connector is designed to teach real 3D shapes, such as triangles, pentagons, and polyhedra, whilst staying strong, reusable and easy to print. Perfect for classrooms, STEM clubs, or home projects, GeoCore helps kids explore design, structure, and creativity, one printed piece at a time.
I came across hundreds of cardboard cores, and rather than throwing them away, I designed several types of hubs to connect them together.
If you have cardboard cores with an inner diameter of 25 mm, all you need to do is 3D print the hubs, supplied in STL format.
You can also automatically generate custom-sized HUBS and RODS with a Python script, see here for detailed instructions.
With these printed hubs and a handful of cardboard cores, you can build a wide range of 3D structures, from simple cubes and domes to complex geodesic frames and lattices. Each hub type provides a different connection geometry.
(Hubs arranged in order, top-left to bottom-right.)
straight_2.stl — Inline Coupler (top 1, pink)Connects two cores end-to-end in a straight line.
Extend a rods’s length to build long beams and spans.
elbow_90_2.stl — Right-Angle Elbow (top 2, yellow)Joins two cores at a 90° angle.
Useful for corners, mazes, or rectangular frames.
corner_cube_3.stl — 3-Way Orthogonal Corner (top 3, green)Connectors in the +X, +Y, and +Z directions.
Build cubes, boxes, and scaffolds.
tetra_3.stl — 3-Way ~60° Connector (top 4)Three pegs meet at tetrahedral angles (≈60°).
Create tetrahedra, triangular lattices, or trusses.
octa_4.stl — 4-Way Orthogonal Pair Connector (mid 1, orange)Four pegs arranged in perpendicular pairs.
Build octahedra, space frames, or octet-truss modules.
icosa_5.stl — 5-Way Icosahedral Vertex (mid 2, teal)Five pegs radiate evenly from the center at about 63.43° between each.
Assemble domes, geodesic spheres, and high-strength frameworks.
dodeca_3.stl — 3-Way (Dodeca) (mid 3, light purple)Three pegs meet at 108°, the golden-ratio angle of pentagons.
Construct pentagons, decagons, and φ-based geometries.
cubic_6.stl — 6-Way Cartesian Connector (center, blue)Six pegs aligned along ±X, ±Y, ±Z axes.
Build voxel grids, towers, bridges, and frame structures.
trigonal_planar_3.stl — 3-Way Planar (bottom 1, yellow-green)Three pegs in a single plane, equally spaced at 120°.
Use for hexagonal or triangular tiling patterns and Y-junctions.
hex_planar_6.stl — 6-Way Planar (bottom 2, blue)Six coplanar pegs forming a hexagon (60° spacing).
Use to create honeycomb sheets or dense triangular meshes.
tetrahedral_4.stl — 4-Way Regular Tetrahedral (bottom 3, green)Four pegs arranged at 109.47°, matching tetrahedral geometry.
Used for diamond-like lattices, rigid trusses, or alternating with octa_4 for octet structures.(Hubs arranged in order, top-left to bottom-right.)
Printed Hubs
I used SuperSlicer (supports needed, 0.3 draft mode) and a Prusa i3 MK3S+ with generic PLA.
Hubs with cardboard cores
Print rods if you need them
Or use cardboard cores
I started with a box of cardboard cores. They are 102 mm long, with an inner diameter of 25 mm and outer diameter of 30 mm.
Ideally, we need a few different lengths. Initially, I didn’t plan to use multiple lengths, but they are essential to create all the different shapes.
√2 for square diagonals: In a square with side length L, the diagonal measures L·√2, so a √2·L rod fits perfectly across a square’s corner-to-corner span.
φ for pentagon diagonals: In a regular pentagon with side length L, the long diagonal is φ·L (golden ratio), so a φ·L rod matches that vertex-to-vertex distance.
2× for larger models: A 2·L rod simply doubles the base length to scale up spans and frames while keeping proportions consistent.
So if the base size is 102 mm:
Rod factories are included in the script and STL files as well. You may need to adjust clearances depending on your printer and materials. (Note that I've only tested parameters that match my cardboard cores.)
I used AI, in particular gpt-5-pro, to create a Python script to generate hubs and rods in STL format. It took 14 minutes and $2.26. This formed the basis of this project. For those interested the prompt was:model: gpt-5-proreasoning: highmax output tokens: 40k timeout: 60 minmode: streaming (incl. reasoning)
cost $2.26 USD, run time 14:01
system:You are an expert in CAD code. You understand the CAD design requirements for 3D filament printing.
user:We’re making a kids’ polyhedron construction set using thousands of cardboard cores (102 mm long, OD 30 mm, ID 25 mm). These are the rods.
Goal: Design ≤12 hubs that maximise the range of buildable 3D shapes (cubes, tetra-, octa-, icosa-, dodecahedra, pyramids, and compounds). You choose the joiner set, socket count/orientations, angles, and any offsets needed for versatility.
Deliverable:- one file: geocode_v1.py — CadQuery 2.x, mm units.- Factories: one function per hub, returning its solid.- Export: write all hubs to ./stl/ as STL files.- Printability: every part must be a manifold and FDM-printable.
Non-negotiables: Params: top-level press_fit_clearance=0.3 mm (default) and insertion_depth — no hard-coding. Geometry: round sharp tips; min wall ≥ 2 mm; avoid support-heavy features. Log: at the end, print a short list of the hubs produced.
License:
Creative Commons — Attribution — Share Alike