Documentation
Docs/en/reference/particle-format/validation.md
Particle Validation Contract
Generated reference. Do not edit this page directly. Update
BuildTools/ParticleFormatInterface.json, then runpython BuildTools/docs_particle_format.py --write.
| Reference index | Source rules | Formats and backends | Rendering | Tooling | Runtime | Integration | Validation | Canonical JSON model | Guide | Authoring tools |
| Stable ID | Gate | Requirement | Why | Source |
|---|---|---|---|---|
particle-format.validation.documentation |
Documentation contract | Run docs_particle_format.py –check and its focused unit test after changing particle formats, backends, tools, or integrations. | The manifest validates every source anchor and generated page. | BuildTools/ParticleFormatInterface.json |
particle-format.validation.baker-tests |
Particle baker tests | Run the ParticleBaker unit tests after changing source formats, transforms, path checks, compiler output, or dependency invalidation. | The native suite exercises both backend bake boundaries. | Source/Tests/Test_ParticleBaker.cpp |
particle-format.validation.effekseer-runtime |
Effekseer runtime tests | Run the focused Effekseer runtime tests after changing compiler/runtime geometry, sorting, batching, textures, seed, or scale. | The suite checks deterministic callback geometry and supported runtime behavior. | Source/Tests/Test_EffekseerParticleRuntime.cpp |
particle-format.validation.project-bake |
Embedding-project bake | Rebake an affected embedding project and reject authored .spk/.efk, malformed sources, missing dependencies, and stale generated resources. | Only the project bake sees its complete resource graph and feature selection. | Source/Tools/ParticleBaker.cpp |
particle-format.validation.visible-scene |
Visible runtime validation | Inspect every affected backend and integration route in Mapper and a representative client scene, including depth, clipping, lifetime, transforms, and performance. | Successful compilation cannot prove visual correctness or gameplay timing. | Source/Tools/ParticleEditor.cpp |
particle-format.validation.render-routes |
Both render routes | Visibly check atlas particles and direct-scene particles at their real draw order, camera angle, scale, depth occluders, and supported renderer backends. | Headless parsing cannot prove framing, alpha, blend, depth, orientation, or world-scale behavior. | Source/Client/ParticleSprites.cpp Source/Client/SparkExtension.cpp |
particle-format.validation.model-route |
Model attachment route | For AttachParticles or Critter.RunParticle changes, visibly verify the target bone, offset, active layer lifetime, animation, and FO_ENABLE_3D profile. | ParticleSprite tests do not exercise model-bone ownership or projection. | Source/Tests/Test_ModelBaker.cpp Source/Client/ModelInstance.cpp |
Validation commands
python BuildTools\docs_particle_format.py --check
python -m unittest BuildTools.tests.test_docs_particle_format
cmake --build <build-dir> --config RelWithDebInfo --target RunUnitTests
An embedding project must also rebake its resources and visibly inspect every affected backend and integration route.