Export As: [ PDF | ODT ]

DSON File Format Specification

Version 0.6.0

DAZ Studio 4.0.3.x produces files using version 0.5.0.0 of this specification, which is not published. The DAZ Studio 4.5.x Release Candidate was the first version available to the general public that produced files which are consistent with this specification. The current version of DAZ Studio is annotated here.

Introduction

The DAZ Scene Object Notation (DSON) file format is meant to be a lightweight format that captures the creation of a scene as a collection of assets with defined relationships. This format is not intended to be fully backward compatible with Poser content, although extensive efforts have been made to accommodate features of the Poser file format for features that are common to Poser and DAZ Studio.

Why Another Format?

DAZ has traditionally delivered content to users in one of three formats: Poser (*.pz3,*.cr2, *pz2, *.pp2, etc.), DAZ Studio Native Scene (*.daz), and DAZ Script (*.ds, *.dsa, *.dsb, *.dse). Each of these formats, with the exception of DAZ Script, are primarily intended to be content development formats. They support a very low level of granularity and a high level of content functionality.

The DAZ Studio Native Scene (*.daz) format is a binary, object-serialization format that provides an extensible storage scheme but can only be reasonably read by DAZ Studio itself due to its tight binding to DAZ Studio data structures. It is not intended to be a transport format and would be very difficult for another application to parse and use.

Poser format is text-based, but not based on any modern format standards. Choosing instead to follow loose rules in its syntax which make parsing the file slow and error-prone. This also causes an inability to support SAX-style parsing and delay loading of file segments.

The DSON format is capable of delivering content in a form that is designed for legal sharing, is simple to parse due to its JSON syntax, supports delayed loading, and can be delivered over the web.

Format Goals

  1. Allow the transfer of intelligent 3D content and provide a format for exchange between applications that implement the DAZ Content Engine.
  2. Lightweight, easy to transfer, and provides a human-readable form.
  3. Enable a means of legal sharing of scenes by use of an asset referencing scheme rather than inline storage of all elements of a scene.
  4. Support per-asset addressing and a definition of assets that is granular enough to allow artists to contribute in a variety of disciplines.
  5. Allow quick determination of what assets a user needs to recreate any segment of a scene.

Topics

  • Format Description - Explains, in detail, the various parts needed and how they fit together
  • Object Definitions - Provides an alphabetical listing of definitions for each data object type