auto-git:

[add] public/spline-corridor-assets/
This commit is contained in:
2026-05-13 03:36:48 +02:00
parent 688676e981
commit 197e9b710f
23 changed files with 731 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,731 @@
{
"name": "spline_corridor_assets",
"unit": "meter",
"created_with": "Blender procedural mesh export via blender-mcp",
"coordinate_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"export_root": "/Users/giers/blender-mcp/exports/spline_corridor_assets",
"asset_count": 22,
"assets": [
{
"filename": "edge_curb_stone_low_2m.glb",
"category": "road_curb_edge",
"intended_use": "Clean low curb strip for road and path borders.",
"dimensions_m": {
"width_x": 0.3,
"height_y": 0.187,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.15,
0.0,
-1.0
],
"max": [
0.15,
0.187,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_stone_curb",
"mat_stone_light",
"mat_stone_dark"
],
"vertices": 24,
"triangles": 36,
"file_size_bytes": 4540,
"notes": "2 m segment; simple readable curb with subtle stone seams."
},
{
"filename": "edge_curb_stone_worn_2m.glb",
"category": "road_curb_edge",
"intended_use": "Worn curb strip for older roads and trampled path edges.",
"dimensions_m": {
"width_x": 0.331,
"height_y": 0.186,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.156,
0.0,
-1.0
],
"max": [
0.175,
0.186,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_stone_curb",
"mat_stone_light",
"mat_stone_dark"
],
"vertices": 140,
"triangles": 236,
"file_size_bytes": 14764,
"notes": "2 m segmented stones with chipped silhouettes and darker cracks."
},
{
"filename": "edge_log_border_2m.glb",
"category": "road_curb_edge",
"intended_use": "Natural log border for roads, trails, and camps.",
"dimensions_m": {
"width_x": 0.295,
"height_y": 0.229,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.115,
0.002,
-1.0
],
"max": [
0.18,
0.231,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_wood_dark",
"mat_moss_dark"
],
"vertices": 69,
"triangles": 113,
"file_size_bytes": 8600,
"notes": "2 m log, low-poly round profile, cut ends, small moss patch."
},
{
"filename": "edge_plank_border_2m.glb",
"category": "road_curb_edge",
"intended_use": "Rough plank border for rustic trail and garden edges.",
"dimensions_m": {
"width_x": 0.24,
"height_y": 0.131,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.12,
0.0,
-1.0
],
"max": [
0.12,
0.131,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_wood_dark"
],
"vertices": 48,
"triangles": 72,
"file_size_bytes": 6480,
"notes": "2 m plank with dark seams and simple wood-grain strips."
},
{
"filename": "edge_small_rocks_a_2m.glb",
"category": "trail_forest_edge",
"intended_use": "Loose small rock border for trail edges.",
"dimensions_m": {
"width_x": 0.389,
"height_y": 0.118,
"length_z": 2.067
},
"bounds_m": {
"min": [
-0.236,
0.0,
-1.031
],
"max": [
0.153,
0.118,
1.036
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_stone_curb",
"mat_stone_dark",
"mat_stone_warm"
],
"vertices": 318,
"triangles": 576,
"file_size_bytes": 31560,
"notes": "2 m scatter strip with low profile pebble clusters."
},
{
"filename": "edge_small_rocks_b_2m.glb",
"category": "trail_forest_edge",
"intended_use": "Alternate loose rock border for trail repetition variation.",
"dimensions_m": {
"width_x": 0.527,
"height_y": 0.153,
"length_z": 2.107
},
"bounds_m": {
"min": [
-0.305,
0.0,
-1.052
],
"max": [
0.222,
0.153,
1.055
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_stone_warm",
"mat_stone_curb",
"mat_stone_light",
"mat_stone_dark",
"mat_moss_dark"
],
"vertices": 241,
"triangles": 425,
"file_size_bytes": 25668,
"notes": "2 m wider scatter strip with warmer stones and a moss patch."
},
{
"filename": "edge_roots_border_2m.glb",
"category": "trail_forest_edge",
"intended_use": "Exposed root border for forest paths.",
"dimensions_m": {
"width_x": 0.474,
"height_y": 0.103,
"length_z": 2.012
},
"bounds_m": {
"min": [
-0.241,
-0.009,
-1.004
],
"max": [
0.233,
0.094,
1.008
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_root_dark",
"mat_wood_cut",
"mat_moss"
],
"vertices": 127,
"triangles": 199,
"file_size_bytes": 11344,
"notes": "2 m tangled roots with branch roots and small moss patches."
},
{
"filename": "edge_mossy_bank_2m.glb",
"category": "trail_forest_edge",
"intended_use": "Soft mossy raised bank for trail and forest path edges.",
"dimensions_m": {
"width_x": 0.66,
"height_y": 0.22,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.34,
0.0,
-1.0
],
"max": [
0.32,
0.22,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_soil",
"mat_moss",
"mat_moss_dark",
"mat_stone_warm"
],
"vertices": 87,
"triangles": 138,
"file_size_bytes": 10192,
"notes": "2 m sloped bank with moss top, soil side, small embedded rocks."
},
{
"filename": "edge_river_bank_soft_2m.glb",
"category": "river_ditch_bank",
"intended_use": "Soft river or ditch bank edge.",
"dimensions_m": {
"width_x": 0.76,
"height_y": 0.24,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.42,
0.0,
-1.0
],
"max": [
0.34,
0.24,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wet_soil",
"mat_sandy_bank",
"mat_moss_dark"
],
"vertices": 37,
"triangles": 39,
"file_size_bytes": 4508,
"notes": "2 m sloped sandy/wet bank with a darker waterline side."
},
{
"filename": "edge_river_bank_rocks_2m.glb",
"category": "river_ditch_bank",
"intended_use": "Rocky river or ditch bank edge.",
"dimensions_m": {
"width_x": 0.78,
"height_y": 0.2,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.44,
0.0,
-1.0
],
"max": [
0.34,
0.2,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_soil",
"mat_wet_soil",
"mat_stone_dark",
"mat_stone_curb",
"mat_stone_warm",
"mat_moss"
],
"vertices": 238,
"triangles": 418,
"file_size_bytes": 26000,
"notes": "2 m sloped muddy bank with embedded stones."
},
{
"filename": "edge_reeds_cluster_a.glb",
"category": "river_ditch_bank",
"intended_use": "Small reed cluster for river banks and ditches.",
"dimensions_m": {
"width_x": 0.46,
"height_y": 0.943,
"length_z": 0.621
},
"bounds_m": {
"min": [
-0.226,
-0.001,
-0.301
],
"max": [
0.234,
0.943,
0.32
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_reed_tan",
"mat_reed_green",
"mat_moss_dark"
],
"vertices": 302,
"triangles": 282,
"file_size_bytes": 16516,
"notes": "Compact cluster; origin at ground center for scatter placement."
},
{
"filename": "edge_reeds_cluster_b.glb",
"category": "river_ditch_bank",
"intended_use": "Taller reed cluster variation for river banks and ditches.",
"dimensions_m": {
"width_x": 0.635,
"height_y": 1.215,
"length_z": 0.505
},
"bounds_m": {
"min": [
-0.333,
-0.001,
-0.239
],
"max": [
0.302,
1.214,
0.265
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_reed_tan",
"mat_reed_green",
"mat_moss_dark"
],
"vertices": 446,
"triangles": 420,
"file_size_bytes": 23692,
"notes": "Wider and taller compact cluster for scatter variation."
},
{
"filename": "fence_post_wood.glb",
"category": "fence_repeater",
"intended_use": "Standalone rustic wooden fence post.",
"dimensions_m": {
"width_x": 0.18,
"height_y": 1.16,
"length_z": 0.15
},
"bounds_m": {
"min": [
-0.09,
0.0,
-0.075
],
"max": [
0.09,
1.16,
0.075
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_wood_dark"
],
"vertices": 44,
"triangles": 72,
"file_size_bytes": 6220,
"notes": "Post origin is bottom center at ground; rail notches align with segment rails."
},
{
"filename": "fence_rail_wood_2m.glb",
"category": "fence_repeater",
"intended_use": "Standalone 2 m rustic rail for fence repeaters.",
"dimensions_m": {
"width_x": 0.158,
"height_y": 0.107,
"length_z": 2.0
},
"bounds_m": {
"min": [
-0.055,
0.666,
-1.0
],
"max": [
0.103,
0.774,
1.0
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_wood_dark"
],
"vertices": 28,
"triangles": 48,
"file_size_bytes": 4720,
"notes": "Rail geometry sits at intended fence height while origin remains on the ground baseline."
},
{
"filename": "fence_segment_wood_2m.glb",
"category": "fence_repeater",
"intended_use": "Complete 2 m wooden fence segment.",
"dimensions_m": {
"width_x": 0.14,
"height_y": 1.13,
"length_z": 2.04
},
"bounds_m": {
"min": [
-0.07,
0.0,
-1.02
],
"max": [
0.07,
1.13,
1.02
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut"
],
"vertices": 88,
"triangles": 152,
"file_size_bytes": 8884,
"notes": "Two posts and two rails aligned along +Z spline direction."
},
{
"filename": "fence_segment_rope_2m.glb",
"category": "fence_repeater",
"intended_use": "Complete 2 m rope fence segment.",
"dimensions_m": {
"width_x": 0.136,
"height_y": 1.03,
"length_z": 2.036
},
"bounds_m": {
"min": [
-0.068,
0.0,
-1.018
],
"max": [
0.068,
1.03,
1.018
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_rope"
],
"vertices": 168,
"triangles": 288,
"file_size_bytes": 15904,
"notes": "Two wooden posts with sagging rope rails along +Z."
},
{
"filename": "fence_post_stone.glb",
"category": "fence_repeater",
"intended_use": "Standalone stacked stone fence post.",
"dimensions_m": {
"width_x": 0.258,
"height_y": 0.72,
"length_z": 0.261
},
"bounds_m": {
"min": [
-0.133,
0.0,
-0.133
],
"max": [
0.124,
0.72,
0.129
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_stone_dark",
"mat_stone_curb",
"mat_stone_warm",
"mat_stone_light"
],
"vertices": 90,
"triangles": 164,
"file_size_bytes": 11280,
"notes": "Short irregular stone pillar, useful as post or marker."
},
{
"filename": "debris_branch_a.glb",
"category": "debris_scatter",
"intended_use": "Small fallen branch scatter asset.",
"dimensions_m": {
"width_x": 0.438,
"height_y": 0.073,
"length_z": 0.846
},
"bounds_m": {
"min": [
-0.23,
0.001,
-0.423
],
"max": [
0.208,
0.074,
0.423
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_wood_dark"
],
"vertices": 40,
"triangles": 68,
"file_size_bytes": 5676,
"notes": "Directional branch roughly aligned to +Z for optional spline-aware placement."
},
{
"filename": "debris_branch_b.glb",
"category": "debris_scatter",
"intended_use": "Curved fallen branch scatter variation.",
"dimensions_m": {
"width_x": 0.458,
"height_y": 0.065,
"length_z": 0.682
},
"bounds_m": {
"min": [
-0.203,
0.003,
-0.312
],
"max": [
0.255,
0.067,
0.371
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_dark",
"mat_wood_cut",
"mat_wood_bark"
],
"vertices": 54,
"triangles": 92,
"file_size_bytes": 6744,
"notes": "Shorter curved branch with side twig."
},
{
"filename": "debris_pebbles_a.glb",
"category": "debris_scatter",
"intended_use": "Small pebble cluster for scatter placement.",
"dimensions_m": {
"width_x": 0.495,
"height_y": 0.053,
"length_z": 0.351
},
"bounds_m": {
"min": [
-0.253,
0.0,
-0.196
],
"max": [
0.242,
0.053,
0.156
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_stone_dark",
"mat_stone_curb",
"mat_stone_warm",
"mat_stone_light"
],
"vertices": 321,
"triangles": 578,
"file_size_bytes": 32584,
"notes": "Compact low-profile pebble clump."
},
{
"filename": "debris_leaf_clump_a.glb",
"category": "debris_scatter",
"intended_use": "Leaf litter clump for forest trail scatter.",
"dimensions_m": {
"width_x": 0.578,
"height_y": 0.021,
"length_z": 0.49
},
"bounds_m": {
"min": [
-0.276,
0.008,
-0.245
],
"max": [
0.302,
0.029,
0.245
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_leaf_brown",
"mat_leaf_ochre",
"mat_leaf_dark",
"mat_wood_dark",
"mat_wood_cut"
],
"vertices": 84,
"triangles": 56,
"file_size_bytes": 6704,
"notes": "Layered low-poly leaf cards plus a small twig; procedural colors only."
},
{
"filename": "debris_stump_small.glb",
"category": "debris_scatter",
"intended_use": "Small stump scatter asset.",
"dimensions_m": {
"width_x": 0.473,
"height_y": 0.329,
"length_z": 0.436
},
"bounds_m": {
"min": [
-0.193,
-0.006,
-0.232
],
"max": [
0.281,
0.323,
0.204
]
},
"origin_convention": "Target/import axes: origin at the ground baseline, centered in width and segment length unless noted; +X is left/right width, +Y is up, +Z is forward/spline direction.",
"materials": [
"mat_wood_bark",
"mat_wood_cut",
"mat_wood_dark",
"mat_root_dark",
"mat_moss"
],
"vertices": 78,
"triangles": 120,
"file_size_bytes": 9420,
"notes": "Low stump with exposed roots and moss accent."
}
],
"limitations": [
"Materials are simple procedural Blender materials with no external texture dependencies.",
"Meshes are lightweight starter assets intended for medium-distance readability, not close-up hero props.",
"The standalone rail uses the ground baseline origin for alignment with fence posts, although the rail mesh itself is elevated."
]
}