# Package products for delivery

> Prepare Blender extensions and asset libraries so Sulu Market can process them: manifest rules, asset marking, catalogs, previews, and packing.

- Canonical HTML: https://superlumin.al/docs/market/product-packaging
- Markdown endpoint: https://superlumin.al/docs/market/product-packaging.md
- Structured page data: https://superlumin.al/docs/market/product-packaging.json
- Last updated: 2026-08-04
- Author: Superluminal Engineering

## Related Superluminal Research

- [Add-ons on render nodes](https://superlumin.al/addons): Select the Blender add-ons that affect a render. Superluminal packages their files, uploads them with the project, and enables them on each render node.
- [Blender project dependencies](https://superlumin.al/dependencies): Before upload, Superluminal checks textures, linked Blender files, UDIMs, sequences, caches, fonts, and other external inputs.
- [Blender render engine compatibility](https://superlumin.al/compatibility/render-engines): Superluminal renders Cycles and EEVEE image sequences with Blender 4.0 through 5.2. Choose the farm version and output format before submission.

## Complete documentation

How you package a product decides how buyers receive it. Ordinary file products deliver as downloads. The two Blender-native delivery kinds go further: Sulu Market processes and validates them so they flow straight into buyers' Blender installations. Extensions deliver through the [extensions repository](/docs/market/library#set-up-the-sulu-extensions-repository-in-blender), and assets through the [online asset library](/docs/market/library#set-up-the-sulu-asset-library-in-blender). This page is the packaging contract for both.

## Blender extensions

Upload a standard Blender extension archive: the same ZIP produced by Blender's extension tooling (for example `blender --command extension build` from your source directory).

What the pipeline enforces:

- The archive must contain exactly **one** `blender_manifest.toml`. The pipeline rejects archives with zero or multiple manifests.
- The manifest's **`id` is permanent**: it becomes the product's immutable extension identity, and every later version must keep the same `id`.
- The manifest **`version` must match the product version** you attach the archive to.
- Fill the standard manifest fields Blender requires: `schema_version`, `id`, `version`, `name`, `tagline`, `maintainer`, `license`, and `blender_version_min` (plus `blender_version_max`, `tags`, `website`, `copyright`, and `permissions` where relevant).
- If the extension ships native code or Python dependencies, declare `platforms` and bundle `wheels`. Buyers only see builds for their platform.
- The server re-validates every archive with pinned Blender 5.2 tooling and normalizes it before it can be published. A manifest that Blender itself would reject never reaches buyers.

### Test the artifact, not the source tree

Install the exact built ZIP through **Install from Disk** in a factory-startup Blender before uploading. What you test is byte-for-byte what buyers receive after review.

## Blender assets and asset libraries

Asset products accept two source shapes, and the processing pipeline turns either into entries in every buyer's remote asset library:

### Single .blend

One `.blend` file containing your marked assets. Everything the assets reference must live inside the file: run **File → External Data → Pack Resources** before you save. The pipeline rejects the upload with an external-dependency error if it finds even one external reference (an unpacked texture, a linked library, a cache on disk).

### Asset-library ZIP

A ZIP with the standard Blender asset-library layout:

- one or more `.blend` files (subfolders are allowed)
- exactly one `blender_assets.cats.txt` catalog map at the archive root
- optionally the textures those blends reference, as ordinary image files (`.png`, `.jpg`, `.exr`, `.hdr`, `.tif`, `.tga`, `.webp`, `.bmp`, `.dds`)

Nothing else is allowed in the archive: no scripts, no executables, no archives-in-archives, no symlinks, at most 2048 entries. This is the same folder structure Blender itself uses for a local asset library, zipped.

### Mark the assets

The pipeline publishes only data-blocks explicitly **marked as assets**. Everything else in the file counts as supporting data. In Blender, right-click the object, material, node group, world, or other data-block and choose **Mark as Asset**. Use Blender's stock asset types. The pipeline rejects types that require Blender's experimental extended-asset-browser flag.

### Organize with catalogs

Buyers browse your product by its catalogs, so assign every asset to one in Blender's Asset Browser catalog tree. In a ZIP bundle, each asset's catalog must exist in the root `blender_assets.cats.txt`. The pipeline rejects an asset whose catalog is missing from the map. On the buyer side, catalogs stay separate per product, so your names never collide with other sellers' catalogs.

### Previews and metadata

Every asset needs a preview: the one Blender generated when you marked it, a custom preview you loaded, or the automatic render the processor generates when none is stored. Author the asset metadata in Blender's asset details panel. **Description, author, license, copyright, and tags** all carry through to what buyers see in their Asset Browser.

### Compatibility

Asset processing currently runs pinned Blender 5.2, and the resulting library entries report Blender 5.2 compatibility to buyers. Save your source files with a 5.2-compatible feature set.

## Verify like a buyer

### Process and publish

Upload the source to the product version and let processing finish. The version's delivery state shows when the artifacts are ready.

### Set up the buyer integrations

In a clean Blender profile, add your own [asset library](/docs/market/library#set-up-the-sulu-asset-library-in-blender) or [extensions repository](/docs/market/library#set-up-the-sulu-extensions-repository-in-blender).

### Check the buyer experience

Confirm previews, catalog structure, names, and metadata read the way you intended, install or import into an empty scene, and render.

- [Selling](/docs/market/selling): Storefront setup, listings, orders, payouts, and publishing.
- [Buyer setup](/docs/market/library): How buyers connect the asset library and extensions repository.
- [Seller terms](/legal/seller): The current policy for eligibility, fees, and listing requirements.
