Skip to content

Commit 17c3b53

Browse files
committed
[v0.1.10] 2025-12-02
🚨++ New Plug-in Integrated ++ 🚨 - Leaf Optics plug-in integrated - Updated helios-core to v1.3.58 ## Context - Added complete materials system with `addMaterial()`, `setMaterialColor()`, `setMaterialTexture()`, and material assignment methods - Materials enable efficient memory usage by sharing visual properties across multiple primitives ## Radiation Model - Extended camera properties with lens focal length, sensor dimensions, shutter speed, and metadata fields - Added camera library support with `addRadiationCameraFromLibrary()` for preconfigured camera models - Added `updateCameraParameters()` and `enableCameraMetadata()` for camera management - Camera properties array expanded from 6 to 9 floats (added lens_focal_length, sensor_width_mm, shutter_speed) ## Solar Position - Integrated SSolar-GOA spectral solar model with `calculateDirectSolarSpectrum()`, `calculateDiffuseSolarSpectrum()`, and `calculateGlobalSolarSpectrum()` - Added SolarPosition plugin asset management for SSolar-GOA data files
1 parent 4ab4f1c commit 17c3b53

57 files changed

Lines changed: 13402 additions & 3331 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs.yml

Lines changed: 44 additions & 453 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<img src="https://raw.githubusercontent.com/PlantSimulationLab/PyHelios/master/docs/images/PyHelios_logo_whiteborder.png" alt="" width="300" />
88
</div>
99

10-
# PyHelios
10+
# Getting Started {#GettingStarted}
1111

1212
Cross-platform Python bindings for [Helios](https://github.com/PlantSimulationLab/Helios) 3D plant simulation library.
1313

@@ -39,11 +39,11 @@ PyHelios will gracefully handle GPU features - if you don't have CUDA-capable ha
3939

4040
> **Note for Intel Mac Users**: Due to GitHub Actions infrastructure limitations, pre-built wheels are only available for Apple Silicon Macs. Intel Mac users must build PyHelios from source following the [macOS build instructions](#macos) below.
4141
42-
### Build from Source
42+
### Build from Source {#build-from-source}
4343

4444
If you need to customize plugins or build from source:
4545

46-
#### Windows
46+
#### Windows {#windows}
4747

4848
**Prerequisites:**
4949
- Visual Studio 2019+ or Build Tools for Visual Studio
@@ -61,7 +61,7 @@ cd PyHelios/
6161
pip install -e .
6262
```
6363

64-
#### macOS
64+
#### macOS {#macos}
6565

6666
**Prerequisites:**
6767
- Xcode command line tools
@@ -83,7 +83,7 @@ source helios-core/utilities/dependencies.sh
8383
pip install -e .
8484
```
8585

86-
#### Linux (Ubuntu/Debian)
86+
#### Linux (Ubuntu/Debian) {#linux}
8787

8888
**Prerequisites:**
8989
- Build essentials

build_scripts/build_helios.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
"stomatalconductance",
4848
"boundarylayerconductance",
4949
"photosynthesis",
50-
"plantarchitecture"
50+
"plantarchitecture",
51+
"leafoptics"
5152
]
5253

5354
# Execute dependency_resolver.py to get PluginDependencyResolver

build_scripts/prepare_wheel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ def copy_assets_for_packaging(project_root):
204204
'leaves': ['*.xml', '*.obj', '*.ply'],
205205
'wood': ['*.xml', '*.obj', '*.ply'],
206206
'xml': ['*.xml'],
207-
'spectral_data': ['*.csv', '*.txt', '*.dat'],
207+
'spectral_data': ['*.csv', '*.txt', '*.dat', '*.xml'],
208208
'data': ['*.csv', '*.txt', '*.dat', '*.json'],
209209
'camera_light_models': ['*.xml', '*.json']
210210
}
@@ -215,6 +215,7 @@ def copy_assets_for_packaging(project_root):
215215
'weberpenntree': ['leaves', 'wood', 'xml'],
216216
'visualizer': ['textures', 'shaders', 'fonts'],
217217
'plantarchitecture': ['assets/textures', 'assets/obj'],
218+
'leafoptics': ['spectral_data'],
218219
# NOTE: canopygenerator is not integrated with PyHelios - assets not needed
219220
}
220221

docs/CHANGELOG.md

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Changelog
22

3+
# [v0.1.10] 2025-12-02
4+
5+
🚨++ New Plug-in Integrated ++ 🚨
6+
- Leaf Optics plug-in integrated
7+
8+
- Updated helios-core to v1.3.58
9+
10+
## Context
11+
- Added complete materials system with `addMaterial()`, `setMaterialColor()`, `setMaterialTexture()`, and material assignment methods
12+
- Materials enable efficient memory usage by sharing visual properties across multiple primitives
13+
14+
## Radiation Model
15+
- Extended camera properties with lens focal length, sensor dimensions, shutter speed, and metadata fields
16+
- Added camera library support with `addRadiationCameraFromLibrary()` for preconfigured camera models
17+
- Added `updateCameraParameters()` and `enableCameraMetadata()` for camera management
18+
- Camera properties array expanded from 6 to 9 floats (added lens_focal_length, sensor_width_mm, shutter_speed)
19+
20+
## Solar Position
21+
- Integrated SSolar-GOA spectral solar model with `calculateDirectSolarSpectrum()`, `calculateDiffuseSolarSpectrum()`, and `calculateGlobalSolarSpectrum()`
22+
- Added SolarPosition plugin asset management for SSolar-GOA data files
23+
324
# [v0.1.9] 2025-11-27
425

526
- Updated helios-core to v1.3.57
@@ -10,14 +31,14 @@
1031
- Added `Context.deletePrimitive()` and `Context.deleteObject()` methods
1132
- Added `Context.writePrimitiveData()` method to write primitive data to a file
1233

13-
## Radiation Model
14-
- Added new radiation source types: `addRectangleRadiationSource()`, `addDiskRadiationSource()`
15-
- Added source management: `setSourcePosition()`, `getSourcePosition()`, `deleteRadiationSource()`
16-
- Added spectrum manipulation: `setSourceSpectrum()`, `integrateSpectrum()`, `scaleSpectrum()`, `blendSpectra()`
17-
- Added diffuse radiation support: `setDiffuseRadiationExtinctionCoeff()`, `setDiffuseSpectrum()`, `getDiffuseFlux()`
18-
- Added camera system: position, lookat, orientation, spectral response, and pixel data methods
19-
- Added utility methods: `doesBandExist()`, `getSkyEnergy()`, `calculateGtheta()`, `enforcePeriodicBoundary()`
20-
- Extended `copyRadiationBand()` to support optional wavelength range parameters
34+
## Radiation Model
35+
- Added new radiation source types: `addRectangleRadiationSource()`, `addDiskRadiationSource()`
36+
- Added source management: `setSourcePosition()`, `getSourcePosition()`, `deleteRadiationSource()`
37+
- Added spectrum manipulation: `setSourceSpectrum()`, `integrateSpectrum()`, `scaleSpectrum()`, `blendSpectra()`
38+
- Added diffuse radiation support: `setDiffuseRadiationExtinctionCoeff()`, `setDiffuseSpectrum()`, `getDiffuseFlux()`
39+
- Added camera system: position, lookat, orientation, spectral response, and pixel data methods
40+
- Added utility methods: `doesBandExist()`, `getSkyEnergy()`, `calculateGtheta()`, `enforcePeriodicBoundary()`
41+
- Extended `copyRadiationBand()` to support optional wavelength range parameters
2142

2243
# [v0.1.8] 2025-10-15
2344

docs/Doxyfile.python

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,15 @@ WARN_LOGFILE =
124124
#---------------------------------------------------------------------------
125125

126126
INPUT = pyhelios \
127-
docs/getting_started.md \
127+
docs/introduction.md \
128+
docs/user_guide.md \
129+
docs/file_io.md \
128130
docs/cross_platform.md \
129131
docs/plugin_system.md \
130-
docs/user_guide.md \
131132
docs/plugin_integration_guide.md \
132133
docs/plugin_boundarylayerconductance.md \
133134
docs/plugin_energybalance.md \
135+
docs/plugin_leafoptics.md \
134136
docs/plugin_photosynthesis.md \
135137
docs/plugin_plantarchitecture.md \
136138
docs/plugin_radiation.md \

docs/DoxygenLayout.xml

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,17 @@
44
<navindex>
55
<!-- Main navigation -->
66
<tab type="mainpage" visible="yes" title="Home"/>
7-
8-
<!-- Getting Started Section -->
9-
<tab type="usergroup" visible="yes" url="@ref GettingStarted" title="Getting Started" intro="">
10-
<tab type="user" visible="yes" url="@ref Installation" title="Installation"/>
11-
<tab type="user" visible="yes" url="@ref QuickStart" title="Quick Start"/>
12-
<tab type="user" visible="yes" url="@ref CrossPlatform" title="Cross-Platform Usage"/>
13-
<tab type="user" visible="yes" url="@ref PluginSystem" title="Plugin System"/>
14-
</tab>
15-
7+
168
<!-- User's Guide Section -->
17-
<tab type="usergroup" visible="yes" url="@ref UserGuide" title="User Guide" intro="">
18-
<tab type="user" visible="yes" url="@ref Overview" title="Core Concepts"/>
19-
<tab type="user" visible="yes" url="@ref API" title="API Reference"/>
9+
<tab type="usergroup" visible="yes" url="@ref Introduction" title="User's Guide" intro="">
10+
<tab type="user" visible="yes" url="@ref Introduction" title="Introduction"/>
11+
<tab type="mainpage" visible="yes" title="Install and Set-up"/>
12+
<tab type="user" visible="yes" url="@ref API" title="User/API Guide"/>
2013
<tab type="user" visible="yes" url="@ref IO" title="File I/O"/>
2114
</tab>
2215

2316
<!-- Plugin Documentation Section -->
24-
<tab type="usergroup" visible="yes" url="@ref Plugins" title="Plugins" intro="">
17+
<tab type="usergroup" visible="yes" url="@ref PluginSystem" title="Plugins" intro="">
2518
<!-- Currently Implemented Plugins (Alphabetized) -->
2619
<tab type="user" visible="yes" url="@ref BoundaryLayerConductanceDoc" title="Boundary Layer Conductance"/>
2720
<tab type="user" visible="yes" url="@ref EnergyBalanceDoc" title="Energy Balance Model"/>

0 commit comments

Comments
 (0)