A Unity Editor package for importing validated 3D asset transfers from Seele Web into a developer's open project.
Try Seele AI 3D · Quick start · Transfer flow and security boundaries
FBX models, textures, materials, and a generated Prefab arrive through a local browser-to-Editor bridge rather than a player-build runtime.
Importer, not an in-Editor generator. This package receives a ready
unity-transfer.v1manifest from a supported Seele Web workflow. It does not generate 3D assets, add a standalone asset browser, or sign users in to Seele from Unity.
- Keep imported content in the project. Completed transfers are committed below
Assets/Seele/, and the generated Prefab is added to the current scene and selected. - Use a narrow local receiver. The Editor listens only on
127.0.0.1:9877; the browser sends a ready transfer manifest and short-lived download URLs, not a Seele Web login token. - Validate before commit. The package checks the origin, transfer state and identity, expiry, download scheme, safe relative paths, size limits, and any supplied size or SHA-256 values.
- Avoid partial replacement. Downloads and imports run in a staging folder. A plugin-owned previous target is backed up during commit and restored if commit fails.
- Stay Editor-only. The package assembly uses
UnityEditorAPIs and adds no runtime assembly or third-party package dependency to a player build.
- Unity 2021.3 or newer
- Windows
- Git installed on the same computer for Unity Package Manager installation
- A supported Seele Web workflow that sends a ready
unity-transfer.v1transfer - An open Unity project using URP or HDRP for the currently documented material workflow
The repository's package.json identifies the package as ai.seele.dcc-bridge, version 0.1.0. Install it directly from the public Git repository:
https://github.com/SeeleAI/Seele-art-unity.git
- In Unity, open Window → Package Manager.
- Select + → Add package from git URL.
- Paste the URL above and select Add.
- Leave the destination project open for the browser-to-Unity transfer.
You can also clone or download the source and use + → Add package from disk to select its package.json. This repository currently publishes no tagged GitHub Release or prebuilt archive; the Git URL is the public package distribution path.
- Open the Unity project that should receive the asset.
- Confirm the package is installed and keep the Unity Editor running.
- In a supported Seele Web 3D workflow, choose Import to Unity.
- Wait while Unity validates the transfer, downloads the files, and imports the model and textures.
- Continue with the generated Prefab under
Assets/Seele/; after a successful import, the package attempts to add it to the current scene and select it.
Open Seele → Bridge from Unity's top menu to check receiver availability, follow import status, cancel an active import, or locate imported assets. No API address, bearer token, or transfer ID is required in Unity for the primary browser flow.
flowchart LR
A["Seele Web<br/>Import to Unity"]
B["Local Unity receiver<br/>127.0.0.1:9877"]
C["Validate READY transfer<br/>and download payloads"]
D["Stage and import<br/>FBX, textures, materials"]
E["Commit Prefab<br/>and add it to the scene"]
A --> B --> C --> D --> E
The browser sends the complete ready envelope to POST http://127.0.0.1:9877/import-transfer. The receiver queues the accepted work onto the Unity Editor main thread; it does not query Seele Workspace in the primary flow.
Asset-backed transfers use Assets/Seele/<asset-id>. A direct transfer without an asset ID uses a stable transfer-derived folder. See Workspace Unity Transfer v1 for the full sequence, origin configuration, and import transaction.
| Item | Current support |
|---|---|
| Unity | 2021.3 or newer, as declared by package.json |
| Package | UPM package ai.seele.dcc-bridge version 0.1.0 |
| Platform | Windows |
| Render pipelines | URP and HDRP in the documented workflow |
| Model payload | Exactly one primary FBX file |
| Texture payloads | PNG, JPG/JPEG, TGA, EXR, and HDR |
| WebP | Rejected; transcode before creating the transfer |
| Transfer contract | unity-transfer.v1 with right-handed-y-up coordinates |
| Runtime/player build | Not supported or required; the package is Editor-only |
- This is not a general-purpose local FBX importer. The primary entry point accepts only a complete, ready
unity-transfer.v1task envelope from an allowed Web origin. - The manifest must contain exactly one
kind: "FBX"payload whose path ends in.fbx. Additional FBX files and unsupported texture extensions are rejected. - Material texture references use
files[].id. Material assignment requires an exact, case-sensitive match to an FBX material slot; missing or ambiguous matches produce warnings rather than guessed bindings. - Standalone textures are imported before the FBX. Embedded FBX textures are extracted when available; failed extraction is reported instead of being treated as a full success.
- An import may complete with a texture warning when a Prefab was created but a texture could not be matched. Review the generated materials before treating the result as final.
- The package only replaces an existing destination when its ownership marker matches the expected Seele asset identity. It does not overwrite an arbitrary user-owned folder.
The receiver binds to loopback at 127.0.0.1:9877. It trusts the production Workspace origin https://www.seeles.ai, accepts loopback origins for local development, and rejects unknown hosted origins by default. Additional exact HTTPS origins can be configured under Project Settings → Seele Bridge → Additional Allowed Workspace Origins; wildcards, credentials, paths, queries, and fragments are rejected.
Production payload URLs must use HTTPS. Loopback HTTP is allowed only for local development. The importer also enforces:
- JSON
POSTand browserOPTIONSonly on/import-transfer, with no query parameters - a 4 MiB request-body limit
- safe relative payload paths below the staging root, with traversal and link/reparse-point checks
- a 1 GiB per-file limit, 4 GiB aggregate limit, and 10-minute timeout per file
- supplied file sizes and SHA-256 digests when present
- redaction of URL user information and query strings from API and download error logs
The primary flow does not receive or store a Seele Web sign-in token. Optional legacy API settings are local EditorPrefs; access tokens must not be stored in project or package files.
Another application may be using port 9877. Close the conflicting application or free the port, then reload the Unity project and reopen Seele → Bridge.
Confirm that the destination project is open, the package is installed, and Seele → Bridge reports that the receiver is ready.
Use the production Seele Web origin or configure the exact approved HTTPS origin in Project Settings → Seele Bridge. Unknown hosted origins are rejected by default.
Transcode WebP textures to PNG, JPG/JPEG, TGA, EXR, or HDR before creating the transfer.
Inspect the import warning and generated materials. Material names must match FBX material slot names exactly, including letter case; the package does not guess missing or ambiguous bindings.
The package manifest reports version 0.1.0. The repository has no published Git tag or GitHub Release asset at this revision, so source history and package.json are the available version records. Install through the public UPM Git URL above rather than expecting a platform installer or ZIP release.
Bug reports and integration feedback are welcome through GitHub Issues. Include the Unity version, package revision, render pipeline, transfer result, and a redacted Editor log excerpt. Never include credentials or signed download URLs.
- Workspace Unity Transfer v1 — transfer sequence, origin rules, validation boundaries, staging, commit, and rollback behavior.