DevelopmentSystem ArchitectureData Model[Ken] Design Version Mesh

[Ken] Design Version Mesh

Design Version Meshes represent specific variants or configurations of a Design Family. Each mesh represents a different size, style, or configuration option within the same design family (e.g., 3-seater sofa, 2-seater sofa, ottoman).

๐Ÿ›‹๏ธ

Key Concept

Design Version Meshes allow a single Design Family to offer multiple variants. For example, a โ€œDanish Sofaโ€ design family can include 3-seater, 2-seater, and ottoman variants - each as a separate Design Version Mesh.


What is a Design Version Mesh?

A Design Version Mesh represents a specific variant or configuration within a Design Family. It enables:

  • Product Variants - Multiple size/style options within the same design family
  • Asset Management - Organizing 3D variants with metadata and thumbnails
  • Version Control - Different mesh configurations per design version
  • Catalog Integration - Controlling visibility in product catalogs
  • Localization - Supporting multiple languages for variant names

Hierarchy Relationship

Design Family โ†’ Design Version โ†’ Design Version Mesh

Example: Danish Sofa Collection

Design Family: "DANISH SOFA"
โ”œโ”€โ”€ Design Version: "v2.0"
    โ”œโ”€โ”€ Design Version Mesh: "3 Seater 180cm" (mesh_name: MS-00003100)
    โ”œโ”€โ”€ Design Version Mesh: "2 Seater 160cm" (mesh_name: MS-00003101)
    โ””โ”€โ”€ Design Version Mesh: "Ottoman" (mesh_name: MS-00003102)

Each Design Version Mesh represents a complete furniture piece variant:

  • 3 Seater: Full-size sofa for three people
  • 2 Seater: Smaller loveseat configuration
  • Ottoman: Matching footstool/pouf

Attributes & Metadata

Design Version Meshes contain metadata that links design versions to actual 3D geometry, manages asset delivery, and controls catalog visibility.

Core Identity

Basic identifiers and naming:

AttributeTypeDescription
sfidString (18 chars)Primary key, Salesforce ID format
nameStringDesign Version Name
mesh_nameStringName of the actual mesh asset file
mesh_label_nameStringUser-friendly label for UI display

Example:

sfid: "a50OQ000001R92PYAS"
name: "0.0"
mesh_name: "MS-xxxxxxxx"
mesh_label_name: "3 Seater"
๐Ÿ’ก

Naming Convention

  • name: Design Version Name (e.g., โ€œ0.0โ€)
  • mesh_name: Asset filename reference (e.g., โ€œMS-00003100โ€)
  • mesh_label_name: Short UI label (e.g., โ€œ3 Seaterโ€)

Relationships

Links to parent entities and actual mesh assets:

AttributeTypeDescription
design_family_sfidForeign KeyReference to parent Design Family
mesh_sfidForeign KeyReference to actual Mesh geometry
design_mesh_junction_sfidForeign KeyJunction table reference for design-mesh relationship

Data Structure:

Design Version Mesh (a50OQ000001R92PYAS)
โ”œโ”€โ”€ design_family_sfid: a4fOQ000000g8yrYAA
โ”‚   โ””โ”€โ”€ Points to: MALAGA Design Family
โ”‚
โ”œโ”€โ”€ mesh_sfid: a60OQ000001S03QYAT
โ”‚   โ””โ”€โ”€ Points to: Actual 3D mesh geometry
โ”‚
โ””โ”€โ”€ design_mesh_junction_sfid: a70OQ000001T14RZAU
    โ””โ”€โ”€ Points to: Junction table between Design Version and Mesh

Purpose of Junction:

The design_mesh_junction_sfid enables:

  • Many-to-many relationships between designs and meshes
  • Shared mesh assets across multiple design versions
  • Efficient asset reuse and storage

Asset Properties

Information about the 3D asset files and loading optimization:

AttributeTypeDescription
mesh_thumbnail_urlURLCloudinary URL of the mesh thumbnail
mesh_pathPathFile path to the 3D model asset
chunk_idString/IntegerAsset chunk identifier for loading
chunk_sizeIntegerSize of the asset chunk in bytes
sort_orderIntegerDisplay ordering in lists and UI

Asset Loading Flow:

  1. Thumbnail Display

    • mesh_thumbnail_url loaded first for quick preview
    • Example: https://res.cloudinary.com/dyl94w48r/image/upload/v1736304000/design-version-meshes/thumbnail/seat_cushion.jpg
  2. Asset Path Resolution

    • mesh_path determines where to fetch the 3D model
    • Example: /Game/DLC/Dist/GenericItems/CODE/MS-xxxxxxx.MS-xxxxxxx
  3. Chunk Management

    • chunk_id: Groups related assets for batch download
    • chunk_size: Tracks download size for progress indicators
    • Example: chunk_id: 1234, chunk_size: 5242880 (5MB)
  4. Display Order

    • sort_order: Controls listing sequence
    • Lower values appear first
    • Example: sort_order: 1 (main mesh), sort_order: 2 (accessory)
๐Ÿ“ฆ

Chunk Optimization

Multiple meshes with the same chunk_id are downloaded together, reducing network requests and improving load times. This is especially important for multi-mesh designs.


Visibility & Localization

Controls how meshes appear in different regional catalogs and applications:

AttributeTypeDescription
visibility_app_jp_jaString (Enum)Controls visibility in Japanese application catalog and search
name_for_multi_mesh_designStringName used when design has multiple meshes
japanese_name_for_multi_mesh_designStringJapanese localized name for multi-mesh designs

Visibility Flags:

The visibility_app_jp_ja attribute controls regional availability and catalog behavior:

ValueDescription
"Catalog, Search"Visible in both catalog browsing and search results
"Catalog"Visible in catalog browsing only, hidden from search
"Exclusive Custom Catalog"Available only in custom/curated catalogs
"Don't Show in App"Hidden from all catalog and search interfaces

Example Usage:

// Standard product - fully visible
visibility_app_jp_ja: "Catalog, Search"

// Limited visibility - catalog only
visibility_app_jp_ja: "Catalog"

// Special collection - curated access only
visibility_app_jp_ja: "Exclusive Custom Catalog"

// Internal/deprecated - hidden
visibility_app_jp_ja: "Don't Show in App"

Multi-Mesh Design Names:

When a Design Family offers multiple variant options, these attributes provide context:

Example: Modular Sofa Variants

Variantmesh_label_namename_for_multi_mesh_designjapanese_name_for_multi_mesh_design
3 Seaterโ€3 Seater""3 Seater 180cm""3ไบบๆŽ›ใ‘ 180cmโ€
2 Seaterโ€2 Seater""2 Seater 160cm""2ไบบๆŽ›ใ‘ 160cmโ€
Ottomanโ€Ottoman""Ottoman 80cm""ใ‚ชใƒƒใƒˆใƒžใƒณ 80cmโ€

Localization Flow:

User Language: Japanese (ja-JP)
โ””โ”€โ”€ Display: japanese_name_for_multi_mesh_design
    โ””โ”€โ”€ Fallback: name_for_multi_mesh_design (if Japanese name empty)

User Language: English (en-US)
โ””โ”€โ”€ Display: name_for_multi_mesh_design

Use Cases & Examples

Single-Variant Design

Simple furniture items with only one configuration:

Example: Fixed Design Armchair

Design Family: "NORDIC ARMCHAIR"
โ””โ”€โ”€ Design Version: "1.0"
    โ””โ”€โ”€ Design Version Mesh: "Standard"
        โ”œโ”€โ”€ mesh_name: "MS-00004200"
        โ”œโ”€โ”€ mesh_label_name: "Standard"
        โ”œโ”€โ”€ name_for_multi_mesh_design: null (only one variant)
        โ””โ”€โ”€ sort_order: 1

Characteristics:

  • Single variant available
  • No size/configuration options
  • Multi-variant naming not required
  • Simple catalog presentation

Multi-Variant Design

Product families offering multiple size or configuration options:

Example: Danish Sofa Collection

Design Family: "DANISH SOFA"
โ””โ”€โ”€ Design Version: "2.5"
    โ”œโ”€โ”€ Design Version Mesh: "3 Seater 180"
    โ”‚   โ”œโ”€โ”€ mesh_name: "MS-00003100"
    โ”‚   โ”œโ”€โ”€ mesh_label_name: "3 Seater"
    โ”‚   โ”œโ”€โ”€ name_for_multi_mesh_design: "3 Seater 180cm"
    โ”‚   โ”œโ”€โ”€ japanese_name_for_multi_mesh_design: "3ไบบๆŽ›ใ‘ 180cm"
    โ”‚   โ””โ”€โ”€ sort_order: 1
    โ”‚
    โ”œโ”€โ”€ Design Version Mesh: "2 Seater 160"
    โ”‚   โ”œโ”€โ”€ mesh_name: "MS-00003101"
    โ”‚   โ”œโ”€โ”€ mesh_label_name: "2 Seater"
    โ”‚   โ”œโ”€โ”€ name_for_multi_mesh_design: "2 Seater 160cm"
    โ”‚   โ”œโ”€โ”€ japanese_name_for_multi_mesh_design: "2ไบบๆŽ›ใ‘ 160cm"
    โ”‚   โ””โ”€โ”€ sort_order: 2
    โ”‚
    โ””โ”€โ”€ Design Version Mesh: "Ottoman"
        โ”œโ”€โ”€ mesh_name: "MS-00003102"
        โ”œโ”€โ”€ mesh_label_name: "Ottoman"
        โ”œโ”€โ”€ name_for_multi_mesh_design: "Ottoman 80cm"
        โ”œโ”€โ”€ japanese_name_for_multi_mesh_design: "ใ‚ชใƒƒใƒˆใƒžใƒณ 80cm"
        โ””โ”€โ”€ sort_order: 3

Benefits:

  • โœ… Customers can choose the size that fits their space
  • โœ… Each variant maintains same design language
  • โœ… Coordinated collection (can mix and match)
  • โœ… Localized names for each variant

Modular Design System

Reusable design elements across multiple product families:

Example: Sectional Sofa System

Design Family: "MODULAR SECTIONAL"
โ””โ”€โ”€ Design Version: "3.0"
    โ”œโ”€โ”€ Design Version Mesh: "Left Arm Section"
    โ”‚   โ””โ”€โ”€ mesh_sfid: MESH_LEFT (mesh_name: MS-00005200)
    โ”‚
    โ”œโ”€โ”€ Design Version Mesh: "Right Arm Section"
    โ”‚   โ””โ”€โ”€ mesh_sfid: MESH_RIGHT (mesh_name: MS-00005201)
    โ”‚
    โ”œโ”€โ”€ Design Version Mesh: "Armless Section"
    โ”‚   โ””โ”€โ”€ mesh_sfid: MESH_CENTER (mesh_name: MS-00005202)
    โ”‚
    โ”œโ”€โ”€ Design Version Mesh: "Corner Section"
    โ”‚   โ””โ”€โ”€ mesh_sfid: MESH_CORNER (mesh_name: MS-00005203)
    โ”‚
    โ””โ”€โ”€ Design Version Mesh: "Chaise Section"
        โ””โ”€โ”€ mesh_sfid: MESH_CHAISE (mesh_name: MS-00005204)

Modular Benefits:

  • Users can configure custom layouts
  • Each section is a complete furniture piece
  • Mix and match to fit any space
  • Consistent design across all sections

Core Resources

Material System

Asset Management

Technical Details