270 lines
8.2 KiB
JSON
270 lines
8.2 KiB
JSON
{
|
||
"capability": "blender.scene.author@v2",
|
||
"display_name": "Blender 三维场景创作",
|
||
"default_enrollment": false,
|
||
"output_namespace": "blender",
|
||
"input_policy": {
|
||
"suffixes": [],
|
||
"max_count": 0,
|
||
"max_bytes": 0,
|
||
"max_total_bytes": 0
|
||
},
|
||
"outputs": {
|
||
"project": {
|
||
"filename": "scene.blend",
|
||
"media_type": "application/x-blender",
|
||
"relative_path": "scene.blend",
|
||
"publish": true,
|
||
"required": true
|
||
},
|
||
"preview_isometric": {
|
||
"filename": "preview-isometric.png",
|
||
"media_type": "image/png",
|
||
"relative_path": "preview-isometric.png",
|
||
"publish": true,
|
||
"required": true
|
||
},
|
||
"preview_side": {
|
||
"filename": "preview-side.png",
|
||
"media_type": "image/png",
|
||
"relative_path": "preview-side.png",
|
||
"publish": true,
|
||
"required": false
|
||
},
|
||
"preview_kiln_head": {
|
||
"filename": "preview-kiln-head.png",
|
||
"media_type": "image/png",
|
||
"relative_path": "preview-kiln-head.png",
|
||
"publish": true,
|
||
"required": false
|
||
},
|
||
"preview_kiln_tail": {
|
||
"filename": "preview-kiln-tail.png",
|
||
"media_type": "image/png",
|
||
"relative_path": "preview-kiln-tail.png",
|
||
"publish": true,
|
||
"required": false
|
||
},
|
||
"preview_cutaway": {
|
||
"filename": "preview-cutaway.png",
|
||
"media_type": "image/png",
|
||
"relative_path": "preview-cutaway.png",
|
||
"publish": true,
|
||
"required": false
|
||
},
|
||
"preview_cross_section": {
|
||
"filename": "preview-cross-section.png",
|
||
"media_type": "image/png",
|
||
"relative_path": "preview-cross-section.png",
|
||
"publish": true,
|
||
"required": false
|
||
},
|
||
"scene_manifest": {
|
||
"filename": "scene-manifest.json",
|
||
"media_type": "application/json",
|
||
"relative_path": "scene-manifest.json",
|
||
"publish": true,
|
||
"required": true
|
||
},
|
||
"scene_glb": {
|
||
"filename": "scene.glb",
|
||
"media_type": "model/gltf-binary",
|
||
"relative_path": "scene.glb",
|
||
"publish": true,
|
||
"required": false
|
||
},
|
||
"provenance": {
|
||
"filename": "provenance.json",
|
||
"media_type": "application/json",
|
||
"relative_path": ".meta/provenance.json",
|
||
"publish": false,
|
||
"required": true
|
||
}
|
||
},
|
||
"feature_path": ["operation", "scene", "type"],
|
||
"features": {
|
||
"rotary_kiln": "0.2.0"
|
||
},
|
||
"summary": {
|
||
"title_path": ["operation", "scene", "title"]
|
||
},
|
||
"legacy_runtime": null,
|
||
"workspace": {
|
||
"state_output": "project",
|
||
"preview_outputs": [
|
||
"preview_isometric",
|
||
"preview_side",
|
||
"preview_kiln_head",
|
||
"preview_kiln_tail",
|
||
"preview_cutaway",
|
||
"preview_cross_section"
|
||
],
|
||
"required_adapter_version": "0.2.0"
|
||
},
|
||
"request_schema": {
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"type": "object",
|
||
"x-maxBytes": 65536,
|
||
"required": ["schema_version", "inputs", "operation", "outputs"],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"schema_version": {"const": 2},
|
||
"inputs": {
|
||
"type": "array",
|
||
"maxItems": 0
|
||
},
|
||
"operation": {
|
||
"type": "object",
|
||
"required": ["scene"],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"scene": {"$ref": "#/$defs/rotaryKilnScene"}
|
||
}
|
||
},
|
||
"outputs": {
|
||
"type": "array",
|
||
"maxItems": 6,
|
||
"uniqueItems": true,
|
||
"description": "为 render.views 中除 isometric 外的每个视图请求对应 PNG,可另选 GLB。",
|
||
"items": {
|
||
"oneOf": [
|
||
{"$ref": "#/$defs/sideOutput"},
|
||
{"$ref": "#/$defs/headOutput"},
|
||
{"$ref": "#/$defs/tailOutput"},
|
||
{"$ref": "#/$defs/cutawayOutput"},
|
||
{"$ref": "#/$defs/crossSectionOutput"},
|
||
{"$ref": "#/$defs/glbOutput"}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"$defs": {
|
||
"color": {
|
||
"type": "string",
|
||
"pattern": "^#[0-9A-Fa-f]{6}$"
|
||
},
|
||
"pngOutput": {
|
||
"type": "object",
|
||
"required": ["key", "type", "format"],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"key": {"type": "string"},
|
||
"type": {"const": "figure"},
|
||
"format": {"const": "png"}
|
||
}
|
||
},
|
||
"sideOutput": {
|
||
"allOf": [
|
||
{"$ref": "#/$defs/pngOutput"},
|
||
{"properties": {"key": {"const": "preview_side"}}}
|
||
]
|
||
},
|
||
"headOutput": {
|
||
"allOf": [
|
||
{"$ref": "#/$defs/pngOutput"},
|
||
{"properties": {"key": {"const": "preview_kiln_head"}}}
|
||
]
|
||
},
|
||
"tailOutput": {
|
||
"allOf": [
|
||
{"$ref": "#/$defs/pngOutput"},
|
||
{"properties": {"key": {"const": "preview_kiln_tail"}}}
|
||
]
|
||
},
|
||
"cutawayOutput": {
|
||
"allOf": [
|
||
{"$ref": "#/$defs/pngOutput"},
|
||
{"properties": {"key": {"const": "preview_cutaway"}}}
|
||
]
|
||
},
|
||
"crossSectionOutput": {
|
||
"allOf": [
|
||
{"$ref": "#/$defs/pngOutput"},
|
||
{"properties": {"key": {"const": "preview_cross_section"}}}
|
||
]
|
||
},
|
||
"glbOutput": {
|
||
"type": "object",
|
||
"required": ["key", "type", "format"],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"key": {"const": "scene_glb"},
|
||
"type": {"const": "model"},
|
||
"format": {"const": "glb"}
|
||
}
|
||
},
|
||
"rotaryKilnScene": {
|
||
"type": "object",
|
||
"required": ["type", "title", "kiln", "render"],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"type": {"const": "rotary_kiln"},
|
||
"title": {"type": "string", "minLength": 1, "maxLength": 160},
|
||
"kiln": {
|
||
"type": "object",
|
||
"required": [
|
||
"length_m", "outer_diameter_m", "shell_thickness_m",
|
||
"lining_thickness_m", "slope_percent", "support_stations"
|
||
],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"length_m": {"type": "number", "minimum": 5, "maximum": 200},
|
||
"outer_diameter_m": {"type": "number", "minimum": 0.5, "maximum": 15},
|
||
"shell_thickness_m": {"type": "number", "minimum": 0.005, "maximum": 0.5},
|
||
"lining_thickness_m": {"type": "number", "minimum": 0.01, "maximum": 1.5},
|
||
"slope_percent": {"type": "number", "minimum": 0, "maximum": 10},
|
||
"support_stations": {"type": "integer", "minimum": 2, "maximum": 8},
|
||
"rotational_speed_rpm": {"type": "number", "exclusiveMinimum": 0, "maximum": 10}
|
||
}
|
||
},
|
||
"components": {
|
||
"type": "object",
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"drive_system": {"type": "boolean"},
|
||
"burner": {"type": "boolean"},
|
||
"hoods": {"type": "boolean"},
|
||
"inspection_platform": {"type": "boolean"},
|
||
"material_bed": {"type": "boolean"}
|
||
}
|
||
},
|
||
"appearance": {
|
||
"type": "object",
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"shell_color": {"$ref": "#/$defs/color"},
|
||
"metal_color": {"$ref": "#/$defs/color"},
|
||
"lining_color": {"$ref": "#/$defs/color"},
|
||
"material_color": {"$ref": "#/$defs/color"},
|
||
"background_color": {"$ref": "#/$defs/color"}
|
||
}
|
||
},
|
||
"render": {
|
||
"type": "object",
|
||
"required": ["views"],
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"width": {"type": "integer", "minimum": 320, "maximum": 3840},
|
||
"height": {"type": "integer", "minimum": 240, "maximum": 2160},
|
||
"transparent_background": {"type": "boolean"},
|
||
"views": {
|
||
"type": "array",
|
||
"minItems": 1,
|
||
"maxItems": 6,
|
||
"uniqueItems": true,
|
||
"contains": {"const": "isometric"},
|
||
"items": {
|
||
"enum": [
|
||
"isometric", "side", "kiln_head", "kiln_tail",
|
||
"longitudinal_cutaway", "cross_section"
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|