CHAPTER 4

Phase 1 - Data Format

Phase 1 establishes the foundational data formats for 3D printing construction. This chapter explores JSON schemas for building models, material specifications, layer definitions, structural metadata, quality requirements, and process parameters that enable interoperability across the ecosystem.

JSON Schema Foundation

The WIA standard adopts JSON (JavaScript Object Notation) as its primary data interchange format. This decision balances human readability, tool support, compact representation, and widespread adoption across programming languages and platforms.

Why JSON?

Several factors motivated the choice of JSON over alternatives like XML, binary formats, or custom specifications:

JSON Schema Validation

All WIA data formats include corresponding JSON Schema definitions. These schemas:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "WIA Building Project",
  "type": "object",
  "required": ["standard", "version", "project", "geometry"],
  "properties": {
    "standard": {
      "type": "string",
      "const": "WIA-3D-PRINTING-CONSTRUCTION"
    },
    "version": {
      "type": "string",
      "pattern": "^\\d+\\.\\d+\\.\\d+$"
    }
  }
}

Building Project Schema

The root schema for a 3D printing construction project encompasses all information needed to plan, execute, and document a build. This includes project metadata, geometry, materials, process parameters, and quality requirements.

Project Metadata

Core project information identifies and describes the project:

{
  "project": {
    "id": "uuid-v4-string",
    "name": "Residential Building A1",
    "type": "residential",
    "location": {
      "address": "123 Main Street",
      "city": "Austin",
      "state": "TX",
      "country": "USA",
      "coordinates": {
        "latitude": 30.2672,
        "longitude": -97.7431,
        "elevation": 150.0
      }
    },
    "dates": {
      "design": "2025-01-15",
      "printStart": "2025-03-01",
      "printEnd": "2025-03-20",
      "completion": "2025-05-01"
    },
    "stakeholders": {
      "owner": "...",
      "architect": "...",
      "contractor": "...",
      "materialSupplier": "..."
    }
  }
}
Field Type Required Description
id UUID Yes Unique project identifier
name String Yes Human-readable project name
type Enum Yes Building classification
location Object Yes Geographic location details
dates Object Yes Project timeline milestones

Geometry Specification

Geometric data defines the physical form of the structure. The WIA format supports multiple geometric representations to accommodate different workflows and tools.

Mesh Representation

Triangle meshes provide the most common 3D geometry representation:

{
  "geometry": {
    "format": "mesh",
    "meshData": {
      "vertices": [
        [0.0, 0.0, 0.0],
        [10000.0, 0.0, 0.0],
        [10000.0, 15000.0, 0.0],
        [0.0, 15000.0, 0.0]
      ],
      "faces": [
        [0, 1, 2],
        [0, 2, 3]
      ],
      "unit": "mm"
    },
    "boundingBox": {
      "min": [0.0, 0.0, 0.0],
      "max": [10000.0, 15000.0, 8000.0]
    }
  }
}

Parametric Representation

For simple geometric forms, parametric descriptions are more compact and editable:

{
  "geometry": {
    "format": "parametric",
    "components": [
      {
        "type": "wall",
        "path": [[0,0], [10000,0], [10000,15000], [0,15000], [0,0]],
        "height": 3000,
        "thickness": 250
      },
      {
        "type": "opening",
        "position": [2000, 0, 1000],
        "dimensions": [1000, 2100, 250],
        "purpose": "door"
      }
    ]
  }
}

Layer-Based Representation

Direct layer definitions suitable for immediate printing:

{
  "geometry": {
    "format": "layers",
    "layerHeight": 20,
    "layers": [
      {
        "number": 1,
        "height": 20,
        "paths": [
          {
            "type": "perimeter",
            "points": [[0,0], [10000,0], [10000,15000], ...],
            "width": 40
          },
          {
            "type": "infill",
            "points": [[100,100], [9900,100], ...],
            "width": 40,
            "density": 0.4
          }
        ]
      }
    ]
  }
}

Material Specifications

Comprehensive material specifications ensure consistent behavior and enable quality control. Materials are defined with properties relevant to both printing process and structural performance.

Material Library

Projects reference materials from standardized library:

{
  "materials": {
    "primary": {
      "id": "WIA-CONCRETE-STD-001",
      "name": "Standard Printable Concrete",
      "category": "concrete",
      "composition": {
        "cement": {
          "type": "Portland Type I",
          "proportion": 0.35
        },
        "sand": {
          "maxSize": "2mm",
          "proportion": 0.45
        },
        "water": {
          "proportion": 0.15
        },
        "additives": {
          "superplasticizer": 0.03,
          "accelerator": 0.02
        }
      },
      "properties": {
        "printability": {
          "flowRate": {
            "min": 500,
            "max": 1500,
            "unit": "mm³/s"
          },
          "extrusionPressure": {
            "target": 1.2,
            "unit": "MPa"
          },
          "buildability": {
            "greenStrength": 15,
            "unit": "kPa"
          },
          "openTime": {
            "value": 45,
            "unit": "minutes"
          }
        },
        "structural": {
          "compressiveStrength": {
            "28day": 30,
            "unit": "MPa"
          },
          "tensileStrength": {
            "value": 3.5,
            "unit": "MPa"
          },
          "modulusOfElasticity": {
            "value": 25000,
            "unit": "MPa"
          }
        },
        "durability": {
          "freezeThaw": "pass",
          "sulfateResistance": "high",
          "carbonation": "low"
        }
      }
    }
  }
}
Property Category Key Parameters Validation Method
Printability Flow rate, pressure, buildability ASTM C1749, rheometer testing
Structural Strength, stiffness, ductility ASTM C39, C78, C469
Durability Freeze-thaw, sulfate, carbonation ASTM C666, C1012, accelerated carbonation
Thermal Conductivity, expansion, capacity ASTM C518, E831, C351

Print Parameters

Process parameters control how material is deposited. These parameters must be precisely specified to achieve desired quality and performance.

{
  "printParameters": {
    "layerHeight": 20,
    "printSpeed": {
      "perimeter": 100,
      "infill": 150,
      "unit": "mm/s"
    },
    "pathWidth": {
      "outer": 40,
      "inner": 40,
      "unit": "mm"
    },
    "temperature": {
      "material": 25,
      "ambient": 20,
      "unit": "celsius"
    },
    "flowRate": {
      "target": 1000,
      "tolerance": 50,
      "unit": "mm³/s"
    },
    "acceleration": {
      "max": 500,
      "unit": "mm/s²"
    },
    "retraction": {
      "distance": 5,
      "speed": 50,
      "unit": "mm"
    }
  }
}

Quality Requirements

Quality specifications define acceptance criteria for completed work. These include dimensional tolerances, surface finish, structural performance, and testing requirements.

{
  "quality": {
    "dimensional": {
      "tolerances": {
        "horizontal": {
          "value": 5,
          "unit": "mm"
        },
        "vertical": {
          "value": 10,
          "unit": "mm"
        },
        "wallThickness": {
          "value": 3,
          "unit": "mm"
        }
      }
    },
    "surface": {
      "roughness": {
        "max": 5,
        "unit": "mm"
      },
      "waviness": {
        "max": 10,
        "unit": "mm"
      }
    },
    "structural": {
      "loadTesting": {
        "required": true,
        "loadFactor": 1.5,
        "duration": 24,
        "unit": "hours"
      }
    },
    "inspection": {
      "frequency": "per-layer",
      "methods": ["visual", "laser-scan", "ultrasonic"]
    }
  }
}

Reinforcement Integration

Most concrete structures require reinforcement. The data format supports specification of both traditional rebar and printed reinforcement.

{
  "reinforcement": {
    "type": "hybrid",
    "traditional": [
      {
        "id": "rebar-001",
        "material": "steel-grade-60",
        "diameter": 16,
        "path": "3d-polyline-coordinates",
        "placement": {
          "layer": 10,
          "pausePrint": true,
          "installMethod": "manual"
        }
      }
    ],
    "printed": [
      {
        "id": "fiber-001",
        "material": "fiber-composite",
        "diameter": 2,
        "distribution": "continuous-mesh",
        "pattern": "rectilinear"
      }
    ]
  }
}

Complete Project Example

Bringing together all components, here's a complete minimal project specification:

{
  "standard": "WIA-3D-PRINTING-CONSTRUCTION",
  "version": "1.0.0",
  "project": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Single Family Residence",
    "type": "residential",
    "location": {
      "coordinates": {"latitude": 30.2672, "longitude": -97.7431}
    }
  },
  "geometry": {
    "format": "parametric",
    "components": [
      {"type": "wall", "path": [[0,0],[10000,0]], "height": 3000, "thickness": 250}
    ],
    "unit": "mm"
  },
  "materials": {
    "primary": {
      "id": "WIA-CONCRETE-STD-001",
      "properties": {
        "compressiveStrength": {"value": 30, "unit": "MPa"}
      }
    }
  },
  "printParameters": {
    "layerHeight": 20,
    "printSpeed": 100,
    "pathWidth": 40
  },
  "quality": {
    "dimensional": {
      "tolerances": {"horizontal": 5, "vertical": 10}
    }
  }
}

Validation and Verification

Data format compliance must be verifiable. The standard provides validation tools and procedures to ensure data quality.

Schema Validation

All project files must validate against official JSON schemas. Validation checks:

Semantic Validation

Beyond syntax, semantic validation ensures data makes physical sense:

Reference Implementation

The WIA project provides open-source validation tools:

// Python example
from wia_standards import validate_project

result = validate_project('project.json')
if result.valid:
    print("Project data is valid")
else:
    for error in result.errors:
        print(f"Error: {error.message} at {error.path}")

Extensibility and Custom Fields

While the standard defines comprehensive core fields, projects often have unique requirements. The format supports extensibility through custom field namespaces.

{
  "standard": "WIA-3D-PRINTING-CONSTRUCTION",
  "version": "1.0.0",
  "project": { /* ... standard fields ... */ },
  "extensions": {
    "com.example.vendor": {
      "proprietaryFeature": "value",
      "customProcessing": {
        "enabled": true,
        "parameters": {...}
      }
    },
    "org.researchproject.experimental": {
      "algorithmVersion": "2.5",
      "testData": {...}
    }
  }
}

Extension namespaces prevent conflicts and clearly identify vendor-specific or experimental features.

Versioning and Compatibility

As the standard evolves, data format versioning ensures compatibility. Files include version numbers, and parsers handle multiple versions.

Version Specification

Every file must specify which standard version it conforms to:

{
  "standard": "WIA-3D-PRINTING-CONSTRUCTION",
  "version": "1.2.3",
  ...
}

Compatibility Rules

Migration Tools

For major version transitions, the standard provides migration utilities:

wia-convert --from 1.5.0 --to 2.0.0 old-project.json new-project.json

Chapter Summary

Phase 1 of the WIA standard establishes comprehensive data formats using JSON schemas. These formats cover all aspects of 3D printing construction projects: project metadata, geometry (mesh, parametric, or layer-based), material specifications, print parameters, quality requirements, and reinforcement integration.

The JSON-based approach balances human readability with machine processability. JSON Schema provides powerful validation capabilities ensuring data quality and consistency. The format supports multiple geometric representations to accommodate different workflows, from high-level design to low-level print paths.

Material specifications include both printability properties (flow, pressure, buildability) and structural performance (strength, durability). Process parameters precisely control material deposition. Quality requirements define acceptance criteria with measurable tolerances.

Extensibility mechanisms allow vendor-specific features without fragmenting the core standard. Versioning rules ensure compatibility as the standard evolves. Validation tools verify both syntactic correctness and semantic validity.

Key Takeaways

  1. JSON Foundation: JSON provides ideal balance of human readability, tool support, and extensibility for construction data exchange, with JSON Schema enabling rigorous validation.
  2. Comprehensive Coverage: Data format encompasses all project aspects—metadata, geometry, materials, processes, quality, reinforcement—creating complete specification.
  3. Multiple Geometric Representations: Support for mesh, parametric, and layer-based geometry accommodates different workflows from conceptual design to production printing.
  4. Material-Process Integration: Material specifications include both printability properties and structural performance, with process parameters ensuring compatibility.
  5. Validation and Extensibility: Rigorous validation ensures data quality while extension mechanisms allow innovation without fragmenting core interoperability.

Review Questions

  1. Compare JSON, XML, and binary formats for construction data exchange. What specific characteristics make JSON optimal for the WIA standard's requirements?
  2. The standard supports three geometric representations: mesh, parametric, and layer-based. For each, describe appropriate use cases and explain advantages and limitations.
  3. Material specifications include multiple property categories: printability, structural, durability, thermal. Explain why each category is necessary and how properties within each category influence printing and performance.
  4. How do print parameters (layer height, speed, path width, flow rate) interact with material properties to determine print quality? Give specific examples of parameter-property relationships.
  5. Analyze the extensibility mechanism using custom field namespaces. How does this approach balance standardization with vendor innovation? What problems could arise without namespacing?
  6. The standard employs semantic versioning (major.minor.patch) with specific compatibility rules. Explain what changes are appropriate for each version level and why backward compatibility matters for industry adoption.

Looking Ahead

With foundational data formats established, Chapter 5 explores Phase 2—API Interface specifications. We'll examine RESTful APIs that enable systems to exchange this data, coordinate operations, manage projects, track materials, control print jobs, and report quality metrics. The APIs build directly on the Phase 1 data formats, creating an integrated ecosystem for 3D construction printing.