bbmodel2bam
Convert Blockbench .bbmodel files to Panda3D .bam files.
Inspired by blend2bam.
Features
- Mesh elements – free-form meshes with per-vertex UVs
- Cube elements – box primitives with per-face UV rects
- Embedded textures – base64-encoded textures decoded and embedded in BAM
- File-referenced textures – external texture paths resolved relative to
.bbmodel - Groups / bones – outliner hierarchy preserved as scene-graph nodes
- Element transforms – origin and rotation applied correctly
- Coordinate conversion – Blockbench Y-up → Panda3D Z-up
- Panda3D file loader –
loader.load_model('model.bbmodel')works natively
Installation
pip install panda3d-bbmodel2bam
Or install in development mode:
pip install -e .
Usage
CLI
bbmodel2bam model.bbmodel model.bam
bbmodel2bam models/ output/
bbmodel2bam --scale 0.0625 --textures ref model.bbmodel model.bam
Options:
| Flag | Default | Description |
|---|---|---|
--scale FLOAT |
1.0 |
Uniform scale factor for coordinates |
--textures {embed,ref} |
embed |
Embed textures in BAM or save as separate files |
--append-ext |
off | Append .bam instead of replacing extension (batch) |
-v, --verbose |
off | Print extra conversion info |
Python
from bbmodel2bam.converter import convert
convert('model.bbmodel', 'model.bam', scale=1.0)
Panda3D File Loader
With the package installed, Panda3D 1.10.4+ can load .bbmodel files directly:
model = loader.load_model('model.bbmodel')
model.reparent_to(render)
Supported bbmodel features
| Feature | Status |
|---|---|
| Cube elements | ✅ |
| Mesh elements (free-form) | ✅ |
| Per-face UV (non-box UV) | ✅ |
| Box UV | ❌ planned |
| Embedded textures (base64) | ✅ |
| External texture files | ✅ |
| Element rotation/origin | ✅ |
| Groups / outliner hierarchy | ✅ |
| Animations | ❌ planned |
| Locators | ❌ planned |
License
MIT
Release files for panda3d-bbmodel2bam 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| panda3d_bbmodel2bam-0.1.0.tar.gz | 9.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| panda3d_bbmodel2bam-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.8 kB
Release files / panda3d_bbmodel2bam-0.1.0.tar.gz
| Download URL | panda3d_bbmodel2bam-0.1.0.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19eca81fa9c0ec47b9c5f49a4d8d1d96fe84b13168314e64a97e19593613a94f
|
|
BLAKE2b-256 checksum How to use checksums |
156a2f5b8b06ff90fe98ddd81bc87a7a7e7c07fa9aafb0acd37532e67a48e6fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.
Transparency logRelease files / panda3d_bbmodel2bam-0.1.0-py3-none-any.whl
| Download URL | panda3d_bbmodel2bam-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c74b1eae34090d5e1008e714a8f41bbcb17bc7759628c6b6b6f4d73fabf61ebb
|
|
BLAKE2b-256 checksum How to use checksums |
608f9e0f4617f48538fc88526b68ecea081e836b7d666314568920886100e351
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.
Transparency log