Goal

Set durable naming, structure, and file-format rules so preservation masters, access copies, and print derivatives stay understandable, reusable, and sustainable over time.

1) How this page is organized

Hover a card for a quick scan, then click it to jump straight to that part of the page.

2) Naming conventions and file relationships

Use stable, descriptive names that include object identity, part identity (if needed), date, version, and file role. Hover or click each segment to see what it contributes.

_ _ _ _ .

ObjectID

The stable identifier that follows the object through raw capture, processing, preservation, and access.

Example: CoopersHawk_001 Do not change between folders

PartOrView

Use this slot for a part code, assembly name, or capture/view description so users know what this file actually represents.

Examples: P01_Wing, master_assembly, underside

YYYYMMDD

A machine-sortable date shows when the file version was created and helps distinguish milestones without relying on memory.

Example: 20260224

v[##]

The version number marks a discrete saved state. Keep the numbering simple and sequential so later files sort in order.

Examples: v01, v02, v03

stage

This tells people the file role at a glance: raw capture, preservation master, access copy, print derivative, or another local stage you document.

Examples: raw, pres, access, print

ext

The extension names the actual format and signals likely dependencies. It matters because one stage can exist in multiple formats with different preservation value.

Examples: obj, glb, e57, tif
CoopersHawk_001_wing_exterior_20260220_v01_raw.tif
CoopersHawk_001_master_assembly_20260224_v03_pres.obj
CoopersHawk_001_web_20260224_v01_access.glb

Keep names machine-sortable and avoid spaces or punctuation that can break scripts.

Linked 3D packages should use relative paths whenever possible. If you move the folder, textures, materials, and scene references should still resolve without pointing back to one specific computer.

A 3D asset is a package, not a single file

Open the example, then hover or click each file to see how the package works as one connected unit.

Example

View Example File Relationship

Trace how geometry, materials, textures, scene notes, metadata, and paradata stay connected.

The thesis treats 3D data as a compound object. Below are the pieces that may need to travel together:

Geometry mesh

CoopersHawk_001_master_assembly_v03.obj holds the specimen's form. It is the core file, but it still depends on the rest of the package to represent the model completely.

Texture image

CoopersHawk_001_feather_diffuse.png carries color and surface detail. If it gets separated from the mesh and material file, the model may open with the right shape but the wrong appearance.

Material links

CoopersHawk_001_master_assembly_v03.mtl tells software which textures belong on which surfaces and how the geometry should be rendered.

Scene or assembly data

assembly_relationships.json records relationships that do not fit neatly inside the mesh itself, such as transforms, part arrangement, or other structural context needed for reuse.

Object metadata

CoopersHawk_001_Metadata.txt identifies the object, describes capture context, and documents which files belong together in the package.

Process notes

CoopersHawk_001_paradata.txt explains the human decisions behind the model, such as filtering, registration, smoothing, decimation, and export choices.

CoopersHawk_001_preservation_package/
  geometry/CoopersHawk_001_master_assembly_v03.obj
  materials/CoopersHawk_001_master_assembly_v03.mtl
  textures/CoopersHawk_001_feather_diffuse.png
  metadata/object_metadata.txt
  metadata/paradata.txt
  assembly/assembly_relationships.json

Each preview below opens the full image in a new tab, and each card has its own direct page link for sharing.

Mesh-only view of the Cooper's Hawk OBJ model.

OBJ mesh preview

The mesh image shows the geometry structure the OBJ carries before texture and material interpretation are applied.

Texture PNG used with the Cooper's Hawk model.

PNG texture preview

The texture image supplies the surface color data that the material file maps back onto the mesh.

Rendered material view of the Cooper's Hawk model.

MTL rendered preview

This rendered view represents the appearance produced when the material instructions successfully connect the mesh to its texture.

  • Keep linked sidecars together as one identifiable package.
  • Record expected directory structure and dependencies in metadata.
  • Reopen the package in a second tool after moving it to confirm links still resolve.

3) Characteristics of sustainable 3D file types

Long-term preservation depends on format qualities, not short-term popularity. Guidance from organizations such as the Library of Congress and Duke Libraries prioritizes formats that remain readable across tools and over time.

If a workflow depends on one vendor tool or one software version, record that dependency explicitly. Long-term risk often comes from pipelines and plugins, not just the file extension.

4) Common 3D file formats and where they fit

No single format covers every need. Use different formats for mesh fidelity, point-cloud preservation, access delivery, and print production.

Mesh formats

OBJ, PLY, USD, and glTF/GLB

Open this when you need surface mesh tradeoffs for preservation and access.

Format Preservation pros Preservation cons Web/access pros Web/access cons
OBJ (+MTL) Open, documented, and broadly readable. Materials/textures are sidecars and can be separated. Easy to convert to GLB for viewers. Not efficient to deliver directly in-browser.
PLY Good geometry plus per-vertex color/attributes. Limited material/scene semantics across tools. Useful for research viewers after conversion. Not a common direct web runtime format.
USD Strong scene structure, composition, and variant support. More complex pipeline and governance requirements. Works well in advanced 3D ecosystems. Inconsistent browser-native support compared to GLB.
glTF/GLB Single-file GLB can simplify packaging for derivatives. Typically optimized/compressed for delivery rather than full-fidelity masters. Fast, lightweight, and widely supported in web viewers. May drop high-detail data needed for long-term authority.

Point cloud formats

E57, XYZ, and LAS/LAZ

Open this when you need scan-source formats rather than surface-mesh delivery formats.

Format Preservation pros Preservation cons Web/access pros Web/access cons
E57 Open and suited for LiDAR/scan retention with scan metadata. Harder for non-specialist teams to inspect manually. Reliable source for creating web-ready derivatives. Rarely served directly in browser viewers.
XYZ Simple, transparent coordinate export. Minimal metadata/context unless documented separately. Easy import path to processing tools. Large plain-text files are heavy for web delivery.
LAS/LAZ Standardized point-cloud schema with optional compression (LAZ). Field consistency can vary by producer workflow. Common input for tiled/streamed point-cloud services. Often requires preprocessing before public viewing.

3D printing formats

STL, 3MF, AMF, and G-code

Open this when you need fabrication-focused formats and their preservation limits.

Format Preservation pros Preservation cons Web/access pros Web/access cons
STL Very widely supported for fabrication workflows. Geometry only (no color, units, materials, or provenance). Easy to preview after conversion in many tools. Weak direct web accessibility and no rich context.
3MF Package can include units, materials, and print settings. Preservation quality depends on slicer/vendor feature compatibility. Better contextual print data than STL. Not a standard browser delivery format.
AMF Designed to represent richer print semantics than STL. Lower real-world adoption and tool support. Can preserve more manufacturing context when supported. Limited interoperability for public access workflows.
G-code Captures machine-ready print instructions for specific jobs. Device/profile dependent and not a reusable master geometry format. Useful for documenting print execution. Not suitable as a general public 3D access format.
You may also encounter CAD-style NURBS data or volumetric voxel datasets. They preserve different kinds of information than surface meshes, so they may need different repository rules and migration plans.

5) Preservation masters vs access copies vs print files

Preservation and delivery have different goals. Keep a master-plus-derivative workflow and retain original scan data whenever possible.

Preservation master

  • Prioritize completeness and highest practical quality.
  • Typical formats: OBJ/PLY for meshes, E57 for point clouds, plus lossless textures.
  • Keep raw scan outputs and processing context alongside the master.

Access copy

  • Prioritize compatibility and performance for teaching/web reuse.
  • Typical formats: GLB/glTF or USDZ.
  • Generated from masters; never replace the master file set.

Print derivative

  • Prioritize manufacturability and slicer compatibility.
  • Typical formats: STL or 3MF, with print notes/profile context.
  • Treat print outputs as derivatives, not preservation authorities.
Obsolescence risk comes from missing context as much as missing files. Record units, coordinate systems, software versions, and key export decisions.

Obsolescence risks to monitor

Example: how decimation changes an access copy

In both comparison views below, the left model is the access copy at 10,000 faces and 5.65 MB, while the right model is the preservation model at 1,000,000 faces and 107 MB.

Side-by-side shaded comparison of access and preservation Cooper's Hawk models, with the access copy on the left and preservation model on the right.

Shaded model comparison

This view shows how an access derivative can stay visually useful while carrying far fewer faces than the preservation master.

Side-by-side wireframe comparison of access and preservation Cooper's Hawk models, with the access copy on the left and preservation model on the right.

Wireframe comparison

The wireframe view makes the reduction in mesh density explicit, which is useful when documenting how the access copy was derived.

6) What if you do not know the name?

Never invent a false authoritative name. Use a placeholder you can defend.

Option A - Descriptive placeholder

InsectSpecimen_045_unknown_wing_fragment
Machine_002_unknown_component_A

Option B - Functional description

Machine_002_rotating_disc_component
Artifact_014_small_curved_metal_piece

Option C - Controlled placeholder

UnknownObject_001
Unidentified_Component_003

Key rule: file names describe what you know. Metadata describes uncertainty.

7) Choose the structural model and plan for parts

You have two valid structural models, and for complex machines you will often use both:

Object-centric

Best when the machine itself is the long-term intellectual object you care about.

Project-centric

Best for documenting workflow context for one campaign, survey, or time-bounded initiative.

If the machine is scanned within a larger survey, keep both contexts:

Projects/
  FactorySurvey_2026/
    Machine_12_WaterPump/

Objects/
  Mechanical/
    WaterPump_001/

Do not collapse these into one folder tree. For complex machines, use project structure for workflow and object structure for durable identity.

Objects with parts

Objects with Parts Tips

Open this when you need parent assemblies, child parts, and relationship files to stay legible together.

If the machine is the intellectual "thing" you care about long-term, keep it as a parent object with child parts.

Objects/
  Mechanical/
    WaterPump_001/
      assembly/
        WaterPump_001_master_assembly_v01.pres.obj
        assembly_metadata.txt
      parts/
        WP001_P01_Impeller/
        WP001_P02_Housing/
        WP001_P03_Shaft/
      documentation/
        metadata.txt
        paradata.txt
        rights_and_access.txt

Naming convention for parts

Use a consistent part code:

WaterPump_001_P01_Impeller
WaterPump_001_P02_Housing

Pattern: [ParentID]_P[##]_[PartName]

_ _

ParentID

Keeps every part visibly attached to its parent object so the relationship survives outside the folder tree.

P[##]

A sequential code works well when physical or assembly order matters and helps machines sort parts correctly.

PartName

Use a human-readable label for quick recognition. Keep it descriptive enough that people can identify the component without opening the file.

  • If order matters physically, use sequential numbering.
  • If order does not matter, use functional labels.

Representing how parts fit together

File structure alone is not enough. You need structural hierarchy, assembly metadata, and relationship documentation.

A) Assembly folder in parent object

assembly/
  WaterPump_001_master_assembly_v01.pres.obj
  assembly_relationships.json

B) Relationship metadata (recommended)

{
  "parent_object": "WaterPump_001",
  "parts": [
    {
      "id": "WP001_P01_Impeller",
      "connects_to": "WP001_P03_Shaft",
      "connection_type": "rotational_fit",
      "alignment_reference": "central_axis"
    },
    {
      "id": "WP001_P02_Housing",
      "contains": "WP001_P01_Impeller",
      "connection_type": "enclosure"
    }
  ]
}

C) Cross-reference inside each part metadata

parent_object: WaterPump_001
part_number: P01
assembly_position: internal rotating component
fits_with: WP001_P03_Shaft

This creates bidirectional traceability between parent assembly records and child part records.

8) Clean rules summary

  1. Keep original capture outputs and preservation masters separate from access and print derivatives.
  2. Every physical thing gets one object folder.
  3. Every removable or distinct component gets a child object folder.
  4. Assemblies define relationships, not filenames.
  5. Unknown components use placeholders plus documented uncertainty.
  6. Projects record workflow; objects record long-term identity.