Basic Asset Implementation
This guide covers fundamental implementation patterns for digital assets in the metaverse.
Use Cases
Basic asset implementation provides a foundation for all types of metaverse assets:
- 3D assets that need consistent representation across platforms
- Digital items with rich metadata for discoverability
- Assets requiring proper attribution and licensing information
- Content that needs technical specifications for compatibility
- Interoperable assets for cross-platform experiences
Prerequisites
Before implementing basic asset metadata, ensure you have:
- A clear understanding of your asset's purpose and properties
- Appropriate Schema.org types for your content (3DModel, ImageObject, etc.)
- Knowledge of any platform-specific requirements
- Access to any external resources your asset references
Implementation Steps
1. Create Core Asset Metadata
Start with basic Schema.org properties that all assets should have:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "3DModel",
"name": "Ergonomic Office Chair",
"description": "Modern office chair with adjustable height and lumbar support",
"creator": {
"@type": "Organization",
"name": "Virtual Furnishings Inc.",
"url": "https://virtualfurnishings.example.com"
},
"contentUrl": "https://assets.example.com/chair.glb",
"encodingFormat": "model/gltf-binary",
"license": "https://creativecommons.org/licenses/by/4.0/",
"image": "https://assets.example.com/chair-preview.jpg",
"dateCreated": "2024-03-15",
"version": "1.2.0"
}
2. Add Storage and Delivery Information
Include details about how your asset is stored and accessed:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "3DModel",
"name": "Ergonomic Office Chair",
"contentUrl": "https://assets.example.com/chair.glb",
"sameAs": [
"ipfs://QmXaXa1XaX...",
"ar://asset/chair123"
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "storagePolicy",
"name": "Storage Policy",
"value": {
"redundancy": "multi-regional",
"persistence": "permanent",
"cacheTTL": 86400
}
}
]
}
3. Specify Platform Compatibility
Define how your asset works across different platforms:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "3DModel",
"name": "Ergonomic Office Chair",
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "platformCompatibility",
"name": "Platform Compatibility",
"value": {
"supported": ["platform-a", "platform-b", "platform-c"],
"requirements": {
"minVersion": "2.0",
"features": ["advanced-materials", "physics"]
},
"optimization": {
"polycount": 12500,
"textureSize": 2048,
"animations": 5
}
}
}
]
}
Complete Example
A complete asset implementation with all essential components:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/",
"gltf": "https://www.khronos.org/gltf/"
},
"@type": "3DModel",
"name": "Ergonomic Office Chair",
"description": "Modern office chair with adjustable height and lumbar support",
"identifier": {
"@type": "PropertyValue",
"propertyID": "assetId",
"value": "asset-2024-001"
},
"creator": {
"@type": "Organization",
"name": "Virtual Furnishings Inc.",
"url": "https://virtualfurnishings.example.com",
"logo": {
"@type": "ImageObject",
"url": "https://virtualfurnishings.example.com/logo.png"
}
},
"contentUrl": "https://assets.example.com/chair.glb",
"encodingFormat": "model/gltf-binary",
"license": "https://creativecommons.org/licenses/by/4.0/",
"image": "https://assets.example.com/chair-preview.jpg",
"dateCreated": "2024-03-15",
"version": "1.2.0",
"sameAs": [
"ipfs://QmXaXa1XaX...",
"ar://asset/chair123"
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "storagePolicy",
"name": "Storage Policy",
"value": {
"redundancy": "multi-regional",
"persistence": "permanent",
"cacheTTL": 86400
}
},
{
"@type": "PropertyValue",
"propertyID": "platformCompatibility",
"name": "Platform Compatibility",
"value": {
"supported": ["platform-a", "platform-b", "platform-c"],
"requirements": {
"minVersion": "2.0",
"features": ["advanced-materials", "physics"]
},
"optimization": {
"polycount": 12500,
"textureSize": 2048,
"animations": 5
}
}
},
{
"@type": "PropertyValue",
"propertyID": "accessControl",
"name": "Access Control",
"value": {
"permissions": ["premium-tier"],
"regions": ["US", "EU"],
"minimumAge": 13,
"platformRequirements": ["physics-v2"]
}
},
{
"@type": "PropertyValue",
"propertyID": "searchMetadata",
"name": "Search Metadata",
"value": {
"tags": ["furniture", "office", "ergonomic", "chair"],
"category": "Furniture/Office",
"featuredIn": ["virtual-office-demo", "productivity-space"]
}
}
],
"gltf:asset": {
"version": "2.0",
"generator": "Studio Modeler 2024",
"copyright": "© 2024 Virtual Furnishings Inc."
}
}
Variations
Access Control Variation
For assets with access restrictions:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "3DModel",
"name": "Premium Asset",
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "accessControl",
"name": "Access Control",
"value": {
"permissions": ["premium-tier"],
"regions": ["US", "EU"],
"minimumAge": 13,
"platformRequirements": ["physics-v2"]
}
}
]
}
Content Updates Variation
For assets with update management:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "3DModel",
"name": "Ergonomic Office Chair",
"version": "2.1.0",
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "updateControl",
"name": "Update Control",
"value": {
"compatibility": "^2.0.0",
"updateUrl": "https://updates.example.com/asset/{version}",
"rollbackSupported": true,
"releaseNotes": "https://docs.example.com/chair/changelog"
}
}
]
}
Discovery Enhancement Variation
For optimizing asset discoverability:
{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "3DModel",
"name": "Ergonomic Office Chair",
"keywords": ["furniture", "modern", "interactive", "office"],
"category": "Home/Office/Furniture",
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "searchMetadata",
"name": "Search Metadata",
"value": {
"tags": ["seating", "ergonomic", "adjustable"],
"relatedAssets": ["desk-modern", "office-set"],
"featuredIn": ["virtual-office-demo", "productivity-space"]
}
}
]
}
Troubleshooting
Missing Required Properties
Issue: Schema validation fails due to missing required properties.
Solution: Ensure that all required Schema.org properties for your chosen type are included. For 3DModel type, always include at minimum: name, contentUrl, and encodingFormat.
Incompatible Type Declarations
Issue: Properties don't align with the declared @type.
Solution: Verify that all properties are appropriate for the Schema.org type you've selected. Use additionalProperty for platform-specific or custom properties that aren't part of the standard Schema.org vocabulary.