Building a PVZ → STEP / GLB Converter
I’ve been working on a standalone converter for PTC Creo View .pvz files, with the goal of turning them into formats that are easier to use outside the Creo ecosystem.
The converter can currently export:
- STEP — using the exact B-rep geometry stored in the PVZ
- GLB / glTF — using the tessellated geometry, hierarchy and visual materials
It preserves assemblies, transforms, repeated components, colours, transparency, analytic surfaces, NURBS, p-curves, topology and other CAD structure where available.
Release
At the moment I have not publicly published this project - If you are interested in testing it, please reach out.
Reverse engineering the format
There was no public specification available for the parts of the format we needed, so the implementation was developed by analysing PVZ/PVS/OL data files directly.
The process was entirely file-based: no PTC software, source code, SDK, binaries, decompilation or confidential documentation was used.
By comparing multiple files and validating relationships between independently stored data, it was possible to gradually identify the structure of the format.
For example:
- PVS contains the assembly hierarchy and component placements.
- OL contains both tessellated and exact CAD geometry.
- Exact geometry includes planes, cylinders, cones, spheres, tori and rational B-spline surfaces.
- Shared edges, coedges, p-curves, loops, holes, islands and shell topology can all be reconstructed.
- Appearance records provide per-surface colour and transparency information.
A particularly useful validation technique was comparing the decoded 2D p-curves against the independently stored 3D edge geometry. Across the current test corpus, more than half a million coedge relationships validate geometrically.
Standalone by design
The converter is written in JavaScript for Bun and does not require Creo, OpenCascade or another CAD application at runtime.
The intended usage is simply:
pvz convert model.pvz model.step
pvz convert model.pvz model.glb
STEP files are written directly by the converter, including exact geometry, assemblies, p-curves and AP214 presentation colours.
GLB output preserves the tessellated model, hierarchy and visual material information.
The project is still being tested against more PVZ variants, but the core geometry and assembly conversion is now working reliably on the current corpus.
The longer-term goal is to provide a clean, open implementation of the Creo View PVZ/PVS/OL formats that can also serve as a reference for integrations with tools such as Mayo and other open CAD software.

Top comments (0)