# 3D Spacey SDK for Python
A lightweight Python client SDK that provides a simple, easy-to-use interface for uploading 3D models and assets to the 3D Spacey platform. It communicates with the local backend and handles progress tracking, cancellation, and error handling for upload workflows.
## Install
```bash
pip install spacey3d
```
## Basic usage
```python
from spacey3d import upload_model
resp = upload_model(
rar_path=r"C:\\path\\to\\archive.rar",
title="My City Block",
description="Typical city block with shops",
tags=["city","street","vray"],
links=["https://reference.site/foo"],
free=False,
type="3d_model",
native_platform="3dsmax",
preview_images=[r"C:\\path\\to\\cover.jpg"],
show_progress=True,
)
print(resp)
```
## Background mode
```python
from spacey3d import upload_model
job = upload_model(
rar_path=r"C:\\path\\to\\archive.rar",
title="My City Block",
free=False,
background=True,
)
for pct, status in job.stream_progress(interval_seconds=1.0):
if pct is not None:
print(f"Progress: {pct}%")
elif status:
print(status)
print("Final:", job.wait())
```
## Cancel the current upload
```python
from spacey3d import cancel_upload
cancel_upload()
```
## Requirements
- Python 3.8 or higher
- The local 3D Spacey backend must be running at `http://127.0.0.1:9765`
- You must be logged in locally (session is owned by the local backend)
- The `preview_images` argument should be a list of local image file paths
## Features
- **Simple Upload Interface**: Easy-to-use functions for uploading 3D models
- **Progress Tracking**: Real-time progress monitoring with customizable callbacks
- **Background Processing**: Non-blocking uploads with job management
- **Error Handling**: Comprehensive error handling with detailed error messages
- **Platform Support**: Works with 3DS Max, Blender, Cinema 4D, and more
- **Cancellation**: Ability to cancel ongoing uploads
## Development
For development setup:
```bash
git clone https://github.com/3dspacey/spacey3d-python-sdk.git
cd spacey3d-python-sdk
python -m venv .venv
# Windows PowerShell
.venv\Scripts\Activate.ps1
# Linux/Mac
source .venv/bin/activate
pip install -e .
```
## License
MIT License - see [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "spacey3d",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "3D Spacey Team <support@3dspacey.com>",
"keywords": "3d, models, upload, sdk, spacey, 3dsmax, blender, cinema4d",
"author": null,
"author_email": "3D Spacey Team <support@3dspacey.com>",
"download_url": "https://files.pythonhosted.org/packages/53/e7/e3ab4c726d142a205a62f7761df6d8f8fde004607ec40f630068de6f6c9d/spacey3d-0.3.0.tar.gz",
"platform": null,
"description": "# 3D Spacey SDK for Python\r\n\r\nA lightweight Python client SDK that provides a simple, easy-to-use interface for uploading 3D models and assets to the 3D Spacey platform. It communicates with the local backend and handles progress tracking, cancellation, and error handling for upload workflows.\r\n\r\n## Install\r\n\r\n```bash\r\npip install spacey3d\r\n```\r\n\r\n## Basic usage\r\n\r\n```python\r\nfrom spacey3d import upload_model\r\n\r\nresp = upload_model(\r\n rar_path=r\"C:\\\\path\\\\to\\\\archive.rar\",\r\n title=\"My City Block\",\r\n description=\"Typical city block with shops\",\r\n tags=[\"city\",\"street\",\"vray\"],\r\n links=[\"https://reference.site/foo\"],\r\n free=False,\r\n type=\"3d_model\",\r\n native_platform=\"3dsmax\",\r\n preview_images=[r\"C:\\\\path\\\\to\\\\cover.jpg\"],\r\n show_progress=True,\r\n)\r\nprint(resp)\r\n```\r\n\r\n## Background mode\r\n\r\n```python\r\nfrom spacey3d import upload_model\r\n\r\njob = upload_model(\r\n rar_path=r\"C:\\\\path\\\\to\\\\archive.rar\",\r\n title=\"My City Block\",\r\n free=False,\r\n background=True,\r\n)\r\n\r\nfor pct, status in job.stream_progress(interval_seconds=1.0):\r\n if pct is not None:\r\n print(f\"Progress: {pct}%\")\r\n elif status:\r\n print(status)\r\n\r\nprint(\"Final:\", job.wait())\r\n```\r\n\r\n## Cancel the current upload\r\n\r\n```python\r\nfrom spacey3d import cancel_upload\r\n\r\ncancel_upload()\r\n```\r\n\r\n## Requirements\r\n\r\n- Python 3.8 or higher\r\n- The local 3D Spacey backend must be running at `http://127.0.0.1:9765`\r\n- You must be logged in locally (session is owned by the local backend)\r\n- The `preview_images` argument should be a list of local image file paths\r\n\r\n## Features\r\n\r\n- **Simple Upload Interface**: Easy-to-use functions for uploading 3D models\r\n- **Progress Tracking**: Real-time progress monitoring with customizable callbacks\r\n- **Background Processing**: Non-blocking uploads with job management\r\n- **Error Handling**: Comprehensive error handling with detailed error messages\r\n- **Platform Support**: Works with 3DS Max, Blender, Cinema 4D, and more\r\n- **Cancellation**: Ability to cancel ongoing uploads\r\n\r\n## Development\r\n\r\nFor development setup:\r\n\r\n```bash\r\ngit clone https://github.com/3dspacey/spacey3d-python-sdk.git\r\ncd spacey3d-python-sdk\r\npython -m venv .venv\r\n# Windows PowerShell\r\n.venv\\Scripts\\Activate.ps1\r\n# Linux/Mac\r\nsource .venv/bin/activate\r\npip install -e .\r\n```\r\n\r\n## License\r\n\r\nMIT License - see [LICENSE](LICENSE) file for details.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "3D Spacey SDK for Python - Upload and manage 3D models",
"version": "0.3.0",
"project_urls": {
"Documentation": "https://github.com/3dspacey/spacey3d-python-sdk#readme",
"Homepage": "https://github.com/3dspacey/spacey3d-python-sdk",
"Issues": "https://github.com/3dspacey/spacey3d-python-sdk/issues",
"Repository": "https://github.com/3dspacey/spacey3d-python-sdk"
},
"split_keywords": [
"3d",
" models",
" upload",
" sdk",
" spacey",
" 3dsmax",
" blender",
" cinema4d"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3d589ef84c48076fbab9ba2b5d9e255043e8f8e89ace77ca33bd9580bc1e2c97",
"md5": "8236841c63416663cbf3a48518f49fc1",
"sha256": "d9e307a186945bc5cdb17d40f57aef98c2c59343a170477024965587494acbb0"
},
"downloads": -1,
"filename": "spacey3d-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8236841c63416663cbf3a48518f49fc1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9656,
"upload_time": "2025-10-09T14:24:46",
"upload_time_iso_8601": "2025-10-09T14:24:46.270229Z",
"url": "https://files.pythonhosted.org/packages/3d/58/9ef84c48076fbab9ba2b5d9e255043e8f8e89ace77ca33bd9580bc1e2c97/spacey3d-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "53e7e3ab4c726d142a205a62f7761df6d8f8fde004607ec40f630068de6f6c9d",
"md5": "a34f13d7ae173471bde04ae089fb3e0a",
"sha256": "a22ac85a8250e3de2020a1b385f0bcf037abbee039108663136a9932641e3c37"
},
"downloads": -1,
"filename": "spacey3d-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "a34f13d7ae173471bde04ae089fb3e0a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 10548,
"upload_time": "2025-10-09T14:24:47",
"upload_time_iso_8601": "2025-10-09T14:24:47.683207Z",
"url": "https://files.pythonhosted.org/packages/53/e7/e3ab4c726d142a205a62f7761df6d8f8fde004607ec40f630068de6f6c9d/spacey3d-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-09 14:24:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "3dspacey",
"github_project": "spacey3d-python-sdk#readme",
"github_not_found": true,
"lcname": "spacey3d"
}