Skip to content

Nosenzor/Open3SDCM

Repository files navigation

Open3SDCM

An attempt to read unencrypted 3Shape DCM.

The project will be written in C++ with the first goal to make a cli command that can convert a DCM file into STL, OBJ or PLY files. Then as an extension a python binding can be build.

Goals of the project :

  1. Read an extract the mesh(es) geometrical information (vertices coordinates and triangles) from DCM
  2. Convert to STL, PLY, OBJ
  3. Read colors applied on meshes
  4. Read UV mapping and Texture
  5. Read extra curves

Not part of the goals (at least at the beginning)

  • Write DCMs
  • Read encrypted file

How to build

Run the following from the repository root:

cmake -DCMAKE_BUILD_TYPE=Release --preset ninja-release-vcpkg -S . -B ./builds/ninja-release-vcpkg
cmake --build ./builds/ninja-release-vcpkg

Reading a DCM file (reverse engineering Documentation)

DCM can be read with a text editor. It is a xml file. The internal file is called HPS. The leaves of the XML contain binary data that is encoded in base64. Thus vertices coordinates and triangles are encoded in base64.

<HPS version="1.0">
  <Packed_geometry>
    <Schema>CE</Schema>
    <Binary_data>
      <CE version="1.0">
        <Vertices vertex_count="376" base64_encoded_bytes="4512" check_value="330137282">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</Vertices>
        <Facets facet_count="748" base64_encoded_bytes="778" color="8421504">BAAAAAAAAAAAAAEAAAIAAAIAAAAAAgAAAAIAAAACAAECAAAAAgIAAAACAgAAAAAAAAICAAABAAICAAAAAAICAAECAgAAAQAAAQIAAAAAAgICAAAAAAAAAQACAgAAAAEAAgICAAAAAAACAgIAAQIAAQAAAAACAgIAAAAAAAICAgIAAAAAAAABAAAAAgICAAAAAQACAgICAAAAAAAAAgICAgABAgICAAABAAACAgIAAAAAAAACAgICAgAAAAAAAAABAAAAAgIAAQAAAAEAAgICAgIAAAAAAAAAAgICAgIAAQICAgAAAQAAAQICAgAAAAAAAAACAgICAgIAAAAAAAAAAAEAAAACAgABAAAAAQACAgICAgIAAAABAAAAAAICAgICAgABAgICAAABAQAAAgICAAAAAAAAAAACAgICAgIAAAAAAAAAAAABAAAAAAEAAQIAAAABAAICAgICAgIAAAAAAQAAAAICAgICAgIAAQICAgABAgABAAIAAQIAAAAAAAAAAAACAgICAgIAAAEAAAAAAAAAAQEAAAABAAIAAgIAAgICAgICAgIAAAEAAQAAAQABAgICAgICAAEAAQIAAQIAAAAH6wAAAAEBCQAAAAAAAAAAAQACAgICAAAAAQAAAAAAAAIAAAAAAQECAgACAgICAgICAgABAAAAAQABAAECAgICAgICBwoBAAABCQICAAEAAAEAAgAAAAAAAAEAAAACAgIAAAAAAQAAAAAAAAEAAAICAgACAgICAgICAgIAAQABAQIAAQICAgICAgICAgABAAEAAgAAAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAICAAICAgICAgABAgc9AQAAAQkAAQICAgICAgICAgABAQACAAAAAAAAAAECAAAAAQAAAAABAAACAAICAgICAgABAAEBAgICAgICAgICAAIAAAACAAABAAAAAQAAAAEAAgACAgICAQABAgIAAQICAgICAAIAAgdxAQAAAAEAAQIAAAECAAICCQd2AQAAAQIHdAEAAAEJAgIAAgkBAQEBAQ==</Facets>
      </CE>
    </Binary_data>
  </Packed_geometry>
  <FacetMarks>QAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAA==</FacetMarks>
  <Annotations/>
  <Objects/>
  <Splines/>
  <Properties>
    <Property name="EKID" value="1"/>
  </Properties>
</HPS>

A documentation of the HPS (Himsa Packed Scan) format can be found here

Vertices are in float format (4 bytes per coordinates) thus 12 bytes per vertex.

Useful links

About

An attempt to read unencrypted 3Shape DCMs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published