TOGridPile is a system of stackable cups based on a 1½″ unit cube, designed to be rotationally symmetric in 3 dimensions and allow subdivision down to ½″. There are several variations on the shape that are compatible with each other to varying degrees. Most are compatible with the 'beveled facerounded cube with columns' design described here.

See the basic shape reference sheet to understand the basic shape of a 1×1 TOGridPile block.

It is similar to Gridfinity, but with a different unit size and edge profile.

- Dimensionally compatible with 1½″ and ½″ gridbeam, Erector Set beams (which are essentially ½″ grid beams), and Lincoln Logs (¾″ beams designed to fit together on a 1½″ grid)!
- Mathematically simple(ish) shape that's symmetrical in 3 dimensions!
- Easily subdividable!
- Easily adapted to other unit sizes!
- A little bit smaller than Gridfinity, which might be useful in some cases!

It's kinda-sorta compatible with LEGO bricks, if you stack enough together. 5 TOGridPile atoms (2½″ = 63.5) ≈ 8 LEGO block widths (64mm), and 1 TOGridPile chunk (1½″ = 38.1mm) ≈ the height of 4 LEGO bricks stacked (38.4mm). There may have been a time before LEGO rounded their sizes to the nearest 1⁄10mm when these would have matched up exactly (source). This goes for Duplo and Mega Bloks also. Mega Bloks are 1¼″ wide and 1½″ tall, according to my calpiers.

The basic, symmetrical __chunk__ shape is *approximately* a
1½″ cube (the '__chunk body__') with ⅛″ beveled corners, plus a
straight-sided __column__ or __foot__ that sticks out on each side.

More precisely, the __chunk body__ is the convex hull of the six faces,
each of which is a 1¼″ square (i.e. inset ⅛″ on each edge)
with 1⁄16″-radius rounded corners.

The cross section of the straight-sided columns are 1⁄16″-radius rounded, (sqrt(2)-1)/8″-beveled, 1⅜″ squares. i.e. a square inset by 1⁄16″ on each side from the unit cube, with each edge shortened by 2×(sqrt(2)-1)/8″≈0.1″, and each corner rounded with a radius of 1⁄16″.

Chunks may be subdivided into ½″ __atoms__, with the same basic shape.
A chunk is then made of 27 atoms, with the option to, for the body and/or the columns,
take the convex hull of the corresponding part of the constituent atoms, or not.

In practice, most TOGridPile cups are only 'chunky' (or 'atomey') on the bottom,
such that they can sit in a TOGridPile base plate (or across the tops of other TOGridPile blocks),
but would not fit if turned sideways. Otherwise they would be very chunky indeed,
and it would be impossible to have blocks with a __lip__ on top, since the subtraction
to hold the block above would completely obliterate the edges of the block below!

- Lips taller than 1⁄16″ can have cutouts
to accommodate horizontal atom columns
('
__v6hc subtraction__') - A simpler column shape, ⅜″-diameter cylinder on each atom (or, when segmentation="chunk", a 1⅜ square with 3⁄16″-radius rounded corners), which works because it still fits entirely within the footprint of the 'standard' rounded beveled foot.
- A simpler body+column shape defined by extruding the cylinder+an upside-down cone around the edge of each atom or chunk. This is, in practice, compatible with the body + columns shape, and is the shape that TGx9.2.scad uses, since it is easier for OpenSCAD to handle than a bunch of intersecting convex hulls.
- Columns can have their diagonal corners whittled a little more such that another column could fit diagonally between the feet of two atoms. This isn't very useful for stacking cups, but makes it possible to create snap-in connectors between symmetrical atom-segmented blocks.
- Magnets can be inset into the bottom/top of blocks / floor of base plates. These should be centered in the corner atoms, with the north pole of the magnet (i.e. the end that wants to point towards Earth's 'north pole', where Santa lives) up, same as the Gridfinity convention.
- Other mounting holes can be cut, usually in the center of each atom, usually for #6 or ¼″-20 flathead bolts.

TOGridPile can be defined in terms of
__u__ (the lowest common denominator length unit, conventionally 1⁄16″,
similar to that of LEGO bricks!),
__atom pitch__ (8 u = ½″),
and __chunk pitch__ (3 atoms = 1½″),
and so variations can be easily derived simply by changing those numbers.

For example, in Australia they have 45mm lumber, which works out nicely if you use
`u=1.5mm, atom=10u`

, leaving `chunk=3atom`

(I haven't tried this; 1.6mm is already a little small,
so maybe going up to `u=3mm, atom=5u`

would be nicer,
especially if you don't care so much about blocks that can be turned sideways)

TGx9.4.scad is an OpenSCAD design for basic cups, with configurable size units, block size, bottom/lip segmentation, cavity size/subdivisions, and magnet/screw holes.

TODO:

- Diagrams!
- Photos!
- STL files! Maybe on Thingiverse or Thangs.com or something!
- A YouTube video!