framerudiments 0.4.1__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. framerudiments-0.4.3/AGENTS.md +32 -0
  2. {framerudiments-0.4.1 → framerudiments-0.4.3}/MANIFEST.in +1 -0
  3. {framerudiments-0.4.1/src/framerudiments.egg-info → framerudiments-0.4.3}/PKG-INFO +305 -242
  4. {framerudiments-0.4.1 → framerudiments-0.4.3}/README.md +301 -241
  5. {framerudiments-0.4.1 → framerudiments-0.4.3}/RELEASE_NOTES.md +29 -0
  6. framerudiments-0.4.3/docs/ECOSYSTEM.md +32 -0
  7. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/controlled-audio-response.md +5 -0
  8. framerudiments-0.4.3/docs/hybrid-preset-analysis.md +119 -0
  9. framerudiments-0.4.3/docs/media/natural-materials.mp4 +0 -0
  10. framerudiments-0.4.3/docs/media/natural-materials.png +0 -0
  11. framerudiments-0.4.3/docs/natural-materials.md +197 -0
  12. framerudiments-0.4.3/integration/test_fire_volume_gpu.py +20 -0
  13. {framerudiments-0.4.1 → framerudiments-0.4.3}/pyproject.toml +4 -3
  14. framerudiments-0.4.3/scripts/Run-ControlledPresetAnalysis.ps1 +41 -0
  15. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/Run-FullPresetAnalysis.ps1 +41 -3
  16. framerudiments-0.4.3/scripts/Run-HybridPresetAnalysis.ps1 +92 -0
  17. framerudiments-0.4.3/scripts/bake_mantaflow_fire.py +158 -0
  18. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/controlled_preset_analysis.py +24 -7
  19. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_visualisation_gallery.py +1 -1
  20. framerudiments-0.4.3/scripts/prepare_fire_atlas.py +38 -0
  21. framerudiments-0.4.3/scripts/render_natural_material_demo.py +100 -0
  22. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/__init__.py +5 -1
  23. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/compositor.py +19 -1
  24. framerudiments-0.4.3/src/framerudiments/fire_assets/mantaflow/NOTICE.md +12 -0
  25. framerudiments-0.4.3/src/framerudiments/fire_assets/mantaflow/atlas.json +161 -0
  26. framerudiments-0.4.3/src/framerudiments/fire_assets/mantaflow/flames.png +0 -0
  27. framerudiments-0.4.3/src/framerudiments/fire_assets/marburg/NOTICE.md +16 -0
  28. framerudiments-0.4.3/src/framerudiments/fire_assets/marburg/atlas.json +47 -0
  29. framerudiments-0.4.3/src/framerudiments/fire_assets/marburg/flames.png +0 -0
  30. framerudiments-0.4.3/src/framerudiments/fire_assets.py +349 -0
  31. framerudiments-0.4.3/src/framerudiments/fire_fluid.py +163 -0
  32. framerudiments-0.4.3/src/framerudiments/fire_renderer.py +312 -0
  33. framerudiments-0.4.3/src/framerudiments/fire_volume.py +109 -0
  34. framerudiments-0.4.3/src/framerudiments/natural_materials.py +334 -0
  35. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/particle_engine.py +26 -5
  36. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/render.py +51 -24
  37. {framerudiments-0.4.1 → framerudiments-0.4.3/src/framerudiments.egg-info}/PKG-INFO +305 -242
  38. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments.egg-info/SOURCES.txt +25 -0
  39. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments.egg-info/requires.txt +4 -0
  40. framerudiments-0.4.3/tests/test_checkpoint_batches.py +32 -0
  41. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_controlled_audio.py +4 -1
  42. framerudiments-0.4.3/tests/test_fire_methods.py +180 -0
  43. framerudiments-0.4.3/tests/test_hybrid_launcher.py +56 -0
  44. framerudiments-0.4.3/tests/test_natural_materials.py +133 -0
  45. framerudiments-0.4.1/AGENTS.md +0 -20
  46. framerudiments-0.4.1/scripts/Run-ControlledPresetAnalysis.ps1 +0 -58
  47. {framerudiments-0.4.1 → framerudiments-0.4.3}/LICENSE +0 -0
  48. {framerudiments-0.4.1 → framerudiments-0.4.3}/analysis-releases.json +0 -0
  49. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/FrameRudiments-PATCH_WORKFLOW.md +0 -0
  50. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/annular-modulation.md +0 -0
  51. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/authoring-workspace.md +0 -0
  52. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/beat-alignment.md +0 -0
  53. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/expanded-effects.md +0 -0
  54. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/extraction.md +0 -0
  55. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/full-preset-analysis.md +0 -0
  56. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/keyframed-mattes.md +0 -0
  57. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/beat-alignment-evidence.json +0 -0
  58. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/beat-alignment.mp4 +0 -0
  59. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/beat-alignment.png +0 -0
  60. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/demo-transcript.md +0 -0
  61. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/effects-pipeline.svg +0 -0
  62. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/full-frame-comparison.png +0 -0
  63. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/full-frame-demo.mp4 +0 -0
  64. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/media-evidence.json +0 -0
  65. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/preset-test-cards.png +0 -0
  66. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/rangoli-transcript.md +0 -0
  67. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/rangoli.mp4 +0 -0
  68. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/rangoli.png +0 -0
  69. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/test-card-inputs/colour-bars.png +0 -0
  70. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/test-card-inputs/grid-rings.png +0 -0
  71. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/media/test-card-inputs/text-card.png +0 -0
  72. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/multi-stem-modulation.md +0 -0
  73. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/music-reactive-3d.md +0 -0
  74. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/particle-smoke.md +0 -0
  75. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/phase3-compositing.md +0 -0
  76. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/preset-behaviour.md +0 -0
  77. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/preset-profiling.md +0 -0
  78. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/project-format.md +0 -0
  79. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/projectm-local-runtime.md +0 -0
  80. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/quality-effects.md +0 -0
  81. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/rangoli.md +0 -0
  82. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/rich-lyric-effects.md +0 -0
  83. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/rudiment-renderers.md +0 -0
  84. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/scoped-post-effects.md +0 -0
  85. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/solid-spatial-renderers.md +0 -0
  86. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/spatial-renderers.md +0 -0
  87. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/spatiotemporal-supersampling.md +0 -0
  88. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/spectrum.md +0 -0
  89. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/sprite-visualisations.md +0 -0
  90. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/stem-sources-and-masks.md +0 -0
  91. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/variable-bpm-word-subtitles.md +0 -0
  92. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/visualisation-atlas.md +0 -0
  93. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/visualisation-coverage-matrix.md +0 -0
  94. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/visualiser-routing.md +0 -0
  95. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/visualisers.md +0 -0
  96. {framerudiments-0.4.1 → framerudiments-0.4.3}/docs/workflow-media.md +0 -0
  97. {framerudiments-0.4.1 → framerudiments-0.4.3}/integration/test_music_spatial_gpu.py +0 -0
  98. {framerudiments-0.4.1 → framerudiments-0.4.3}/integration/test_preset_analysis.py +0 -0
  99. {framerudiments-0.4.1 → framerudiments-0.4.3}/integration/test_released_preset_analysis.py +0 -0
  100. {framerudiments-0.4.1 → framerudiments-0.4.3}/integration/test_visualisers_gpu.py +0 -0
  101. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/Run-PresetBehaviourAnalysis.ps1 +0 -0
  102. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/authoring_preview.py +0 -0
  103. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/build_sprite_assets.py +0 -0
  104. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/check_projectm_runtime.py +0 -0
  105. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/check_release_packages.py +0 -0
  106. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/ensure_projectm_runtime.py +0 -0
  107. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/full_preset_analysis.py +0 -0
  108. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_particle_gallery.py +0 -0
  109. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_post_effect_gallery.py +0 -0
  110. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_quality_gallery.py +0 -0
  111. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_rich_lyric_gallery.py +0 -0
  112. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_sprite_gallery.py +0 -0
  113. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_supersampling_gallery.py +0 -0
  114. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_timing_gallery.py +0 -0
  115. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/generate_visualiser_routing_gallery.py +0 -0
  116. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/install_analysis_releases.py +0 -0
  117. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/prepare_pixelcue_taggers.py +0 -0
  118. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/preset_behaviour_pipeline.py +0 -0
  119. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/profile_visualisation_coverage.py +0 -0
  120. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/profile_visualisers.py +0 -0
  121. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/projectm_dll_diagnostics.py +0 -0
  122. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/repair_projectm_mingw.py +0 -0
  123. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/select_projectm_generator.py +0 -0
  124. {framerudiments-0.4.1 → framerudiments-0.4.3}/scripts/validate_patch.py +0 -0
  125. {framerudiments-0.4.1 → framerudiments-0.4.3}/setup.cfg +0 -0
  126. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/__main__.py +0 -0
  127. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/advanced_renderers.py +0 -0
  128. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/atlas.py +0 -0
  129. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/audio_probes.py +0 -0
  130. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/beat_alignment.py +0 -0
  131. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/beat_timeline.py +0 -0
  132. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/choreography.py +0 -0
  133. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/circular_renderers.py +0 -0
  134. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/cli.py +0 -0
  135. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/controlled_profiling.py +0 -0
  136. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/demo.py +0 -0
  137. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/effect_catalogue.py +0 -0
  138. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/effect_renderers.py +0 -0
  139. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/effects.py +0 -0
  140. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/encoding.py +0 -0
  141. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/flight.py +0 -0
  142. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/gpu_spatial_backend.py +0 -0
  143. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/io.py +0 -0
  144. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/keyframes.py +0 -0
  145. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/layer_animation.py +0 -0
  146. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/layer_displacement.py +0 -0
  147. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/layer_masks.py +0 -0
  148. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/lyric_indicator.py +0 -0
  149. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/modulation.py +0 -0
  150. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/motion.py +0 -0
  151. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/music_spatial_renderers.py +0 -0
  152. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/output_quality.py +0 -0
  153. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/post_effects.py +0 -0
  154. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/preset_library.py +0 -0
  155. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/preset_profiling.py +0 -0
  156. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/profile_analysis.py +0 -0
  157. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/project.py +0 -0
  158. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/projectm_backend.py +0 -0
  159. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/quality_effects.py +0 -0
  160. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/rangoli_renderer.py +0 -0
  161. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/rich_subtitles.py +0 -0
  162. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/rudiment_renderers.py +0 -0
  163. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/scoped_effects.py +0 -0
  164. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/solid_spatial_renderers.py +0 -0
  165. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/spatial_renderers.py +0 -0
  166. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/spectrum.py +0 -0
  167. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/arcade.png +0 -0
  168. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/crystal.png +0 -0
  169. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/fire.png +0 -0
  170. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/generated-neon.png +0 -0
  171. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/glass.png +0 -0
  172. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/hud.png +0 -0
  173. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/ice.png +0 -0
  174. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/lcd-amber.png +0 -0
  175. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/lcd-green.png +0 -0
  176. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/lcd.png +0 -0
  177. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/led.png +0 -0
  178. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/manifest.json +0 -0
  179. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/metal.png +0 -0
  180. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/mono.png +0 -0
  181. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/neon.png +0 -0
  182. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/pixel.png +0 -0
  183. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/plasma.png +0 -0
  184. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_assets/vfd.png +0 -0
  185. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_catalogue.py +0 -0
  186. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/sprite_renderers.py +0 -0
  187. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/stem_blend.py +0 -0
  188. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/stemlab.py +0 -0
  189. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/subtitles.py +0 -0
  190. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/super_sampling.py +0 -0
  191. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/terrain_field.py +0 -0
  192. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/timeline.py +0 -0
  193. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visual_style.py +0 -0
  194. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualisation_catalogue.py +0 -0
  195. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/butterchurn-page.js +0 -0
  196. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/butterchurn-worker.mjs +0 -0
  197. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/feedback.json +0 -0
  198. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/feedback.milk +0 -0
  199. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/julia.json +0 -0
  200. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/julia.milk +0 -0
  201. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/kaleidoscope.json +0 -0
  202. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/kaleidoscope.milk +0 -0
  203. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/package-lock.json +0 -0
  204. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/package.json +0 -0
  205. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_assets/rangoli-background.milk +0 -0
  206. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_routing.py +0 -0
  207. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualiser_setup.py +0 -0
  208. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/visualisers.py +0 -0
  209. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments/word_timing.py +0 -0
  210. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments.egg-info/dependency_links.txt +0 -0
  211. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments.egg-info/entry_points.txt +0 -0
  212. {framerudiments-0.4.1 → framerudiments-0.4.3}/src/framerudiments.egg-info/top_level.txt +0 -0
  213. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/conftest.py +0 -0
  214. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_adapters.py +0 -0
  215. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_advanced_renderers.py +0 -0
  216. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_authoring_preview.py +0 -0
  217. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_beat_alignment.py +0 -0
  218. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_behaviour_pipeline.py +0 -0
  219. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_coverage_matrix.py +0 -0
  220. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_default_antialias.py +0 -0
  221. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_effect_batch.py +0 -0
  222. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_extracted_helpers.py +0 -0
  223. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_flight.py +0 -0
  224. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_full_preset_analysis.py +0 -0
  225. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_gpu_ci_isolation.py +0 -0
  226. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_keyframes.py +0 -0
  227. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_layer_masks.py +0 -0
  228. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_lyrics.py +0 -0
  229. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_music_spatial_pipeline.py +0 -0
  230. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_music_spatial_renderers.py +0 -0
  231. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_particle_engine.py +0 -0
  232. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_patch_validation.py +0 -0
  233. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_phase3_animation.py +0 -0
  234. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_phase3_gpu_injection.py +0 -0
  235. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_pipeline.py +0 -0
  236. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_preset_profiling.py +0 -0
  237. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_projectm_dll_diagnostics.py +0 -0
  238. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_projectm_generator.py +0 -0
  239. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_projectm_runtime_preflight.py +0 -0
  240. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_pytest_temp_isolation.py +0 -0
  241. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_quality_effects.py +0 -0
  242. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_rangoli_renderer.py +0 -0
  243. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_release_metadata.py +0 -0
  244. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_repair_projectm_mingw.py +0 -0
  245. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_rich_subtitles.py +0 -0
  246. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_rudiment_renderers.py +0 -0
  247. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_scoped_effects.py +0 -0
  248. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_solid_spatial_integration.py +0 -0
  249. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_solid_spatial_renderers.py +0 -0
  250. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_spatial_renderers.py +0 -0
  251. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_spectrum.py +0 -0
  252. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_sprite_renderers.py +0 -0
  253. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_stem_blend.py +0 -0
  254. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_stem_source_integration.py +0 -0
  255. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_supersampling.py +0 -0
  256. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_timeline.py +0 -0
  257. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_variable_bpm_words.py +0 -0
  258. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_visualisation_modulation.py +0 -0
  259. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_visualiser_routing.py +0 -0
  260. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_visualisers.py +0 -0
  261. {framerudiments-0.4.1 → framerudiments-0.4.3}/tests/test_windows_launcher_splitpath.py +0 -0
@@ -0,0 +1,32 @@
1
+ # FrameRudiments development
2
+
3
+ Read README.md, docs/project-format.md and docs/extraction.md first. Preserve
4
+ source audio/clock identity and separation of technical QA from perceptual
5
+ approval. Use released DanceRudiments APIs and saved StemLab outputs; do not
6
+ copy movement definitions or DSP. Keep creative scene decisions in adapters.
7
+
8
+ Update README and relevant docs with feature changes. Add focused regression
9
+ coverage, run ruff and pytest with FFmpeg/font integration enabled, build wheel
10
+ and sdist, and smoke-test the installed wheel before a release. Keep credentials,
11
+ private media, song text, local paths and campaign evidence out of distributions.
12
+ Respect immutable tags, public deployment gates and explicit name ownership.
13
+ Submit focused improvements to https://github.com/kieransimkin/FrameRudiments/pulls.
14
+ Validate exact-head CI and immutable matching releases; do not rewrite tags or
15
+ assets. GitHub and PyPI publication are separately verified states. Website:
16
+ https://kieransimkin.co.uk/danceflow/.
17
+
18
+ Future v* tags publish automatically after CI. Keep the pypi environment free
19
+ of human reviewer gates; preserve tests, source/tag identity, checksum validation
20
+ and immutable assets. New publication destinations still require user authority.
21
+
22
+ ## Full ecosystem and release preflight
23
+
24
+ Before every new workflow run, check the latest stable official release and observe the actual runtime used by the job. Follow [the shared preflight](https://github.com/kieransimkin/DanceFlow/blob/main/docs/workflows/release-preflight.md) and this project's [people-and-agent guide](docs/ECOSYSTEM.md). Review the complete relevant capability inventory rather than only a familiar command. Consider every DanceFlow component against the actual task; use and compose all applicable supported capabilities, and improve a concrete reusable gap in its canonical repository. Record why existing capabilities suffice when no change is justified. No catalogue checklist expands the task, authorises model downloads/training, or proves integration. Preserve exact source/package identity, clocks, model-local storage, privacy, costs, immutable releases and separate deployment gates.
25
+
26
+ ## Preflight temporary-directory access
27
+
28
+ Before any long, costly, model-backed, media-rendering, build, test, packaging or release command that creates private or atomic temporary directories, run a disposable preflight with the exact runtime, user or sandbox, and intended output parent. The probe must create a unique directory, write and read a file, atomically rename it, then remove the file and directory.
29
+
30
+ Keep temporary data and caches under the owning project on `Z:`; model weights and model-specific caches remain under that project's ignored `models/`. If the probe returns `WinError 5`, access denied, a rename failure or a cleanup failure, stop before the expensive command. Preserve the exact error and use the documented narrowly approved unrestricted recovery from the outset only when the task requires it. Use a fresh output directory and do not repeat the already-failing full job in the restricted shell.
31
+
32
+ After any unrestricted recovery, verify that the final output is readable and writable from the normal managed environment. If it is not, copy the completed bytes into a pre-created project-local directory that passed the probe, verify hashes, and retain the original failure and recovery evidence. Do not edit global ACLs, switch caches to `C:`, terminate unrelated processes or claim the underlying permission problem is fixed. Repositories that own temporary-directory creation should provide and test a reusable preflight helper rather than relying only on this instruction.
@@ -9,3 +9,4 @@ prune visualiser-analysis
9
9
 
10
10
  recursive-include scripts *.py *.ps1
11
11
  recursive-include src/framerudiments/sprite_assets *.png *.json
12
+ recursive-include src/framerudiments/fire_assets *.png *.json *.md