Skip to content

Commit

Permalink
enhance descriptions of some elements
Browse files Browse the repository at this point in the history
  • Loading branch information
MustafaTrian committed Nov 21, 2024
1 parent bf339bd commit 70ced39
Showing 1 changed file with 208 additions and 184 deletions.
392 changes: 208 additions & 184 deletions schemas/asset_schema.json
Original file line number Diff line number Diff line change
@@ -1,189 +1,213 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "Root object for the JSON data structure",
"properties": {
"metadata": {
"type": "object",
"description": " Part of the 3D asset file https://github.com/asam-ev/OpenMATERIAL/blob/main/content/geometry/general.adoc#3d-asset-file ; contains key information about the asset, including its identity, authorship, technical specifications, and legal details.",
"properties": {
"name": {
"type": "string",
"description": "The display name of the asset, such as 'Car Model A' or 'Urban Scene 1'."
},
"description": {
"type": "string",
"description": "A concise summary of the asset's purpose or features (2–3 sentences)."
},
"uuid": {
"type": "string",
"description": "A 32-character hexadecimal string serving as a unique identifier for the asset.",
"pattern": "^[a-f0-9]{32}$"
},
"assetVersion": {
"type": "string",
"description": "The version number of the asset, following Semantic Versioning (e.g., '1.0.0').",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"openMaterialVersion": {
"type": "string",
"description": "The version of the OpenMATERIAL specification used, adhering to Semantic Versioning.",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"copyright": {
"type": "string",
"description": "Indicates copyright details, including the year and copyright holder (e.g., '© 2024 ACME Inc.')."
},
"license": {
"type": "string",
"description": "Describes the license for asset distribution. Use an SPDX identifier for open-source licenses (e.g., 'MIT'), or provide a URL or filename for proprietary licenses."
},
"author": {
"type": "string",
"description": "Lists the author(s) of the asset as a name, email, or company. Multiple authors should be comma-separated."
},
"modelCreationTool": {
"type": "string",
"description": "Specifies the software or tool (and version) used to create the 3D model (e.g., 'Blender 3.5')."
},
"creationDate": {
"type": "string",
"description": "The date and time of asset creation, formatted in ISO 8601 (e.g., '2024-11-20T15:30:00Z').",
"pattern": "^\\d{8}T\\d{6}Z$"
},
"modelingMethod": {
"type": "string",
"description": "Indicates how the model was created, e.g., '3D scan', 'photo-based modeling', or 'freehand design'."
},
"validationDescription": {
"type": "string",
"description": "Details the validation process used to compare the model geometry with real-world objects."
},
"assetType": {
"type": "string",
"description": "Specifies whether the asset represents an individual object ('object') or a collection of objects ('scene').",
"enum": ["object", "scene"]
},
"objectClass": {
"type": "string",
"description": "Classifies the object type when 'assetType' is 'object', e.g., 'vehicle' or 'human'.",
"enum": ["vehicle", "human", "road_network", "other"]
},
"animated": {
"type": "boolean",
"description": "Indicates whether the 3D model contains keyframe animations."
},
"pbrMaterialWorkflow": {
"type": "string",
"description": "Describes the Physically Based Rendering (PBR) material workflow used, either 'metallic' or 'specular'.",
"enum": ["metallic", "specular", "none"]
},
"triangleCount": {
"type": "integer",
"description": "The total number of triangles in the model. A quad polygon counts as two triangles."
},
"meshCount": {
"type": "integer",
"description": "The total number of meshes in the 3D geometry."
},
"textureResolutions": {
"type": "array",
"description": "Lists all texture resolutions used in the 3D model (e.g., '1K', '2K', '4K').",
"items": {
"type": "string",
"enum": ["1K", "2K", "4K"]
},
"minItems": 1,
"uniqueItems": true
},
"normalMapFormat": {
"type": "string",
"description": "Specifies the format of normal maps, such as 'DirectX' or 'OpenGL'.",
"enum": ["DirectX", "OpenGL", "none"]
},
"boundingBox": {
"type": "object",
"description": "Defines the axis-aligned bounding box dimensions for the asset.",
"properties": {
"x": {
"type": "array",
"description": "Minimum and maximum values in meters along the x-axis.",
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
},
"y": {
"type": "array",
"description": "Minimum and maximum values in meters along the y-axis.",
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "Root object for the JSON data structure",
"properties": {
"metadata": {
"type": "object",
"description": " Part of the 3D asset file https://github.com/asam-ev/OpenMATERIAL/blob/main/content/geometry/general.adoc#3d-asset-file ; contains key information about the asset, including its identity, authorship, technical specifications, and legal details.",
"properties": {
"name": {
"type": "string",
"description": "The display name of the asset, such as 'Car Model A' or 'Urban Scene 1'."
},
"description": {
"type": "string",
"description": "A concise summary of the asset's purpose or features (2-3 sentences)."
},
"uuid": {
"type": "string",
"description": "Universally unique identifier for the asset. See https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.",
"pattern": "^[a-f0-9]{32}$"
},
"assetVersion": {
"type": "string",
"description": "The version number of the asset, following Semantic Versioning (e.g., '1.0.0').",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"openMaterialVersion": {
"type": "string",
"description": "The version of the OpenMATERIAL specification used, adhering to Semantic Versioning.",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"copyright": {
"type": "string",
"description": "Indicates copyright details, including the year and copyright holder (e.g., '© 2024 ACME Inc.')."
},
"license": {
"type": "string",
"description": "Describes the license for asset distribution. Use an SPDX identifier for open-source licenses (e.g., 'MIT'), or provide a URL or filename for proprietary licenses."
},
"author": {
"type": "string",
"description": "Lists the author(s) of the asset as a name, email, or company. Multiple authors should be comma-separated."
},
"modelCreationTool": {
"type": "string",
"description": "Specifies the software or tool (and version) used to create the 3D model (e.g., 'Blender 3.5')."
},
"creationDate": {
"type": "string",
"description": "The date and time of asset creation, formatted in ISO 8601 (e.g., '2024-11-20T15:30:00Z').",
"pattern": "^\\d{8}T\\d{6}Z$"
},
"modelingMethod": {
"type": "string",
"description": "Indicates how the model was created, e.g., '3D scan', 'photo-based modeling', or 'freehand design'."
},
"validationDescription": {
"type": "string",
"description": "Details the validation process used to compare the model geometry with real-world objects."
},
"assetType": {
"type": "string",
"description": "Specifies whether the asset represents an individual object ('object') or a collection of objects ('scene').",
"enum": [
"object",
"scene"
]
},
"objectClass": {
"type": "string",
"description": "Classifies the object type when 'assetType' is 'object', e.g., 'vehicle' or 'human'.",
"enum": [
"vehicle",
"human",
"road_network",
"other"
]
},
"animated": {
"type": "boolean",
"description": "Indicates whether the 3D model contains keyframe animations."
},
"pbrMaterialWorkflow": {
"type": "string",
"description": "Whether the Physically Based Rendering (PBR) material workflow used. If so, workflow should be either 'metallic' or 'specular'.",
"enum": [
"metallic",
"specular",
"none"
]
},
"triangleCount": {
"type": "integer",
"description": "The total number of triangles in the model. A quad polygon counts as two triangles."
},
"meshCount": {
"type": "integer",
"description": "The total number of meshes in the 3D geometry."
},
"textureResolutions": {
"type": "array",
"description": "Lists all texture resolutions used in the 3D model (e.g., '1K', '2K', '4K').",
"items": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
]
},
"minItems": 1,
"uniqueItems": true
},
"normalMapFormat": {
"type": "string",
"description": "Specifies whether the 3D model utilizes normal maps as textures. If so, its format should be either DirectX or OpenGL. ",
"enum": [
"DirectX",
"OpenGL",
"none"
]
},
"boundingBox": {
"type": "object",
"description": "Defines the axis-aligned which defines the spatial boundaries of an asset in a 3D space.",
"properties": {
"x": {
"type": "array",
"description": "Minimum and maximum values in meters along the x-axis.",
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
},
"y": {
"type": "array",
"description": "Minimum and maximum values in meters along the y-axis.",
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
},
"z": {
"type": "array",
"description": "Minimum and maximum values in meters along the z-axis.",
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
}
},
"required": [
"x",
"y",
"z"
]
}
},
"z": {
"type": "array",
"description": "Minimum and maximum values in meters along the z-axis.",
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
"required": [
"name",
"description",
"uuid",
"assetVersion",
"openMaterialVersion",
"copyright",
"license",
"author",
"creationDate",
"assetType",
"objectClass",
"animated",
"pbrMaterialWorkflow",
"triangleCount",
"meshCount",
"textureResolutions",
"normalMapFormat",
"boundingBox"
]
},
"materialMappingUri": {
"type": "string",
"description": "Relative path to a material mapping file (.xomm). In this file, material names from the 3D model file or texture color codes from textures assigned in materialTextureAssignment are linked to OpenMATERIAL property files.",
"pattern": ".*\\.xomm$"
},
"materialTextureAssignment": {
"type": "array",
"description": "Optional array containing material texture assignments. It links material names contained in the 3D model file to OpenMATERIAL assignment textures. In a separate material mapping file, the 'color' values in this texture are linked to OpenMATERIAL property files.",
"items": {
"type": "array",
"items": [
{
"type": "string",
"description": "Name of the material in the 3D model file."
},
{
"type": "string",
"description": "File path to the OpenMATERIAL assignment texture. Supported texture formats are png and jpg.",
"pattern": "^(\\./|/)?([a-zA-Z0-9_\\-./]+)\\.(png|jpg|jpeg)$"
}
],
"minItems": 2,
"maxItems": 2
}
},
"required": ["x", "y", "z"]
}
},
"required": [
"name",
"description",
"uuid",
"assetVersion",
"openMaterialVersion",
"copyright",
"license",
"author",
"creationDate",
"assetType",
"objectClass",
"animated",
"pbrMaterialWorkflow",
"triangleCount",
"meshCount",
"textureResolutions",
"normalMapFormat",
"boundingBox"
]
},
"materialMappingUri": {
"type": "string",
"description": "Relative path to a material mapping file (.xomm). In this file, material names from the 3D model file or texture color codes from textures assigned in materialTextureAssignment are linked to OpenMATERIAL property files.",
"pattern": ".*\\.xomm$"
},
"materialTextureAssignment": {
"type": "array",
"description": "Optional array containing material texture assignments. It links material names contained in the 3D model file to OpenMATERIAL assignment textures. In a separate material mapping file, the 'color' values in this texture are linked to OpenMATERIAL property files.",
"items": {
"type": "array",
"items": [
{
"type": "string",
"description": "Name of the material in the 3D model file."
},
{
"type": "string",
"description": "File path to the OpenMATERIAL assignment texture. Supported texture formats are png and jpg.",
"pattern": "^(\\./|/)?([a-zA-Z0-9_\\-./]+)\\.(png|jpg|jpeg)$"
}
],
"minItems": 2,
"maxItems": 2
}
}
},
"required": [
"metadata"
]
}
"required": [
"metadata"
]
}

0 comments on commit 70ced39

Please sign in to comment.