Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.3.0 to 13.0.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/12.3.0...13.0.0) --- updated-dependencies: - dependency-name: pillow dependency-version: 13.0.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Render resource starter pack
Version 1.0.0, authored 2026-10-21. This is a reproducible resource handoff
for the personal SolidCraft render/materials fork. Its parent is the catalog
checkpoint 10ada1b45a4eb285ce752ac72f9aaa968ff8b5c4, on the fixed
lab/render-materials base. It does not update upstream or the application.
What is delivered
| Resource | Delivered data | Availability |
|---|---|---|
| 48 surfaces | 240 PNGs at 512 × 512: base color, OpenGL normal, roughness, metallic and 16-bit height | Authored, numerically checked; renderer binding and reference renders pending |
| 24 illumination environments | 24 original 1024 × 512 Radiance RGBE HDR inputs | Authored, independently decoded; complete scene geometry and runtime binding pending |
| 24 lighting recipes | Finite-area source transforms and radiance, finite-angular Sun, passive cards and explicit blockers | 19 numerical recipes; 3 calibration blockers; 2 require an existing environment-owned Sun |
The stable MAT-*, ENV-*, LUZ-* and STU-* concept identities remain in the
catalog. This pack supplies authored
realizations; it does not change all 1,160 concepts to "available". Neither
pack.json nor the child manifests are a native solidcraft-library/1 or
solidcraft-library/2 import file. Python is an offline authoring dependency only.
Entry points and ownership
- pack.json identifies the three collections and their file contracts.
materials/source/recipes.jsonis the editable surface authority.environments/source/recipes.jsonis the editable environment authority.lighting/recipe.jsonpins the existingstudio-presets.jsonauthority and defines its numerical calibration; the studio geometry is not duplicated as a second editable authority.exports/contains required portable authoring inputs, with one resolution per map. Manifests capture source/generator hashes and payload receipts.- VALIDATION.md records what was actually checked and what remains.
The data covers industrial metals and coatings, automotive finishes, electronic housings and PCB surfaces, FDM/powder printing, wood/DIY, passive LED-associated surfaces, composites, thermal coverings and generic lunar surface studies. Material names express an appearance target. They do not certify composition, strength, thermal/electrical behavior, vacuum compatibility or flight readiness.
Rebuild and check
Use Python 3.11 or newer, NumPy and Pillow in a development environment. The environment decoder comparison additionally uses an installed FFmpeg executable as a separate process; no FFmpeg source, library or binary is bundled or linked. The exact development versions used for the release are in the validation record.
python3 -B assets/render/starter/tools/materials.py build
python3 -B assets/render/starter/tools/environments.py build
python3 -B assets/render/starter/tools/lighting.py build
python3 -B assets/render/starter/tools/validate_pack.py
python3 -B assets/render/starter/tools/materials.py validate --reproduce
python3 -B assets/render/starter/tools/environments.py validate --independent-decode --reproducible
python3 -B assets/render/starter/tools/lighting.py validate
python3 -B -m unittest discover -s assets/render/starter/tools -p 'test_*.py'
For a read-only combined authoring and native Rust check, use:
python -m pip install -r assets/render/starter/tools/requirements.txt
python -B assets/render/starter/tools/check_all.py
See native admission and continuous validation for the
192 texture inputs, 48 separately checked height sources, 24 HDR inputs, coordinate
conventions, test coverage and evidence receipts. The dedicated Render resource
gate runs these checks for relevant pull requests, including drafts, on Windows
and Linux. It does not replace complete cargo xtask ci, application rendering
acceptance or persistent resource binding; all runtime availability remains false.
The surface reproduction compares exact decoded pixel arrays; PNG compressed bytes may depend on the encoder build and platform even with the same Pillow version. All 240 decoded images were verified equal on Linux and Windows. Scoped Git attributes preserve LF in hashed text sources and binary map bytes. Environment and lighting reproduction checks compare encoded bytes. Every submitted export also has an exact SHA-256 receipt. Altering a receipt is not a substitute for reviewing and rebuilding a changed recipe.
Optional inspection outputs stay under ignored target/render-starter-review/:
python3 -B assets/render/starter/tools/materials.py preview
python3 -B assets/render/starter/tools/environments.py preview
python3 -B assets/render/starter/tools/lighting.py review
These are numerical data/fixture diagnostics, not screenshots of SolidCraft or proof of photorealistic output. They are not shipped as production resources.
Integration contract
- Admit sources with exact hashes and byte/dimension budgets before allocating decoded textures. The current source limit remains 2048 pixels per texture axis and 2048 × 1024 for HDR; the submitted resources are below those limits.
- Decode base color as sRGB and scalar/normal channels as linear data. Preserve the OpenGL normal convention and millimeter tile sizes. Renormalize normals after filtering. The 16-bit height exports are authoring data and require an explicit height/displacement adapter; do not send them through the strict eight-bit texture-input path or silently quantize them.
- Preserve physical material cards, part dimensions, geometry, poses, joints and motion. An appearance realization does not assign engineering properties.
- For HDR, honor explicit linear-sRGB primaries and the documented longitude mapping, source exposure and environment ownership. These probes provide illumination/reflection, not room parallax, support geometry or terrain.
- Use a probe or its equivalent analytic emitters as the energy source. Do not duplicate its bright patches with extra lights. Black vacuum supplies exactly zero ambient radiance; a separately owned Sun must be supplied deliberately.
- Apply lighting transforms once using the selected subject extent. Keep passive cards non-emissive, distinguish radiance from irradiance and retain blocked sources. Reference EV numbers are not lumens, watts or device values.
- Bind each admitted resource to the actual renderer version, then capture common-exposure reference scenes on flat and curved coupons. CPU/GPU agreement, aliasing, filtering, orientation, save/reopen and resource lifetime remain integration acceptance work. Follow the existing Render tab/icon/UI contract.
Opaque coat, anodizing and fibre appearances are marked approximations. There is no glass transmission, layered clearcoat, spectral response, subsurface scattering, sampled emissive material or measured photometry in this surface slice. Such features require their own supported binding and reference evidence.
Clean-room and publication boundary
All new recipes, tools and map fields were authored from original mathematical
construction and the project's own contracts. There are no external textures,
commercial CAD outputs, sampled proprietary materials, copied implementations,
AI-generated beauty images or imported HDR photography. Public format/equation
references are cited in the collection documentation. Each non-Markdown file has
an exact root ATTRIBUTION.md row under the repository's
MIT OR Apache-2.0 choice.
The improved SELENE native source remains awaiting_native_source; this resource
pack does not change that lock, substitute the historical v7 model or assert that
the improved rover has been rendered. New resources are isolated from the frozen
PR #3 review in the stacked assets/render-starter-pack branch. Integrate their
attribution additions alongside, and without deleting, the other renderer
thread's notices. Full repository gates remain required before application merge.