Protected models

A protected model (.ikm) is a runtime model you can sell or hand out without giving away its files. Each buyer gets a license from you; their copy plays in the Ikimotion viewer while they are signed in, and its textures carry their license as an invisible watermark. You need an Ikimotion account to issue licenses, and buyers need one to play their copy.

The file format and its security are described in The .ikm protected model.

What protection can and cannot do

Protected models raise the cost of ripping a model: the files are encrypted, the key to a copy is released only to the licensee’s account, online, and the viewer never saves, exports or shares the decrypted files. A model still has to be decrypted and drawn on the buyer’s computer, though, and nothing that runs on someone else’s computer can be made impossible to copy. A determined person can capture what the viewer draws.

The deterrent is the watermark: every license copy carries its license in the pixels of its textures, so a texture that turns up somewhere else tells you whose copy it came from (see Identifying a leaked texture). You can then revoke that license.

Exporting a protected model

  1. Open the project and check it in the Export panel as for a runtime package (the export settings apply to the protected model too).
  2. Choose Export › Ikimotion protected model (.ikm)… (also the Ikimotion protected model (.ikm) button of the Export panel, or the command palette). The runtime package is built, encrypted for the Ikimotion license service and signed with your account’s key.
  3. Save the .ikm file through the save dialog.
  4. Signed in, the app offers to Upload it to the license service right away; choose Not now to upload it later.

The saved file is the master: only the license service can open it, to write each buyer’s copy. Keep it like any other export; it does not play by itself.

Issuing and revoking licenses

Export › Protected model licenses… (or the command palette) opens the licenses of your account. Signed out, it explains why and links to the sign-in page.

  • Upload protected model (.ikm)… sends a master you exported to the license service. The table lists your uploaded models with their size, upload date and number of active licenses.
  • Manage opens a model’s licenses: who it is licensed to, your note, when it was issued, how many times the buyer’s player fetched its key, and whether it is active or revoked.
  • Issue license licenses the model to a buyer, by the verified email address of their Ikimotion account or by their account id. The note is only for you (an order number, for example). Issuing again to someone who already has an active license keeps that license.
  • Revoke ends a license: the buyer’s player can no longer get its key, so the model stops playing for them the next time they open it. A revoked license cannot be restored; issue a new one instead.
  • Delete model removes the master from the license service and ends every license of it.

Your own account id is shown at the top of the dialog with a Copy button. Buyers find theirs the same way, in My licensed models of the viewer, and send it to you.

Playing a licensed model

Buyers play their models in the Preview panel (the Ship stage):

  • My licensed models… lists the models licensed to your account, with the seller and the date. Play loads one into the preview. Save .ikm… saves your encrypted copy, which you can open later with Open protected model (.ikm)…; it still plays only for your account, online.
  • Open protected model (.ikm)… plays a license copy from disk.

While a protected model plays, the preview says that it is protected and licensed to you, shows the license id and who signed the file (license copies are signed by the Ikimotion license service). Everything else works as with any runtime package (motions, expressions, effects, playback), except what would copy the model: it cannot be compared with another model, and nothing of it can be exported or saved. Signing out unloads it.

If a model does not play, the preview says why: your account has no license for it, the seller revoked the license, you are signed out, the license service cannot be reached, or the file was changed or damaged.

Identifying a leaked texture

When a texture of your model turns up somewhere it should not be, open Export › Protected model licenses…, Manage the model, and choose Identify a leaked texture…. Pick the texture as a PNG image. The license service reads the watermark and names the license it belongs to (buyer, license id), with a confidence score; 3 or more is a confident read. When no license can be read, the image may not come from a licensed copy of this model, or it was changed too much (heavily scaled, cropped or repainted).