|
1 | | -# geoTRIC |
2 | | -geoTRIC is a modular computational design toolkit developed through a progressive series of geometric systems. |
3 | | -Each module builds conceptually and technically on the previous one — moving from 2D grammar rules to 3D surface-driven tower systems. |
| 1 | +# geoTRIC |
4 | 2 |
|
5 | | -The project explores structure, iteration, transformation, matrices, and attractor-driven geometry within Rhinoceros using Python (RhinoScriptSyntax). |
| 3 | +Procedural computational design toolkit for geometric systems, skeletal structures, spatial matrices, and attractor-driven architectural generation. |
| 4 | +--- |
| 5 | + |
| 6 | +# Modules |
| 7 | + |
| 8 | +```text |
| 9 | +01 grammatric → Shape Grammars |
| 10 | +02 skeletric → Skeletal Graphs |
| 11 | +03 pattric → Pattern Fields |
| 12 | +04 mattric → 3D Matrices |
| 13 | +05 hiritric → Surface Tower Systems |
| 14 | +``` |
| 15 | + |
| 16 | +Each module extends the previous one through: |
| 17 | +* dimensional complexity |
| 18 | +* iteration systems |
| 19 | +* attractor logic |
| 20 | +* vector fields |
| 21 | +* procedural control |
6 | 22 |
|
7 | 23 | --- |
8 | 24 |
|
9 | | -## Project Structure |
| 25 | +# Structure |
10 | 26 |
|
| 27 | +```text |
11 | 28 | geoTRIC/ |
| 29 | +│ |
12 | 30 | ├── 01_grammatric/ |
13 | 31 | ├── 02_skeletric/ |
14 | 32 | ├── 03_pattric/ |
15 | 33 | ├── 04_mattric/ |
16 | | -└── 05_hiritric/ |
17 | | - |
18 | | -Each module represents a conceptual and technical evolution. |
| 34 | +├── 05_hiritric/ |
| 35 | +│ |
| 36 | +├── api/ |
| 37 | +│ ├── core/ |
| 38 | +│ ├── rhino/ |
| 39 | +│ ├── blender/ |
| 40 | +│ ├── freecad/ |
| 41 | +│ ├── revit/ |
| 42 | +│ └── autocad/ |
| 43 | +│ |
| 44 | +├── render/ |
| 45 | +└── examples/ |
| 46 | +``` |
19 | 47 |
|
20 | 48 | --- |
21 | 49 |
|
22 | | -# 01 — grammatric |
23 | | -### Shape Grammars & Transformations (2D) |
24 | | - |
25 | | -**Focus:** Rule-based geometric generation. |
26 | | - |
27 | | -- Create base shapes (points, lines, curves) |
28 | | -- Apply transformations (translate, rotate, scale) |
29 | | -- Define grammar rules (match → replace) |
30 | | -- Generate sequential derivations |
31 | | -- Export visual states |
32 | | - |
33 | | -**Core Idea:** |
34 | | -Geometry as language. Shapes become symbols; transformations become syntax. |
| 50 | +# API Logic |
| 51 | + |
| 52 | +```text |
| 53 | +Core Geometry |
| 54 | +↓ |
| 55 | +Abstract Geometry |
| 56 | +↓ |
| 57 | +Platform Adapter |
| 58 | +↓ |
| 59 | +Rhino / Blender Objects |
| 60 | +↓ |
| 61 | +Rendering / GIF Export |
| 62 | +``` |
| 63 | + |
| 64 | +## Visual Sequence |
| 65 | + |
| 66 | +```text |
| 67 | + ┌─────────────────────┐ |
| 68 | + │ grammatric.py │ |
| 69 | + │ skeleton.py │ |
| 70 | + │ pattern.py │ |
| 71 | + │ matrix.py │ |
| 72 | + │ surface.py │ |
| 73 | + └──────────┬──────────┘ |
| 74 | + │ |
| 75 | + ▼ |
| 76 | + ┌─────────────────────┐ |
| 77 | + │ ABSTRACT GEOMETRY │ |
| 78 | + │ │ |
| 79 | + │ Polyline │ |
| 80 | + │ Column │ |
| 81 | + │ Matrix │ |
| 82 | + │ Graph │ |
| 83 | + └──────────┬──────────┘ |
| 84 | + │ |
| 85 | + ┌──────────────────┼──────────────────┐ |
| 86 | + ▼ ▼ ▼ |
| 87 | +┌──────────────┐ ┌──────────────┐ ┌──────────────┐ |
| 88 | +│ Rhino API │ │ Blender API │ │ Future APIs │ |
| 89 | +│ Adapter │ │ Adapter │ │ Revit/FCAD │ |
| 90 | +└──────┬───────┘ └──────┬───────┘ └──────┬───────┘ |
| 91 | + │ │ │ |
| 92 | + ▼ ▼ ▼ |
| 93 | + Rhino Objects Blender Objects BIM Objects |
| 94 | + │ │ |
| 95 | + ▼ ▼ |
| 96 | + Rendering Rendering |
| 97 | + │ |
| 98 | + ▼ |
| 99 | + GIF / PNG / MP4 |
| 100 | +``` |
| 101 | + |
| 102 | +Core geometry is software-independent. |
| 103 | + |
| 104 | +Adapters convert geometry into platform-specific objects. |
| 105 | + |
| 106 | +Current implemented adapters: |
| 107 | + |
| 108 | +* Rhino |
| 109 | +* Blender |
35 | 110 |
|
36 | 111 | --- |
37 | 112 |
|
38 | | -# 02 — skeletric |
39 | | -### Bone Structures & Sequential States (2D) |
| 113 | +# Current Systems |
40 | 114 |
|
41 | | -**Focus:** Skeletal graph systems as control geometry. |
| 115 | +## grammatric |
42 | 116 |
|
43 | | -- Generate bone structures (nodes + edges) |
44 | | -- Sample spines into ordered point lists |
45 | | -- Derive ribs, branches, and connections |
46 | | -- Create sequential states through iteration |
47 | | -- Use attractors and conditionals to control density |
| 117 | +Rule-based shape transformations. |
48 | 118 |
|
49 | | -**Core Idea:** |
50 | | -Structure precedes form. A skeleton controls complexity. |
| 119 | +## skeletric |
51 | 120 |
|
52 | | ---- |
| 121 | +Node-edge skeletal graph systems. |
53 | 122 |
|
54 | | -# 03 — pattric |
55 | | -### Pattern Systems & Animation (2D) |
| 123 | +## pattric |
56 | 124 |
|
57 | | -**Focus:** Field-based pattern generation driven by skeleton logic. |
| 125 | +Pattern repetition and field variation. |
58 | 126 |
|
59 | | -- Use Lists, Dictionaries, Iteration, and Conditionals |
60 | | -- Populate skeletons with motifs |
61 | | -- Introduce formal variability across a grid |
62 | | -- Animate parameters (rotation, scale, density, randomness) |
63 | | -- Export sequential frames |
| 127 | +## mattric |
64 | 128 |
|
65 | | -**Core Idea:** |
66 | | -Emergence through repetition and controlled variation. |
67 | | - |
68 | | ---- |
| 129 | +3D matrix and column systems. |
69 | 130 |
|
70 | | -# 04 — mattric |
71 | | -### 3D Point Matrices & Surface Generation |
| 131 | +## hiritric |
72 | 132 |
|
73 | | -**Focus:** Matrix-based spatial systems. |
74 | | - |
75 | | -- Generate 3D point matrices (dictionary indexed) |
76 | | -- Modify matrices via attractor points |
77 | | -- Loop through matrices to create curves |
78 | | -- Sweep curves into surfaces and wall systems |
79 | | -- Produce structured 3D geometries |
80 | | - |
81 | | -**Core Idea:** |
82 | | -Form emerges from structured spatial fields. |
83 | | - |
84 | | ---- |
85 | | - |
86 | | -# 05 — hiritric |
87 | | -### Surface Matrices, Normals & Tower Systems |
88 | | - |
89 | | -**Focus:** NURBS surfaces and vector-driven geometry. |
90 | | - |
91 | | -- Evaluate surface (U,V) parameter space |
92 | | -- Extract surface normals |
93 | | -- Modify normals via attractor distance |
94 | | -- Generate geometry along modified vectors |
95 | | -- Apply materials and color gradients |
96 | | -- Produce high-rise tower variations |
97 | | - |
98 | | -**Core Idea:** |
99 | | -Surface logic becomes architectural system. |
| 133 | +Surface-normal tower generation. |
100 | 134 |
|
101 | 135 | --- |
102 | 136 |
|
103 | | -## Conceptual Progression |
| 137 | +# Rendering |
104 | 138 |
|
105 | | -grammatric : Shape Grammar |
106 | | - ↓ |
107 | | -skeletric : Skeletal Graph |
108 | | - ↓ |
109 | | -pattric : Pattern Field |
110 | | - ↓ |
111 | | -mattric : 3D Matrix - Surface System |
112 | | - ↓ |
113 | | -hiritric : Tower |
| 139 | +```text |
| 140 | +Geometry |
| 141 | +→ Frame Sequence |
| 142 | +→ GIF / MP4 |
| 143 | +``` |
114 | 144 |
|
115 | | -Each module extends the previous one in: |
| 145 | +Used for: |
116 | 146 |
|
117 | | -- Dimensional complexity (2D → 3D → surface-driven) |
118 | | -- Data structure (lists → graphs → dictionaries → matrices) |
119 | | -- Control logic (rules → iteration → attractors → vector fields) |
| 147 | +* procedural animations |
| 148 | +* geometric studies |
| 149 | +* system visualizations |
| 150 | +* architectural motion graphics |
120 | 151 |
|
121 | 152 | --- |
122 | 153 |
|
123 | | -## Technologies |
| 154 | +# Technologies |
124 | 155 |
|
125 | | -- Rhinoceros |
126 | | -- Python |
127 | | -- RhinoScriptSyntax |
128 | | -- Lists, Tuples, Dictionaries |
129 | | -- Iteration & Conditional Execution |
130 | | -- Attractor Systems |
131 | | -- Surface Evaluation & Vector Math |
| 156 | +* Python |
| 157 | +* RhinoScriptSyntax |
| 158 | +* RhinoCommon |
| 159 | +* Blender bpy |
| 160 | +* NumPy |
132 | 161 |
|
133 | 162 | --- |
134 | 163 |
|
135 | | -## Philosophy |
136 | | - |
137 | | -geoTRIC explores the relationship between: |
138 | | - |
139 | | -- Structure and variation |
140 | | -- Control and emergence |
141 | | -- Matrix and surface |
142 | | -- Rule and form |
| 164 | +# Status |
143 | 165 |
|
144 | | -It treats geometry as a system rather than a static object. |
| 166 | +Currently focused on: |
| 167 | +* Rhino + Blender workflows |
| 168 | +* API abstraction layer |
| 169 | +* multi-platform procedural geometry |
0 commit comments