WICKERSON STUDIOS — ADOBE BUILDING
==============================================================
WICKERSON STUDIOS — COB / RAMMED-EARTH BUILDING
Grasshopper / Rhino3D Parametric Model | Kansas, USA
==============================================================
Script : GH_WickersonStudios_AdobeBuilding.cs
Author : Wickerson Studios
Updated : 2026-05-24
Software : Rhino3D 7 or 8 + Grasshopper (C# Script component)
Units : FEET
Inspired by the active Kansas construction site —
straw-reinforced cob walls, stone rubble foundation,
rough-sawn timber door frame, flat adobe roof.
--------------------------------------------------------------
QUICK START (zero Manage-Parameters steps)
--------------------------------------------------------------
1. Open Rhino. Set units to FEET:
File > Properties > Units > Feet
2. Open Grasshopper:
Tools > Grasshopper (or type "Grasshopper")
3. Drop a "C# Script" component on the canvas.
4. Double-click the component to open the code editor.
Select all existing code and DELETE it.
Paste the ENTIRE contents of:
GH_WickersonStudios_AdobeBuilding.cs
5. Click OK / press F5 to compile.
The component uses only the DEFAULT parameter names
Grasshopper creates automatically:
x (input) — no renaming needed
y (input) — no renaming needed
a (output) — no renaming needed
6. Add a Panel component to the canvas.
Paste the CFG block (see PANEL CFG section below)
into the panel.
Wire the Panel to input y.
7. Add a Point component (Params > Geometry > Point).
Right-click it > Set One Point > click in Rhino viewport
at your site location.
Wire the Point to input x.
8. Connect a "Tree Branch" component to output a.
Use the branch index guide below to separate parts.
That is the complete setup. No renaming, no type
assignment, no Manage Parameters dialog — ever.
--------------------------------------------------------------
PANEL CFG
--------------------------------------------------------------
Copy and paste this entire block into a Grasshopper Panel
component, then wire the Panel to the y input.
Edit any value live to update the building instantly.
┌──────────────────────────────────────────────────────┐
│ // Wickerson Studios — Cob Build (all units: FEET) │
│ EXT_W = 18.0 │
│ EXT_D = 14.0 │
│ WALL_H = 9.0 │
│ WALL_T = 1.5 │
│ PAR_H = 1.25 │
│ ROOF_T = 0.75 │
│ FLR_T = 0.5 │
│ DOOR_W = 3.0 │
│ DOOR_H = 7.0 │
│ WIN_W = 2.0 │
│ WIN_H = 2.5 │
│ WIN_S = 3.5 │
│ NWIN_W = 1.5 │
│ NWIN_H = 1.5 │
│ NWIN_S = 4.0 │
│ FOUND_H = 1.0 │
│ POST_W = 0.33 │
└──────────────────────────────────────────────────────┘
Lines starting with // are comments — ignored by the
parser. If y is disconnected, all built-in defaults
above are used automatically.
--------------------------------------------------------------
OUTPUT TREE — branch index guide
--------------------------------------------------------------
The single output a is a DataTree.
Connect a "Tree Branch" component and set the Path index:
{0} Foundation Stone rubble base
{1} Walls Cob / rammed-earth shell + openings
{2} Roof Flat concrete slab
{3} Parapet Hollow perimeter cap above roof
{4} Floor Slab Below-grade compacted earth slab
{5} Post Left Rough-sawn timber door post
{6} Post Right Rough-sawn timber door post
{7} Lintel Horizontal beam above door
{8} Info Text Wire this branch to a Panel for readout
TIP: Use a "Dispatch" or "List Item" component to route
different branches to different Custom Preview components
so you can assign materials independently per part.
--------------------------------------------------------------
GRASSHOPPER WIRING DIAGRAM
--------------------------------------------------------------
[Point Param]──────── x ──┐
├── [C# Script] ── a ── [Tree Branch {0}] Walls
[Panel: CFG text]──── y ──┘ └── [Tree Branch {8}] ── [Panel]
Suggested canvas layout:
Col 1 Col 2 Col 3 Col 4
───────── ────────── ──────────── ──────────────
Point Param C# Script Tree Branch Custom Preview
Panel (CFG) × 9 instances per branch
--------------------------------------------------------------
BUILDING SPECIFICATIONS
--------------------------------------------------------------
Style : Adobe / Cob / Rammed-earth vernacular
Location : Wickerson Studios, Kansas, USA
EXTERIOR DIMENSIONS
-------------------
Width (E-W) : 18 ft 0 in
Depth (N-S) : 14 ft 0 in
Wall height : 9 ft 0 in
Roof slab : 0 ft 9 in (flat, concrete)
Parapet : 1 ft 3 in (above roof deck)
Total height : 11 ft 0 in (walls+roof+parapet)
Foundation : 1 ft 0 in (stone rubble base)
INTERIOR DIMENSIONS
-------------------
Clear width : 15 ft 0 in
Clear depth : 11 ft 0 in
Net interior area : 165 sq ft
Gross footprint : 252 sq ft
WALL CONSTRUCTION
-----------------
Thickness : 1 ft 6 in (18 inches)
Method : Cob / rammed earth + straw
Foundation overhang : 3 in beyond wall face each side
FLOOR SLAB
----------
Thickness : 6 in below finish grade
Material : Compacted earth / adobe
--------------------------------------------------------------
OPENINGS SCHEDULE
--------------------------------------------------------------
ID Face Type Width Height Sill
------ ------ ------ --------- --------- ----------
DR-1 South Door 3 ft 0 in 7 ft 0 in grade
WN-1 South Window 2 ft 0 in 2 ft 6 in 3 ft 6 in
WN-2 South Window 2 ft 0 in 2 ft 6 in 3 ft 6 in
WN-3 East Window 2 ft 0 in 2 ft 6 in 3 ft 6 in
WN-4 West Window 2 ft 0 in 2 ft 6 in 3 ft 6 in
WN-5 North Window 1 ft 6 in 1 ft 6 in 4 ft 0 in
DR-1 centred on south face
WN-1 2 ft 3 in from west corner, south face
WN-2 2 ft 3 in from east corner, south face
WN-3 centred on east face (N-S span)
WN-4 centred on west face (N-S span)
WN-5 centred on north face (E-W span), high for privacy
--------------------------------------------------------------
COMPASS ORIENTATION
--------------------------------------------------------------
+X = East
+Y = North
+Z = Up (vertical)
South face (Y = BasePt.Y) → Main entry / street side
North face (Y = BasePt.Y + 14) → Back wall
--------------------------------------------------------------
SITE PLACEMENT — KANSAS
--------------------------------------------------------------
Option A — Set Point in Rhino viewport
Right-click Point param > Set One Point
Click at the correct site location in the viewport.
Option B — Type exact coordinates
Right-click Point param > Set One Point
Type coordinates at the Rhino command line:
0,0,0 (for Rhino world origin)
Option C — Earth Anchor Point (geo-referenced)
Rhino menu > Edit > Earth Anchor Point
Enter your parcel lat/lon for accurate sun studies.
--------------------------------------------------------------
RENDERING — MATERIAL SUGGESTIONS
--------------------------------------------------------------
Branch Part Material Colour
------- ---------- ---------------- -------------------
{0} Foundation Stone / Rubble Cool grey-tan
(rough, matte) R:160 G:150 B:135
{1} Walls Adobe stucco Warm terracotta
(rough, matte) R:200 G:155 B:110
{2} Roof Flat concrete Light grey
(smooth, matte) R:185 G:180 B:170
{3} Parapet Match walls Same as walls
{4} Floor Compacted earth Dark warm brown
(matte) R:120 G:95 B:70
{5-7} Door/Lintel Rough-sawn timber Warm wood brown
(wood grain) R:140 G:105 B:70
--------------------------------------------------------------
CFG KEY REFERENCE
--------------------------------------------------------------
Key Default Description
------- ------- ----------------------------------------
EXT_W 18.0 Exterior width (E-W) in feet
EXT_D 14.0 Exterior depth (N-S) in feet
WALL_H 9.0 Wall height in feet
WALL_T 1.5 Wall thickness (18 in) in feet
PAR_H 1.25 Parapet height in feet
ROOF_T 0.75 Roof slab thickness in feet
FLR_T 0.5 Floor slab below grade in feet
DOOR_W 3.0 Door width in feet
DOOR_H 7.0 Door height in feet
WIN_W 2.0 Window width (S/E/W) in feet
WIN_H 2.5 Window height in feet
WIN_S 3.5 Window sill height in feet
NWIN_W 1.5 North window width in feet
NWIN_H 1.5 North window height in feet
NWIN_S 4.0 North window sill in feet
FOUND_H 1.0 Stone foundation ht in feet
POST_W 0.33 Door post width (~4in) in feet
--------------------------------------------------------------
WHY PARAMETERS NEVER NEED MANUAL SETUP
--------------------------------------------------------------
This script uses C# 7 LOCAL FUNCTIONS inside RunScript.
All helpers (MakeBox, SafeDiff, ParseCfg, Cfg) are declared
inside the RunScript method body — they are not private class
members. This means:
- No "private" keyword at class level → no compiler errors
- No extra class-level fields → no scope errors
- Grasshopper's default x / y / a → no renaming needed
- All config in one Panel (y input) → no extra inputs
The only component that ever changes is the Panel CFG —
edit numbers there and the building updates live.
--------------------------------------------------------------
KNOWN INTENTIONAL IDE HINTS (not errors)
--------------------------------------------------------------
Two style hints will appear in VS Code / Rider. Both are
intentionally left unfixed for Grasshopper compatibility:
1. "Substring can be simplified"
The IDE wants C# 8 range operators t[..eq]
Grasshopper's compiler is C# 7 — range operators BREAK it.
Left as t.Substring(0, eq) on purpose.
2. "Collection initialization can be simplified"
The IDE wants C# 12 syntax ['\n', '\r']
Grasshopper's compiler is C# 7 — this syntax BREAKS it.
Left as new char[] { '\n', '\r' } on purpose.
Both are severity: Hint (not Warning, not Error).
They have zero effect on Grasshopper compilation or runtime.
--------------------------------------------------------------
TROUBLESHOOTING
--------------------------------------------------------------
Error: TargetParameterCountException
Cause : Component I/O doesn't match the RunScript signature.
Fix : Delete the component, drop a fresh one, re-paste.
The script uses x, y, a — exactly what a fresh
component creates with zero configuration.
Error: Boolean cut fell back (Remark in GH)
Cause : Cutting volume doesn't fully intersect wall.
Fix : Increase epsilon e = 0.05 to e = 0.1 in script.
Usually caused by BasePt not being at Z = 0.
Error: Building appears as solid box, no hollowing
Cause : Rhino units are not set to Feet.
Fix : File > Properties > Units > Feet, then re-solve.
Error: Any "private is not valid" errors
Cause : Old code version with class-level private helpers.
Fix : Re-paste the current script — helpers are now local
functions inside RunScript, no private needed.
--------------------------------------------------------------
FILE LIST
--------------------------------------------------------------
GH_WickersonStudios_AdobeBuilding.cs
Grasshopper C# Script — paste full contents into component
README_WickersonStudios_AdobeBuilding.txt
This file
--------------------------------------------------------------
CONTACT
--------------------------------------------------------------
Project : Wickerson Studios
Location : Kansas, USA
Email : mwickerson999@gmail.com
==============================================================
END OF README
==============================================================