Skip to content

Commit 4633f2f

Browse files
committed
[v0.0.3] 2025-08-23
## Context - Added comprehensive file loading support with `loadPLY()`, `loadOBJ()`, and `loadXML()` methods - Enhanced `loadPLY()` with 5 overloads supporting origin, height, rotation, color, and upaxis transformations - Enhanced `loadOBJ()` with 4 overloads including scale transformations and upaxis specification - Added complete `loadXML()` implementation for Helios XML geometry files - Extended native C++ wrapper with 9 new file loading functions and proper error handling - Added comprehensive parameter validation and security path checking - Implemented `addTriangleTextured()` - Implemented `addTrianglesFromArraysTextured()` ## Examples - Added example geometry files: `suzanne.ply`, `suzanne.obj`, `suzanne.mtl`, and `leaf_cube.xml` - Updated `external_geometry_sample.py` and `stanford_bunny_radiation.py` for demonstration ## Documentation - Major README.md restructuring with simplified installation and quick start guide - Streamlined documentation structure with consolidated user guide sections - Updated Doxygen configuration for cleaner documentation generation - Removed redundant documentation files and consolidated content ## Testing - Enhanced existing tests with file loading functionality validation - Added cross-platform API tests that work with and without native library
1 parent 4fb99ec commit 4633f2f

46 files changed

Lines changed: 259578 additions & 4427 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: PyHelios GPU Tests on Linux EC2
2+
3+
on:
4+
push:
5+
branches: [ "master" ]
6+
7+
env:
8+
BUILD_TYPE: Release
9+
10+
permissions:
11+
id-token: write
12+
contents: read
13+
14+
jobs:
15+
16+
start-gpu:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: aws-actions/configure-aws-credentials@v2
20+
with:
21+
role-to-assume: ${{ secrets.OIDC_ROLE_ARN }}
22+
aws-region: us-west-2
23+
- run: |
24+
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID }}
25+
aws ec2 wait instance-running --instance-ids ${{ secrets.EC2_INSTANCE_ID }}
26+
27+
run_pyhelios_gpu_tests:
28+
runs-on: [self-hosted]
29+
needs: start-gpu
30+
steps:
31+
- uses: actions/checkout@v3
32+
with:
33+
submodules: 'recursive'
34+
35+
- name: Set up Python
36+
uses: actions/setup-python@v4
37+
with:
38+
python-version: '3.9'
39+
40+
- name: Install PyHelios and dependencies
41+
run: |
42+
python -m pip install --upgrade pip
43+
pip install -e .[dev]
44+
45+
- name: Build PyHelios with all plugins (GPU included)
46+
run: |
47+
# Build with all available plugins including GPU-accelerated ones
48+
./build_scripts/build_helios --clean --plugins radiation,visualizer,weberpenntree
49+
50+
- name: Check plugin status
51+
run: |
52+
python -m pyhelios.plugins status
53+
python -c "from pyhelios.plugins import print_plugin_status; print_plugin_status()"
54+
55+
- name: Run PyHelios GPU tests
56+
run: |
57+
# Run native-only tests that require GPU plugins
58+
if ! pytest -v -m "native_only" --tb=short --log-file=pyhelios_gpu_tests.log; then
59+
echo "==== PyHelios GPU tests failed; dumping pyhelios_gpu_tests.log ===="
60+
cat pyhelios_gpu_tests.log
61+
exit 1
62+
fi
63+
64+
- name: Run comprehensive test suite
65+
run: |
66+
# Run full test suite to ensure nothing is broken
67+
if ! pytest -v --tb=short --log-file=pyhelios_full_tests.log; then
68+
echo "==== PyHelios comprehensive tests failed; dumping pyhelios_full_tests.log ===="
69+
cat pyhelios_full_tests.log
70+
exit 1
71+
fi
72+
73+
- name: Upload test logs
74+
uses: actions/upload-artifact@v3
75+
if: always()
76+
with:
77+
name: pyhelios-gpu-test-logs
78+
path: |
79+
pyhelios_gpu_tests.log
80+
pyhelios_full_tests.log
81+
build_scripts/build.log
82+
83+
stop-gpu:
84+
needs: run_pyhelios_gpu_tests
85+
if: always()
86+
runs-on: ubuntu-latest
87+
steps:
88+
- uses: aws-actions/configure-aws-credentials@v2
89+
with:
90+
role-to-assume: ${{ secrets.OIDC_ROLE_ARN }}
91+
aws-region: us-west-2
92+
- run: |
93+
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID }}
94+
aws ec2 wait instance-stopped --instance-ids ${{ secrets.EC2_INSTANCE_ID }}

0 commit comments

Comments
 (0)