foton-daylight 0.1.0__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 (65) hide show
  1. foton_daylight-0.1.0/CHANGELOG.md +16 -0
  2. foton_daylight-0.1.0/CONTRIBUTING.md +15 -0
  3. foton_daylight-0.1.0/Cargo.lock +713 -0
  4. foton_daylight-0.1.0/Cargo.toml +25 -0
  5. foton_daylight-0.1.0/PKG-INFO +182 -0
  6. foton_daylight-0.1.0/README.md +145 -0
  7. foton_daylight-0.1.0/crates/daylight-core/Cargo.toml +10 -0
  8. foton_daylight-0.1.0/crates/daylight-core/src/backend.rs +179 -0
  9. foton_daylight-0.1.0/crates/daylight-core/src/error.rs +30 -0
  10. foton_daylight-0.1.0/crates/daylight-core/src/fixtures.rs +224 -0
  11. foton_daylight-0.1.0/crates/daylight-core/src/geometry.rs +294 -0
  12. foton_daylight-0.1.0/crates/daylight-core/src/hash.rs +41 -0
  13. foton_daylight-0.1.0/crates/daylight-core/src/job.rs +130 -0
  14. foton_daylight-0.1.0/crates/daylight-core/src/lib.rs +39 -0
  15. foton_daylight-0.1.0/crates/daylight-core/src/material.rs +69 -0
  16. foton_daylight-0.1.0/crates/daylight-core/src/metrics.rs +228 -0
  17. foton_daylight-0.1.0/crates/daylight-core/src/sampling.rs +111 -0
  18. foton_daylight-0.1.0/crates/daylight-core/src/schedule.rs +50 -0
  19. foton_daylight-0.1.0/crates/daylight-core/src/sky.rs +291 -0
  20. foton_daylight-0.1.0/crates/daylight-core/tests/contracts.rs +302 -0
  21. foton_daylight-0.1.0/crates/daylight-metal/Cargo.toml +15 -0
  22. foton_daylight-0.1.0/crates/daylight-metal/shaders/annual_reduce.metal +41 -0
  23. foton_daylight-0.1.0/crates/daylight-metal/shaders/contracts.metal +121 -0
  24. foton_daylight-0.1.0/crates/daylight-metal/shaders/diffuse_transport.metal +326 -0
  25. foton_daylight-0.1.0/crates/daylight-metal/shaders/direct_visibility.metal +86 -0
  26. foton_daylight-0.1.0/crates/daylight-metal/shaders/mf2_to_tregenza.metal +32 -0
  27. foton_daylight-0.1.0/crates/daylight-metal/src/lib.rs +9 -0
  28. foton_daylight-0.1.0/crates/daylight-metal/src/metal.rs +1050 -0
  29. foton_daylight-0.1.0/crates/daylight-metal/src/reference.rs +420 -0
  30. foton_daylight-0.1.0/crates/daylight-metal/tests/reference_validation.rs +212 -0
  31. foton_daylight-0.1.0/crates/daylight-python/Cargo.toml +23 -0
  32. foton_daylight-0.1.0/crates/daylight-python/src/lib.rs +731 -0
  33. foton_daylight-0.1.0/crates/daylight-vulkan/Cargo.toml +16 -0
  34. foton_daylight-0.1.0/crates/daylight-vulkan/build.rs +45 -0
  35. foton_daylight-0.1.0/crates/daylight-vulkan/shaders/annual_reduce.comp +32 -0
  36. foton_daylight-0.1.0/crates/daylight-vulkan/shaders/common.glsl +59 -0
  37. foton_daylight-0.1.0/crates/daylight-vulkan/shaders/diffuse_transport.comp +143 -0
  38. foton_daylight-0.1.0/crates/daylight-vulkan/shaders/direct_visibility.comp +71 -0
  39. foton_daylight-0.1.0/crates/daylight-vulkan/shaders/finalize_indirect.comp +21 -0
  40. foton_daylight-0.1.0/crates/daylight-vulkan/src/lib.rs +798 -0
  41. foton_daylight-0.1.0/crates/daylight-vulkan/src/runtime.rs +711 -0
  42. foton_daylight-0.1.0/crates/daylight-vulkan/tests/reference_validation.rs +107 -0
  43. foton_daylight-0.1.0/docs/architecture.md +71 -0
  44. foton_daylight-0.1.0/docs/backends.md +56 -0
  45. foton_daylight-0.1.0/docs/benchmarking.md +44 -0
  46. foton_daylight-0.1.0/docs/installation.md +64 -0
  47. foton_daylight-0.1.0/docs/python-api.md +94 -0
  48. foton_daylight-0.1.0/docs/releasing.md +52 -0
  49. foton_daylight-0.1.0/pyproject.toml +71 -0
  50. foton_daylight-0.1.0/python/daylight_engine/__init__.py +23 -0
  51. foton_daylight-0.1.0/python/daylight_engine/honeybee/__init__.py +6 -0
  52. foton_daylight-0.1.0/python/daylight_engine/honeybee/adapter.py +468 -0
  53. foton_daylight-0.1.0/python/daylight_engine/honeybee/radiance.py +284 -0
  54. foton_daylight-0.1.0/python/daylight_engine/honeybee/recipe.py +533 -0
  55. foton_daylight-0.1.0/python/daylight_engine/honeybee/settings.py +35 -0
  56. foton_daylight-0.1.0/python/daylight_engine/viewer/__init__.py +6 -0
  57. foton_daylight-0.1.0/python/daylight_engine/viewer/__main__.py +31 -0
  58. foton_daylight-0.1.0/python/daylight_engine/viewer/app.py +157 -0
  59. foton_daylight-0.1.0/python/daylight_engine/viewer/geometry.py +313 -0
  60. foton_daylight-0.1.0/python/daylight_engine/viewer/session.py +312 -0
  61. foton_daylight-0.1.0/python/daylight_engine/viewer/weather.py +405 -0
  62. foton_daylight-0.1.0/python/foton/__init__.py +23 -0
  63. foton_daylight-0.1.0/python/foton/honeybee/__init__.py +13 -0
  64. foton_daylight-0.1.0/python/foton/viewer/__init__.py +13 -0
  65. foton_daylight-0.1.0/python/foton/viewer/__main__.py +7 -0
@@ -0,0 +1,16 @@
1
+ # Changelog
2
+
3
+ All notable Foton changes are recorded here.
4
+
5
+ ## 0.1.0 - 2026-07-31
6
+
7
+ Initial public release.
8
+
9
+ - Automatic Metal, Vulkan, or deterministic CPU backend selection.
10
+ - Native Metal and Vulkan ray-query transport with resident acceleration structures.
11
+ - Direct visibility, diffuse multi-bounce transport, thin glass, and coefficient export.
12
+ - Tregenza and Reinhart MF:2 sky bases.
13
+ - GPU annual reduction for daylight autonomy and static area-weighted sDA.
14
+ - Honeybee geometry conversion and native Radiance comparison tools.
15
+ - Reproducible hardware benchmarks, including a 1,000-room/25,000-sensor fixture.
16
+ - Local Three.js daylight viewer.
@@ -0,0 +1,15 @@
1
+ # Contributing
2
+
3
+ Use Python 3.10 or newer, Rust 1.85 or newer, and Node.js 20 or newer.
4
+
5
+ ```bash
6
+ python -m pip install -e ".[honeybee,viewer,test]"
7
+ cargo test --workspace
8
+ python -m pytest tests/python
9
+ cd viewer && npm ci && npm test -- --run
10
+ ```
11
+
12
+ Keep changes focused and preserve backend parity. Transport changes should be validated
13
+ in this order: direct visibility, full coefficients, then annual illuminance and
14
+ metrics. GPU-specific integration tests should skip cleanly when compatible hardware
15
+ is unavailable.