Releases: 3dgeo-heidelberg/helios
Version 1.3.0
🦇 Halloween release of HELIOS++
Changelog:
- HELIOS++ now supports simulation of dynamic scenes. Check out the documentation in the Wiki, example 14 and example 15 of our gallery and our new Blender add-ons to export animations from Blender to HELIOS++.
- Fix: We solved a wrong line-box check that is now a ray-box check. We also updated the early abort check to consider the intersection time of each single subray instead of using the time of the central ray for each subray.
- Fix: We improved the performance through dynamic programming to speed-up the subray direction computation. On top of that, we improved the memory handling of two key components: the ray tracing algorithm and the Gaussian fit for the fullwave simulation.
- Fix: Disabling export to file works now.
- Fix:
helios.py
: Conversion of all polygons to triangles for o3d visualisation works now. - Fix: Docker image - Compilation is now done using the proper Python version.
The Windows and Ubuntu-binaries include pyhelios files for Python 3.6-3.10. By default, Python 3.8 is activated. To change, you need to replace the _pyhelios.pyd/_pyhelios.so-File in the run folder with the respective file corresponding to your version.
On Ubuntu, the run
folder has to be added to your LD_LIBRARY_PATH
to tell dynamic link loader where to look for dynamic shared libraries. This can be done with export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"path/to/helios/run"
. We wrote the necessary commands into a shell script, so you just need to run . ./heliosShell.sh
from the helios root folder.
This release is also published on zenodo with the following DOI:
Version 1.2.0
New release of HELIOS++
Changelog:
- Added support for trajectory input. An existing trajectory (incl. attitude) file (ASCII) can be specified, and HELIOS++ will follow this trajectory. See this example notebook or this example survey and the Wiki for more details.
- Multi-channel Scanners are now supported. Have a look at our example notebooks for the Livox Mid-100 and the Velodyne Puck
- Documentation: Gallery of examples showcasing features of HELIOS++ and explaining concepts and applications (notebooks, surveys). Find the gallery in the README.md and in the Wiki
- New parameters
verticalResolution_deg
andhorizontalResolution_deg
in thescannerSettings
(survey XML) for scanners with "rotating" deflectors (e.g., terrestrial laser scanners by RIEGL). These can be used alternatively toscanFreq_hz
andheadRotatePerSec_deg
and simplify survey configurations. - Output directory is now
output/[survey_name]
by default. (Survey Playback
was removed). It can be set to a different path using--output [new_path]
on the command line or with the.setOutputDir(outputDir)
method of aSimulationBuilder
object in pyhelios. - Output path can be obtained in pyhelios from the
sim.join()
function, which now returns an object withmeasurements
,trajectories
and, ifsimBuilder.setFinalOutput(True)
was set,outpaths
(containing a string vector with the paths to all simulated point clouds) as well asoutpath
(containing the path to the last simulated point cloud). - Improved error message when attempting to load invalid OBJ files: Will now specify the Filename and Triangle ID, omit the offending obj object and resume simulation instead of crashing.
- Fixed bugs related to
--lasOutput
and--las10
versions as well as merging of flight strips by setting<leg id="00">
or similar. - Solved a few minor bugs
- Implemented some minor improvements
The Windows and Ubuntu-binaries include pyhelios files for Python 3.6-3.10. By default, Python 3.8 is activated. To change, you need to replace the _pyhelios.pyd/_pyhelios.so-File in the run folder with the respective file corresponding to your version.
On Ubuntu, the run
folder has to be added to your LD_LIBRARY_PATH
to tell dynamic link loader where to look for dynamic shared libraries. This can be done with export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"path/to/helios/run"
.
This release is also published on zenodo with the following DOI:
Version 1.1.0
New release of HELIOS++
Changelog:
- New kD-Tree Options:
we now support 4 different kD-Tree building strategies with the--kdt
command line parameter. The accepted values are:1
for the simple KDTree based on median balancing,2
to the SAH (surface area heuristics) based KDTree,3
for the SAH with best axis criteria, and4
(the new default) to the fast approximation of SAH. Additional parameters can be tuned depending on the KDTree, depending on the choice of strategy. Note that the results are consistent, only the speed is influenced. You can expect a study on the runtimes in the next months. - Fixed an error when providing a fixed seed for the
DetailedVoxel
model - Fixed errors with the python bindings and in docker
- Cleaned CI build and enabled automatic tests using
pytest
- python scripts reordering; Note that the
pyhelios.so
/pyd
has been moved to thepyhelios
directory, which was merged withpyheliostools
. From the HELIOS++ root directory, a
from pyhelios import ...
should be used in the future. This namespace collects the C++ bindings (in_pyhelios.so
/.pyd
), the originalpyheliostools
(nowpyhelios.tools
) and utility scripts (pyhelios.util
). Example scripts on how to runpyhelios
have been moved toexample_scripts
andexample_notebooks
, respectively.
The Windows and Ubuntu-binaries include pyhelios files for Python 3.6-3.9. By default, Python 3.8 is activated. To change, you need to replace the _pyhelios.pyd/_pyhelios.so-File in the run folder with the respective file corresponding to your version.
On Ubuntu, the run
folder has to be added to your LD_LIBRARY_PATH
to tell dynamic link loader where to look for dynamic shared libraries. This can be done with export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"path/to/helios/run"
.
This release is also published on zenodo with the following DOI:
Version 1.0.9
New summer release of HELIOS++ 🏖🏝
Changelog:
- Fullwave files are now written with correct time information. The timespan from first to last bin divided by the number of fullwave bin entries is the bin size in ns.
- python converter from .txt fullwave to .wdp added. This script requires
laspy
to be installed. - simple primitives demo added, option to compile HELIOS++ with visualizer
- squashing a number of bugs
- optimized libraries required/delivered with the executable (download size reduced)
- windows executables are now digitally signed (Fingerprint
f64ce1929f2e63eb8e5103ebac0b649a9fa85eda
)
The windows binaries include pyhelios files for Python 3.6-3.9. By default, Python 3.8 is activated. To change, you need to replace the pyhelios.pyd-File in the run folder with the respective file corresponding to your version.
This release is also published on zenodo with the following DOI:
Version 1.0.8
New release of HELIOS++
Changelog:
- Fixed effective point measurement rate with rotating polygon mirrors (#39). Note the changes to the scanner xml files.
- Changed default LAS version to 1.4 (use
--las10
to write v1.0 files as before) (#40) - GPSTime is now starting with the start of simulation (as seconds since last Sunday, midnight) and running in simulated time as opposed to real time. This means, trajectory speed can be estimated from the GPSTime and the position in the Trajectory files (#43)
The windows binaries include pyhelios files for Python 3.6-3.9. By default, Python 3.8 is activated. To change, you need to replace the pyhelios.pyd-File in the run folder with the respective file corresponding to your version.
This release is also published on zenodo with the following DOI:
Version 1.0.6
Easter release of HELIOS++!
Changelog:
- Added
slowdownEnabled
,smoothTurn
andyawAtDeparture
(forleg
) andtemplate
(forscannerSettings
) to pyhelios - Merged Risley prism scanners (PR from @rockz-lab) used to simulate LiVOX scanners
- Added Parameter for specifying maximum number of returns per pulse (
maxNOR
) inscannerSettings
- Improved error messages when parsing files
- Added Easter eggs in
toyblocks
demo scene. Run withrun/helios.exe data/surveys/toyblocks/als_toyblocks.xml
The windows binaries include pyhelios
files for Python 3.6-3.9. By default, Python 3.8 is activated. To change, you need to replace the pyhelios.pyd
-File in the run
folder with the respective file corresponding to your version.
This release is also published on zenodo with the following DOI:
Version 1.0.3
New precompiled version of HELIOS++ available
Changelog:
- Rotations for the Muliticopter turn mode
smoothTurn=True
updated and corrected - efilepath argument can now be used when loading XYZ point clouds (wildcard support)
- pyhelios simulation copies will now keep the
zipOutput
flag - more settings are now available from pyhelios (
trajectoryTimeInterval
,verticalAngleMin/Max?
) - pyhelios now allows loading of GeoTIFFs
- pyhelios_script.py has been improved and can now handle GeoTIFFs
This release is also published on zenodo with the following DOI:
UPDATE: You can now use pyhelios on Windows precompiled for different 64-bit python versions - just replace the pyhelios.pyd
in the run
directory with the one corresponding to your python version.
Version 1.0.0
First public release of HELIOS++.
HELIOS++ releases come with a compiled version of the Wiki, available in the "wiki" subfolder. We recommend this as a starting point for new users, or users wanting to adapt existing HELIOS projects to HELIOS++.
For Windows, download and extract "helios-plusplus-win.zip", for Linux download and extract (tar -xzvf helios-plusplus-lin.tar.gz
) "helios-plusplus-lin.tar.gz".
This version is also released on zenodo with the following DOI: