You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7902563
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: showcase/toboggan/README.md
+78-50Lines changed: 78 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,25 @@
1
1
# toboggan
2
2
3
-

3
+

4
4
5
5
A traditional runner sled in the Flexible Flyer pattern (the name is the
6
6
repo's; the model is the steered runner sled, not a flat-bottom
7
7
toboggan): two steel-shod wooden runners with upturned front horns, six
8
-
posts carrying three cross bearers, a deck of seven lengthwise slats, a
9
-
painted steering bar through both horns with a drilled hub, and a hemp
10
-
rope threaded through the hub and stopped with a knot behind it, ending
11
-
in a wooden toggle on the floor. **A showcase piece, not an example** — it
8
+
posts carrying three cross bearers, a deck of seven lengthwise slats
9
+
screwed to them, one painted steering bar through both horns and proud of
10
+
each as a hand grip, and a three-strand hemp rope threaded through a hole
11
+
drilled in the bar's centre and stopped with a knot behind it, ending in
12
+
a wooden toggle on the floor. **A showcase piece, not an example** — it
12
13
witnesses no API contract. It asserts that generated geometry meets
13
14
declared asset budgets, recomputed from the finished mesh.
14
15
15
16
## What it composes
16
17
17
18
| Shipped content | Used for |
18
19
| --- | --- |
19
-
|`skills/mesh-editing-and-bmesh`| chamfered members swept along a curve, a drilled hub, lathed bolts, a parallel-transport rope, all in one `bmesh`|
20
-
|`skills/custom-properties`| face attributes (`PlankTone`, `GrainDir`) read by the wood shaders |
21
-
|`skills/procedural-materials-and-shaders`| slat pine, stained frame, worn steel, hemp lay from the rope's UVs, worn red enamel |
20
+
|`skills/mesh-editing-and-bmesh`| chamfered and round-cornered members swept along a curve, a drilled bar, lathed bolts and screws, a three-strand rope on a parallel-transport frame, all in one `bmesh`|
21
+
|`skills/custom-properties`| face attributes (`PlankTone`, `GrainDir`) and a point attribute (`Lay`) read by the shaders |
22
+
|`skills/procedural-materials-and-shaders`| slat pine, stained frame, worn steel, hemp darkened in the lay grooves, worn red enamel |
22
23
|`skills/bake-high-to-low`| Cycles tangent-space normal bake, high onto low |
| Named shoes | 2 shoes, each zmin ≤ 1e-4 | 2 at 0.00000 |
69
72
| Post bite into runner | 6 posts, 5–16 mm | 11.5 mm |
70
73
| Post tenon into bearer | 6–18 mm; clear of the slats ≥ 12 mm | 13.5 mm; 21.5 mm |
71
-
| Bar protrusion |2 arms, 20–45 mm past the runner's outer face |31.5 mm |
74
+
| Bar protrusion |1 bar, 55–85 mm past each runner's outer face |70.0 mm both ends|
72
75
| Slat seat | 7 slats, 21 joints, 1.5–4.5 mm | 3.0 mm |
76
+
| Screw seat | 21 screws, one per slat-bearer joint, 0.3–1.2 mm bite, 0.8–2.0 mm proud | 0.6 mm; 1.2 mm |
73
77
| Shoe seat | 2 shoes, 0.5–2.5 mm up into the runner | 1.5 mm |
74
78
| Bolt seat | 6 bolts, 3–6 mm proud, 0.5–2 mm bite | 4.4 mm; 1.0 mm |
75
-
| Rope in the hole |hub 1, rope 1, clearance 0.5–6 mm | hole r 11.0 mm, clearance 5.0 mm, 30 rope vertices (three rings) inside the hub|
76
-
| Runner length | 1.15–1.25 m | 1.189 m |
79
+
| Rope in the hole |bar 1, rope 1, clearance 0.5–6 mm | hole r 11.0 mm, clearance 4.2 mm to the strand crowns, 72 rope vertices (six rings) inside the bar|
80
+
| Runner length | 1.15–1.25 m | 1.191 m |
77
81
| Deck | 0.90–0.98 m × 0.40–0.44 m, top 0.130–0.155 m | 0.943 × 0.417, 0.145 |
78
82
| Track (runner centre to centre) | 0.29–0.31 m | 0.300 m |
79
83
| Mirrored runners and shoes | extents mirrored through y = 0 within 0.1 mm | 0.000 mm |
@@ -87,25 +91,42 @@ standard.
87
91
88
92
-**Runners.** A 28 × 54 mm timber with 4 mm chamfers, swept along a
89
93
closed-form centreline: flat under the deck, a power-law horn in front
90
-
(170 mm rise over the last 320 mm), a short tail behind. The slope is
94
+
(210 mm rise over the last 320 mm, exponent 2.5, so the tip climbs at
95
+
about 59°), and only an 8 mm kick-up over the last 100 mm behind. A
96
+
runner sled's front curls up to take the snow; its back is cut off
97
+
nearly flat. The first build gave the tail 25 mm, which at hero
98
+
distance read as a second horn. The slope is
91
99
analytic, so the shoe and the body are exact parallel offsets of one
92
100
curve. The shoe is a 34 × 9 mm steel strap with its top 1.5 mm up into
93
101
the timber (`SHOE_BITE`), and its bottom vertices sit at exactly
94
102
z = 0 on the flat run.
95
103
-**Posts, bearers, slats.** Chamfered members, every cap a fan to a pole
96
104
a hair past the last ring, so there are no n-gons. Bearers span 0.38 m;
97
105
slats are 54 × 16 mm on a 60.5 mm pitch, wide enough that no two slat
98
-
faces fall inside the coplanar-pair radius.
99
-
-**Steering bar and hub.** Two painted arms tenoned through the runner
100
-
horns, 31.5 mm proud of the outer faces, ending 35 mm either side of
101
-
the centre inside a hub block. The hub is a rectangle ring around a
102
-
12-gon hole, four UV strips, genus one.
103
-
-**Rope.** A round section on a parallel-transport frame. It starts at a
104
-
knot centre 30 mm behind the hub, runs straight through the hole, sags
105
-
to the floor over 250 mm on a smoothstep, then curls 85° on the floor
106
-
and ends in a toggle. The knot sphere (16.5 mm) is larger than the hole
107
-
(11 mm), so the rope cannot pull through. The rope's lay is a diagonal
108
-
wave on its own UVs, so the twist follows the strand.
106
+
faces fall inside the coplanar-pair radius. Slats take a round-cornered
107
+
section (2.5 mm radius, three points per corner) rather than a chamfer,
108
+
and each slat's `PlankTone` lands 0.73–1.33 of the ramp, so neighbouring
109
+
boards read as different boards rather than one sheet.
110
+
-**Screws.** A domed head at each of the 21 slat-bearer joints, lathed
111
+
about Z, its rim 0.6 mm into the slat top. Each head is turned by the
112
+
golden angle from the last, so no two heads' facets share a plane and
113
+
the coplanar cross-shell count stays at zero.
114
+
-**Steering bar.** One painted 32 × 36 mm bar through both runner horns,
115
+
standing 70 mm proud of each outer face as a hand grip, with 10 mm
116
+
chamfers on its ends. It is a single chamfered rectangle ring around a
117
+
12-gon hole at its centre: four UV strips, genus one. The first build
118
+
had two short arms and a separate hub block; at hero distance the
119
+
horn hid the arm between them, and the bar read as two red blocks.
120
+
-**Rope.** Three strands on a parallel-transport frame: the section
121
+
radius is `6 mm × (1 + 0.14 cos(3θ − 2πs/36 mm))`, so the strands spiral
122
+
along the rope in its silhouette, and a `Lay` point attribute with the
123
+
same phase darkens the grooves between them. The path is re-cut at an
124
+
even 6 mm. It starts at a knot centre behind the bar, runs straight
125
+
through the hole, sags to the floor over 250 mm on a smoothstep, then
126
+
curls 85° on the floor and ends in a toggle. The floor run sits at the
127
+
strand crowns' radius (6.84 mm), not the mean, so the rope does not dip
128
+
through the floor. The knot sphere (16.5 mm) is larger than the hole
129
+
(11 mm), so the rope cannot pull through.
109
130
-**Bolts.** Six domed carriage bolts, one through each runner at each
110
131
post, lathed about Y, 1.0 mm into the runner's outer face.
111
132
@@ -125,8 +146,14 @@ standard.
125
146
toggle then pulled the bottom margin to zero, so the curl is 85° rather
126
147
than 110°.
127
148
-**Hero lay (inspection-only).** The rope first took the wood shader's
128
-
per-ring grain direction and rendered as bands; it now has its own
129
-
material.
149
+
per-ring grain direction and rendered as bands; it then had its own
150
+
material, but a diagonal wave on its UVs still rendered as a smooth
151
+
tube. The lay is now modelled.
152
+
-**A falsifier's envelope (quality pass).** With the bar one piece, the
153
+
old `--short-bar` (both ends pulled inside the runners) shrank the AABB
154
+
by 80 mm in Y and exited 8, not 17. It now pulls only the left end in
155
+
19 mm, which stays inside `BBOX_TOL` (the box narrows 17.8 mm) and
156
+
leaves that end 51 mm proud, under the 55 mm minimum.
130
157
131
158
## Conventions walked
132
159
@@ -142,11 +169,11 @@ Every convention in `showcase/README.md`, and whether it applies here.
142
169
| Plumb and real-world size | yes | runner, deck and track bands (`--tall-posts`) |
143
170
| A member is tenoned into its seat | yes | posts into runner and bearer (`--short-post`), slats rebated (`--float-slats`) |
144
171
| Joint-fit budgets | yes | post and bar bands recomputed from the host shell |
| Fasteners seated | yes | bolt heads proud and bitten (`--float-bolts`); slat screws bitten and proud (`--float-screws`)|
146
173
| Seat conformance | yes | shoe up into runner (`--lift-runners`) |
147
-
| Hung / threaded rope | yes | rope in the hole (`--miss-hole`) |
174
+
| Hung / threaded rope | yes | rope in the bar's centre hole (`--miss-hole`) |
148
175
| Wrappers follow the host's profile | n/a | the shoe is a parallel offset of the same centreline, not a wrapper |
149
-
| Edge treatment: no right angles | yes, by construction | every member is a chamfered section; a 90° edge fraction of 0.024 is printed by the asset-quality gate on the render path |
176
+
| Edge treatment: no right angles | yes, by construction | every member is a chamfered section; a 90° edge fraction of 0.015 is printed by the asset-quality gate on the render path |
150
177
| Shading is part of the model | yes | smooth along members, every edge over 40° hard (chamfers, caps) |
151
178
| One substance, one slot | yes | slat pine, frame, steel, rope, paint |
152
179
| Iron is not chrome | yes | steel metallic 0.85, roughness 0.30–0.62, rust speckle |
@@ -158,7 +185,7 @@ Every convention in `showcase/README.md`, and whether it applies here.
158
185
159
186
## Falsifiers
160
187
161
-
Each breaks one pipeline stage so a **named** budget fails. All twelve
188
+
Each breaks one pipeline stage so a **named** budget fails. All thirteen
162
189
exited their declared code on Blender 5.2.1; 4.5 and 5.1 were not run.
163
190
164
191
| Flag | Target budget | Breaks | Exit |
@@ -168,11 +195,12 @@ exited their declared code on Blender 5.2.1; 4.5 and 5.1 were not run.
168
195
|`--lift-z`| grounded zmin | lifts the whole mesh 50 mm | 16 |
169
196
|`--float-shoe`| named shoes | lifts the left shoe 6 mm; the right still grounds the AABB | 16 |
170
197
|`--short-post`| post bite into the runner | starts every post 4 mm above the runner's top; −2.5 mm | 17 |
171
-
|`--short-bar`| bar protrusion |ends each arm 10 mm inside the runner's outer face; −8.5 mm | 17 |
198
+
|`--short-bar`| bar protrusion |pulls the bar's left end in 19 mm; 51 mm proud, under the 55 mm minimum| 17 |
172
199
|`--float-slats`| slat seat | lifts every slat 5 mm off its bearers; −2.0 mm | 18 |
173
200
|`--lift-runners`| shoe seat | lifts both timbers 4 mm off their shoes; −2.5 mm | 18 |
174
201
|`--float-bolts`| bolt seat | moves every bolt 3.5 mm outward; bite −2.5 mm | 18 |
175
-
|`--miss-hole`| rope in the hole | lifts the rope and knot 12 mm; clearance −7.0 mm | 18 |
202
+
|`--float-screws`| screw seat | lifts every screw head 3 mm off its slat; bite −2.4 mm | 18 |
203
+
|`--miss-hole`| rope in the hole | lifts the rope and knot 12 mm; clearance −7.8 mm | 18 |
176
204
|`--tall-posts`| real-world deck height | raises bearers, posts and slats 40 mm; deck top 185 mm | 19 |
177
205
|`--skew-runner`| mirrored runners | moves the left runner and shoe 6 mm along X; 6.0 mm | 19 |
178
206
@@ -201,7 +229,7 @@ wrapper — a crash, never a named check.
201
229
| 15 | Mesh hygiene (`--stray-vert`) |
202
230
| 16 | Grounded zmin, or a shoe floating (`--lift-z`, `--float-shoe`) |
203
231
| 17 | Post bite or tenon, or bar protrusion (`--short-post`, `--short-bar`) |
204
-
| 18 | Slat, shoe or bolt seat, or the rope in its hole (`--float-slats`, `--lift-runners`, `--float-bolts`, `--miss-hole`) |
232
+
| 18 | Slat, screw, shoe or bolt seat, or the rope in its hole (`--float-slats`, `--float-screws`, `--lift-runners`, `--float-bolts`, `--miss-hole`) |
0 commit comments