Elephant
Rhino models that never forget. Durable object IDs and a JSON change log on every save, plus an optional cloud tier with cross-model search.
A Rhino plugin that gives .3dm files a memory. The plugin and a local
HTML viewer are free forever -- no telemetry, no phone-home, no
expiring trial. An optional cloud tier
(elephant.dfma.tools) adds cross-model
search across every .3dm in your workspace, shareable diff links, and
phone access.
What the free plugin does
- Stamps
elephant_stable_id(v4 UUID) on every object at creation. Survives copy-paste, explode/rejoin, boolean operations, and Grasshopper bake -- where Rhino's native GUIDs do not. - Hashes geometry into a stable
geom_hash(DataCRC + bbox + type) that does not drift across save/reload cycles. Diffs flag real changes, not re-serialization noise. - Tracks lineage through destructive operations: boolean, explode, and
join write
elephant_parent_idson the new objects so you can trace what they replaced. - On every save writes
.elephant/<docname>/<timestamp>.jsonnext to the.3dm. Sorted keys, 2-space indent, atomic write. Designed to live under Git: a no-op edit produces a no-op diff. - Auto-commits to Git when the
.elephant/folder is inside a tracked repo. Each save runsgit add+git commiton a background thread with a message likeelephant: hull_v3.3dm 2026-04-11T18-30-00Z +2 -1 ~3. You get a real Git history of your model --git log,git diff, branch/checkout, push/pull -- with zero manual workflow. Silent no-op if the folder isn't in a repo, so it's never in your way. - Per-object record: id, type, layer, name, bbox, geom_hash,
parent_ids, user_strings. Plus a
last_changesblock summarizing the delta against the previous save. _ElephantTag <label>command stamps a one-shot human label onto the next save. Like git tags for moments ("approved for cutting batch 12", "before hull-mod-c").- Standalone HTML viewer: timeline across multiple models, two-version
diff, layer tree with +/-/~ counts, search, sortable columns,
lineage badges. Single
index.htmlfile, zero dependencies, dark theme, no server.
Elephant Cloud -- optional subscription
The plugin uploads each saved sidecar to api.dfma.tools only if a
.license file is in place; without it, Elephant stays purely local
and offline. The hosted webapp at
elephant.dfma.tools reads from that
same data.
On top of the free plugin:
- Cross-model search. Find every part with
part_no=RB-HUL-P07across every .3dm you've ever saved, in seconds. Same query syntax in the in-doc filter and the workspace-wide search bar:key=value,layer:hull/*,type:extrusion, bare text, quoted phrases. Structurally impossible with the local viewer because it sees only one folder at a time -- the cross-model index is the killer feature. - Phone access. Browse and diff from any device with a browser. Useful for offsite checks ("what did the shop save while I was on this job site?") and after-hours reviews.
- Shareable diff links. In diff mode, generate a public, ttl-bound URL to a specific diff and text it to a contractor or customer. They open the link, see the change, no Rhino or login needed.
- Offsite backup of design history. Every sidecar is mirrored to
Cloudflare R2. If your local
.elephant/folder is lost, your history isn't. - CSV export of any view, for BOM workflows.
The plugin keeps working fully offline if cloud is down or your subscription lapses. Local sidecars are always written first; cloud upload is fire-and-forget. You never lose access to your local history.
Why subscription rather than perpetual? The cloud half has ongoing costs (storage, search index, bandwidth) that don't fit a one-time price. The plugin half stays perpetual and free; the recurring half is honest about what it actually pays for. Drop the license file or unsubscribe and the plugin keeps doing its plugin job -- only cloud features turn off.
What it isn't
- Not a PDM with check-in/check-out. If you need formal version control with locking, approval workflow, and ECNs for an engineering team, look at Vault, Windchill, or Teamcenter -- different problem, different price tier.
- Not real-time multiplayer CAD. If you need two designers in the same model at the same time, Onshape is the cloud-native option there.
- Not a 3D visual viewer. Elephant tells you what changed (added,
removed, modified-by-id) and where (layer, bbox). It does not
render geometry side by side. Open both
.3dmfiles in Rhino for that, or use a generic .3dm viewer. - Not a backup tool. Sidecars are a change log, not a recovery path. Keep your normal backup plan; Elephant rides on top.
Why it exists
CAD files are databases pretending to be documents. Every save mutates
thousands of objects, but you cannot tell which ones from the .3dm
alone. Elephant exposes the change history that is already implicit in
every save -- and gives every object the durable identity that Rhino's
native GUIDs do not provide. The .3dm stays the source of truth for
geometry; Elephant owns identity and history. Once you've got that
identity layer, querying it across every .3dm you've ever saved is
the natural next step -- which is what Elephant Cloud is for.
Install (free plugin)
- In Rhino 8, type
_PackageManager. - Search "elephant" and install the latest version.
- Restart Rhino. Run
_ElephantStatusto confirm it loaded.
The HTML viewer ships with the plugin. Open viewer/index.html from
the package directory in any modern browser, drag-drop the .elephant/
folder next to your .3dm, and start browsing.
Sign up for Elephant Cloud
While in beta, request access via the
support form
and you'll receive a license file by reply. Drop it at
%APPDATA%\dfma-tools\elephant.license on Windows (or the macOS
equivalent path), and the plugin starts uploading on next save. Visit
elephant.dfma.tools and paste the
license to access the webapp.
Pricing post-beta will be a flat monthly subscription. No commitment; remove the license file or cancel the subscription and the plugin half keeps working with your full local history intact.
License
The free plugin is free for personal and commercial use. No phone-home, no telemetry, no license file required for plugin operation.
Elephant Cloud is a paid subscription (currently beta-free with manual provisioning).
Support
Bugs and feature requests: use the support form.
System requirements
- Rhino 8 (Windows or Mac)
- Disk space for sidecars next to each .3dm (about 1 MB per 1000 objects per save)
- Modern browser for the standalone diff viewer (Chrome, Firefox, Safari, or Edge)