Files
Victor Giers 197e9b710f auto-git:
[add] public/spline-corridor-assets/
2026-05-13 03:38:44 +02:00

732 lines
21 KiB
JSON

{
"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."
]
}