feat: add realistic portable localization core

This commit is contained in:
Codex
2026-08-28 18:19:31 +09:00
parent bc63ada1cd
commit d002a2bd70
20 changed files with 2345 additions and 70 deletions
+62
View File
@@ -21,6 +21,7 @@
"targetPeak": { "type": "number", "exclusiveMinimum": 0, "maximum": 1 }
}
},
"acoustics": { "$ref": "#/$defs/acoustics" },
"image": { "$ref": "#/$defs/image" },
"assets": { "type": "array", "maxItems": 128, "items": { "$ref": "#/$defs/asset" } },
"sources": { "type": "array", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/$defs/source" } },
@@ -38,6 +39,67 @@
"position": { "$ref": "#/$defs/position" }
}
},
"wallLevels": {
"type": "object", "additionalProperties": false,
"properties": {
"xMin": { "type": "number", "minimum": -60, "maximum": 0 },
"xMax": { "type": "number", "minimum": -60, "maximum": 0 },
"yMin": { "type": "number", "minimum": -60, "maximum": 0 },
"yMax": { "type": "number", "minimum": -60, "maximum": 0 },
"zMin": { "type": "number", "minimum": -60, "maximum": 0 },
"zMax": { "type": "number", "minimum": -60, "maximum": 0 }
}
},
"room": {
"type": "object", "additionalProperties": false, "required": ["min", "max"],
"properties": {
"min": { "$ref": "#/$defs/position" },
"max": { "$ref": "#/$defs/position" }
}
},
"reflections": {
"type": "object", "additionalProperties": false,
"required": ["order", "wallGainDb", "scattering"],
"properties": {
"order": { "enum": [0, 1] },
"wallGainDb": { "type": "number", "minimum": -60, "maximum": 0 },
"perWallDb": { "$ref": "#/$defs/wallLevels" },
"scattering": { "type": "number", "minimum": 0, "maximum": 1 }
}
},
"diffuseReverb": {
"type": "object", "additionalProperties": false,
"required": ["enabled", "rt60Seconds", "gainDb", "tapCount"],
"properties": {
"enabled": { "type": "boolean" },
"rt60Seconds": { "type": "number", "minimum": 0.05, "maximum": 5 },
"gainDb": { "type": "number", "minimum": -60, "maximum": 0 },
"tapCount": { "type": "integer", "minimum": 1, "maximum": 32 }
}
},
"occluder": {
"type": "object", "additionalProperties": false,
"required": ["id", "min", "max", "transmissionDb", "diffractionGainDb"],
"properties": {
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*$" },
"min": { "$ref": "#/$defs/position" },
"max": { "$ref": "#/$defs/position" },
"transmissionDb": { "type": "number", "minimum": -120, "maximum": 0 },
"diffractionGainDb": { "type": "number", "minimum": -120, "maximum": 0 }
}
},
"acoustics": {
"type": "object", "additionalProperties": false, "required": ["model"],
"properties": {
"model": { "enum": ["free-field", "shoebox"] },
"room": { "$ref": "#/$defs/room" },
"reflections": { "$ref": "#/$defs/reflections" },
"diffuseReverb": { "$ref": "#/$defs/diffuseReverb" },
"occluders": {
"type": "array", "maxItems": 8, "items": { "$ref": "#/$defs/occluder" }
}
}
},
"image": {
"type": "object", "additionalProperties": false,
"required": ["assetId", "widthPixels", "heightPixels", "plane"],