ObjReader 4.00 - the .ORB challengeTL;DR: A compact binary format for Wavefront models that loads faster, takes less disk space, needs no extra DLLs, and stays fully compatible with OBJ/MTL.
What is .ORB?.ORB =
Obj
Reader
Binary. It’s a compound file format for ObjReader that preserves Wavefront OBJ/MTL compatibility while dramatically reducing size and load time.
File layout- PNG thumbnail — preview of the model (visible in Windows Explorer thumbnail view).
- Header — a small block storing internal offsets to each data section.
- Compressed geometry — mesh data matching the source Wavefront OBJ.
- Compressed MTL trailer — verbatim copy of the original .mtl file, stored at the end.
Compression: to avoid extra dependencies,
.orb uses Windows’ built-in
LZNT1 (NTDLL, LZ77-based). No external DLL required.
Explorer thumbnail
The thumbnail embedded in a [.orb] file is created
the first time you open the model in ObjReader.
ObjReader renders the current viewport with its OpenGL pipeline (
gl_DrawScene) and stores that live capture as the file’s preview.
What it reflects:- Geometry, materials, and textures actually loaded
- Camera position and FOV
- Active lighting preset and background
- The model’s current pose/orientation
Why it matters: it lets you recognize models at a glance in Explorer and file pickers. The thumbnail is only a preview—
it does not affect the model data.
Integration- File association: .orb is registered to launch ObjReader directly from Explorer.
- ObjReader 4.00 size: the new executable is 14 KB smaller than v3.00+, thanks to aggressive code optimization and compiler settings.
- ORDLL64 / ORV64: ORV64 and ORDLL64.dll are updated to understand .orb directly; ORV64 can open .orb even if no .mtl is present on disk.
Round-trip compatibility- Export from .ORB: ObjReader adds a menu option: File ? Export .ORB to .MTL/.OBJ.
- Console tool: orbtool.exe provides standalone compile/decompile:
Compile (OBJ ? ORB): orbtool -c <input.obj> -o <output.orb>
Decompile(ORB ? OBJ): orbtool -x <input.orb> -o <outputBase>
(produces <outputBase>.obj and <outputBase>.mtl)Why this is good- Smaller files on disk.
- Faster loads in memory.
- No extra runtime dependencies (uses Windows’ own LZNT1).
- Still Wavefront-compatible (verbatim .mtl preserved; lossless geometry).
Overall performance- Disk space: ~50% of the original OBJ/MTL size (typical).
- Loading speed: Up to 10× faster on large models (no text parsing; contiguous, precompiled geometry).
...
Attachments- ObjReader Version 4.00, is attached to this post.
- Orbtool console utility, is attached to this post.