Skip to main content

Godot Asset Pipeline Doctor

CI-friendly PNG, audio, and Godot .import checks for pixel-art and mobile asset pipelines.

Use this before merging sprites, UI art, icons, backgrounds, sound effects, or other asset-heavy changes. It checks for import settings and asset shapes that commonly cause blurry pixel art, color fringes, large packages, or mobile memory surprises.

The tool is designed for generic Godot projects, including private commercial games. Public examples use placeholder project names and do not require publishing project-specific content. It does not need the Godot editor and does not run project scripts.

What It Catches

  • Missing Godot .import metadata next to PNG assets.
  • Mipmaps enabled on pixel-art profile assets.
  • Alpha-border fixing disabled on transparent assets.
  • Fully transparent edge pixels that still contain RGB color data.
  • Large textures that are risky for Android/mobile memory budgets.
  • Very large texture dimensions that may exceed conservative device limits.
  • Unexpectedly large palettes in pixel-art folders.
  • Sprite manifest dimension mismatches and out-of-bounds anchors.
  • Large or long audio clips that need compression or streaming review.
  • Missing Godot .import metadata next to audio files.

Install

From a local checkout:

python -m pip install -e .

From PyPI:

python -m pip install godot-asset-pipeline-doctor

Quick Start

Scan a Godot project with the default profile:

godot-asset-doctor C:\Projects\ArcadePrototype

Strict pixel-art check:

godot-asset-doctor C:\Projects\ArcadePrototype --profile pixel-2d --fail-on warning

Android/mobile check with JSON output:

godot-asset-doctor C:\Projects\ArcadePrototype --profile android-mobile --format json --output asset-report.json

Audio-focused mobile check:

godot-asset-doctor C:\Projects\ArcadePrototype --profile audio-mobile --large-audio-mb 6 --max-audio-duration-seconds 90

Exclude generated or vendor folders:

godot-asset-doctor C:\Projects\ArcadePrototype --exclude "addons/vendor/**" --exclude "assets/generated/**"

Validate a sprite manifest:

godot-asset-doctor manifest check sprite-manifest.json --project C:\Projects\ArcadePrototype --format json --output reports\sprite-manifest.json

Create a sprite contact sheet with anchor markers:

godot-asset-doctor manifest contact-sheet sprite-manifest.json --project C:\Projects\ArcadePrototype --output reports\sprite-contact-sheet.png

Create per-sprite overlay PNGs for closer anchor review:

godot-asset-doctor manifest overlays sprite-manifest.json --project C:\Projects\ArcadePrototype --output-dir reports\sprite-overlays

Example contact sheet:

Sprite contact sheet with anchor markers

Example per-sprite overlay:

Sprite overlay with anchor markers

Run through Python after installing the package:

python -m godot_asset_doctor examples\tiny-godot-project --fail-on none

Real Workflow: Review New Art Before A Merge

Run a strict pixel-art scan when a pull request changes assets/, sprites/, or ui/:

godot-asset-doctor . --profile pixel-2d --fail-on warning --format json --output reports\asset-doctor.json

Use the findings to catch:

  • pixel art imported with mipmaps enabled;
  • transparent sprite edges that can show colored fringes;
  • missing .import files that mean assets have not been opened by Godot yet;
  • unexpectedly large textures before they land in the main branch.
  • sprite anchors that fall outside the source PNG bounds.
  • sprite contact sheets that make anchor placement easier to review.

For Android-focused review, switch profile:

godot-asset-doctor . --profile android-mobile --fail-on error --format sarif --output reports\asset-doctor.sarif

Profiles

Profile Use Case
default Balanced local scan; combines pixel and mobile warnings.
pixel-2d Sprites, UI, icons, tiles, and crisp 2D assets.
android-mobile Mobile release review, especially large textures and missing import data.
audio-mobile Mobile/package-size review for WAV, OGG, and MP3 assets.

Exit Codes

Flag Behavior
--fail-on none Always exits 0 unless the CLI itself errors.
--fail-on error Exits 1 if any error is found. This is the default.
--fail-on warning Exits 1 if any warning or error is found. Useful for strict CI.

Config File

Create .godot-asset-doctor.toml in the project root:

profile = "pixel-2d"
format = "json"
fail_on = "warning"
output = "asset-report.json"
exclude = ["addons/vendor/**", "assets/generated/**"]
max_texture_dimension = 4096
large_texture_mb = 16
max_palette_colors = 256
large_audio_mb = 8
max_audio_duration_seconds = 120

Then run:

godot-asset-doctor C:\Projects\ArcadePrototype

CLI flags override config values. Use these thresholds when your project needs stricter mobile budgets or a looser palette limit for UI art. See docs/CONFIGURATION.md.

Example Output

Godot Asset Pipeline Doctor
Report schema: 1.1 | Tool: 0.1.10
Root: C:\Projects\ArcadePrototype
Profile: pixel-2d
Assets: 18 | Issues: 3 | Errors: 0 | Warnings: 3

[WARNING] Transparent edge RGB data: C:\Projects\ArcadePrototype\assets\player.png
  4 fully transparent edge pixel(s) carry non-black RGB values.
  Why it matters: Fully transparent edge pixels carry RGB data that can bleed into visible edges after filtering.
  Suggestion: Clean transparent RGB data or enable alpha-border fixing to reduce fringe artifacts.

JSON reports include report metadata plus a rules object with plain-language rule titles and explanations. Text and SARIF output use the same rule names so local and CI reports are easier to compare.

Documentation

Tests

python -m unittest discover -s tests -v

CI

The included GitHub Actions workflow installs the package and runs the test suite on Python 3.11, 3.12, and 3.13.

In a project CI job, install from PyPI and keep the report as an artifact:

- run: python -m pip install godot-asset-pipeline-doctor
- run: godot-asset-doctor . --profile android-mobile --format json --output reports/asset-doctor.json

Design Notes

  • The scanner does not need a Godot binary.
  • The scanner does not execute project scripts.
  • The scanner does not upload files or contact external services.
  • Default scans ignore common non-asset artifact folders such as docs, logs, and test-results.
  • JSON reports can include local paths, so review them before sharing publicly.

License

MIT. See LICENSE.

Metadata

Release files for godot-asset-pipeline-doctor 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for godot-asset-pipeline-doctor 0.1.10
File Size Uploaded
godot_asset_pipeline_doctor-0.1.10.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for godot-asset-pipeline-doctor 0.1.10
File Interpreter ABI Platform
godot_asset_pipeline_doctor-0.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 46.3 kB

Release files / godot_asset_pipeline_doctor-0.1.10.tar.gz

Download URL godot_asset_pipeline_doctor-0.1.10.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8fbbf2e55e12efb6466ae9fd072e8113375f1c4999704e1b49395bf6c602b6bd
BLAKE2b-256 checksum
How to use checksums
df2c08236b1ce62a29e096c70467511160b351b5ce1675f793feac3e9ba3ff48
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 Jun 15, 2026.

Transparency log

Release files / godot_asset_pipeline_doctor-0.1.10-py3-none-any.whl

Download URL godot_asset_pipeline_doctor-0.1.10-py3-none-any.whl
Size 22.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bae9f988b1d52df6ad0f7f657c49e0fdd08161067e32b9a0e0cdbd8e82b1ad7d
BLAKE2b-256 checksum
How to use checksums
b2ccbc97ffc3f789f66f36b5c3a82119ff72c976e613fee36d4a1bafb77ca152
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 Jun 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page