Giter Site home page Giter Site logo

plantsimulationlab / helios Goto Github PK

View Code? Open in Web Editor NEW
56.0 56.0 23.0 366.43 MB

The Helios simulation system is a versatile modeling framework that handles tasks such as managing geometry and associated data structures through a C++ API. Plug-ins build off of the Helios core engine, and access the geometry and data via the Helios context. The sytem comes with a visualization plug-in that can produce stunning renderings of model geometry and data with relatively little effort.

Home Page: http://baileylab.ucdavis.edu/software/helios

License: GNU General Public License v2.0

CMake 0.79% C++ 28.84% Makefile 1.17% C 58.23% Assembly 0.43% Shell 3.08% M4 0.20% DIGITAL Command Language 0.20% Objective-C 0.39% Batchfile 0.03% Roff 0.87% Awk 0.13% Module Management System 0.05% SAS 0.04% CLIPS 0.01% Pascal 0.19% Ada 0.24% C# 0.68% HTML 4.28% Perl 0.15%

helios's People

Contributors

bnbailey-psl avatar erkent avatar jannessm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helios's Issues

system requirement and user guide

Hi Helios team:
What is computer specification that you are currently using? I would like to download and test the software, but I feel my current laptop is not suitable for this as it is a windows system.
note on the website:
Currently, Helios is only compatible with Mac and Linux platforms. Some plug-ins require an NVIDIA graphics processing unit (GPU), such as the radiation model and LiDAR plug-ins.

By the way, is there a software user guide?
thanks very much in advance.
Cheers.
Junqi

[bug] sky texture is removed after plotUpdate()

Scenario:

  • I initialize a visualizer with
    • adding a sky dome
    • set the camera position
  • I add a tree
  • I call plotUpdate() => here everything looks good
  • I remove the leaves of the tree
  • I call plotUpdate() => sky dome was removed

Expected behavior:

I assumed that after adding a sky dome it must be explicitly removed like all other primitives. But instead it gets somehow "removed".

Is this behavior on purpose?

Regards,
Jannes

Synthetic rays did not hit any primitives.

I tried to generate synthetic TLS data.

I prepare main.cpp file:
#include "Context.h"
#include "LiDAR.h"

using namespace helios;

int main( void ){

 Context context;

 context.addPatch(); // create some model geometry here

 LiDARcloud pointcloud; //Initialize the LiDAR point cloud

 pointcloud.loadXML("/home/uqrarya1/Helios/plugins/lidar/xml/tls.xml");  //Load the XML file
 
 int rays_per_pulse = 100;
 float pulse_distance_threshold = 0.02; 
 
 pointcloud.syntheticScan( &context, rays_per_pulse, pulse_distance_threshold );  //generate synthetic data

 pointcloud.exportPointCloud( "/home/uqrarya1/Helios/samples/tls/file.xyz");  //write to ASCII file

This is my pointcloud.xml file:

<scan>
  <ASCII_format> x y z r255 g255 b255 target_count target_index timestamp </ASCII_format>
  <origin> 0 0 1.0 </origin>
  <size> 10000 12000 </size>
  <thetaMin> 30 </thetaMin>
  <thetaMax> 130 </thetaMax>
  <phiMin> 0 </phiMin>
  <phiMax> 360 </phiMax> 
  <exitDiameter> 0.005 </exitDiameter>
  <beamDivergence> 0.003 </beamDivergence>
</scan>

I am getting warning:
(base) uqrarya1@SENV-FT8YRQ3:~/Helios/samples/tls/build$ /home/uqrarya1/Helios/samples/tls/build/tls
Reading XML file: /home/uqrarya1/Helios/plugins/lidar/xml/tls.xml...done.
Successfully read 1 scan(s), which contain 0 total hit points.
Performing full-waveform synthetic LiDAR scan...
WARNING: Synthetic rays did not hit any primitives.

I am developing Leaf Area Density using Ray Cloud Tools and want to validate with reference data from Helios .... Is this possible ? Is there any guideline to do that ? I am very new in this field.

[bug]function loadPLY

Hi,
I using context.loadPLY() function to import .ply mesh file. After visualization, I found that the mesh should rotate 90 degrees around the x-axis. I tried Helios/samples/radiation_StanfordBunny that its mesh looks like normal in using vis.plotInteractive();. So I open PLY/StanfordBunny.ply in matlab, and I found this StanfordBunny mesh actually rotate 90 degrees around the x-axis when It looks normal after reading. So maybe I think this function may have some problems in reading ply with the coordinate axis.

Thanks!

Plot Update doesn't work without a sleep/delay

I am using the visualizer with the Weber-Penn Tree Model
Given the following:
... Add trees to context ...
vis.buildContextGeometry(&context);
vis.PlotUpdate();
vis.printWindow(filename);

The printwindow function does not work unless I put a sleep between the plot update and the print window

[feature] resume after plotInteractive()

Hello,

Is there any opportunity to open an interactive plot that blocks until the program is resumed for manipulating the scene until a next plotInteractive is called? This would highly improve this framework. Otherwise, each time the plotInteractive window is closed, the visualizer needs to be initialized again or the program will throw a BadWindow error:

  Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  3 (X_GetWindowAttributes)
  Resource id in failed request:  0x0
  Serial number of failed request:  1145
  Current serial number in output stream:  1146

[documentation] typos in walnut parameter docs

I noticed several of the docstrings for walnut canopy parameters have typos left over from copying them.
from here

float 	fruit_radius
 	Radius of strawberry fruit.

std::string 	fruit_texture_file
 	Texture map for strawberry fruit.

[feature] Docs and maybe improvement of Memory Cleanup functionality

I have a feature request. Currently, I want to use your package for creating synthetic data for an ai approach. For this I need trees with and without leaves. During implementation I noticed that not all memory gets freed after destructing all instances I used. Especially, when generating trees and then deleting all leaves via getLeafUUIDs() from the WeberPennTree, the UUIDs still are referenced in the WeberPennTree instance. A MemCheck with valgrind also revealed that there might be some Memory issues with glfw and the visualizer. But maybe you know more about the exact implementation and how the memory is handled.

If there exists clean up functionality for the primitives and some thoughts about how primitives/trees should be added to a context and removed, documentation about this would be very helpful.

Thank you!

Optix library

I am using Helios using WSL environment in VS Code. I am getting error in using radiation plugin.

(base) uqrarya1@SENV-FT8YRQ3:~/Helios/samples/radiation_selftest/build$ /home/uqrarya1/Helios/samples/radiation_selftest/build/radiation_selftest
OptiX Error: Failed to load OptiX library
(/home/uqrarya1/Helios/plugins/radiation/src/RadiationModel.cpp:1114)

How I can access Optix library ?

[bug]Could not succeed complie Helios in windows

Hello,

I installed all the required softwaree and tried to follow the 'Tutorial 0: Context Self-Test Tutorial' . My configuration is as follows:
vs2019;Cmake 3.23.1;
But in cmake, I meat such problem:

CMake Deprecation Warning at D:/Helios/core/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at D:/Helios/core/lib/zlib/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


Looking for sys/types.h
Looking for sys/types.h - found
Looking for stdint.h
Looking for stdint.h - found
Looking for stddef.h
Looking for stddef.h - found
Check size of off64_t
Check size of off64_t - failed
Looking for fseeko
Looking for fseeko - not found
Looking for unistd.h
Looking for unistd.h - not found
CMake Deprecation Warning at D:/Helios/core/lib/libpng/CMakeLists.txt:13 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at D:/Helios/core/lib/libpng/CMakeLists.txt:14 (cmake_policy):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


Performing Test HAVE_LD_VERSION_SCRIPT
Performing Test HAVE_LD_VERSION_SCRIPT - Failed
Performing Test HAVE_SOLARIS_LD_VERSION_SCRIPT
Performing Test HAVE_SOLARIS_LD_VERSION_SCRIPT - Failed
bin dir D:/Helios/samples/context_selftest/build
CMake Deprecation Warning at D:/Helios/core/lib/libjpeg-9a/CMakeLists.txt:8 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


DIST_NAME: libjpeg
DIST_VERSION: 9.1.0
DIST_LICENSE: jpeg license
DIST_AUTHOR: Tom Lane, Guido Vollbeding, Philip Gladstone, Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge
DIST_MAINTAINER: Peter Kapec
DIST_URL: http://www.ijg.org/
DIST_DESC: Independent JPEG Group
DIST_DEPENDS: 
Looking for stdlib.h
Looking for stdlib.h - found
-- Loading 0 plug-ins
Configuring done
Generating done

I think the previous warning which about cmake version can be ignored, but libjpeg confuse me.
I continue to make and get the following error:

RC2135; file not found: char; zlib;zconf.h.included; 368
RC2135; file not found: unsigned; zlib;zconf.h.included; 370
RC2135; file not found: typedef; zlib;zconf.h.included; 371
LNK1104; cannot open file 'lib\zlibstatic.lib'; context_selftest; LINK; 1

I wonder if you could help me with this

[feature] add apple tree model

I plan on adding a trellised apple tree model to the system. One that is built off a canopy like the image below.

image

I plan on working off the walnut tree model and build single apple tree function and eventually a canopy builder.

Visualizer error on macOS with SSH X11 forwarding

When running any code that involves the Visualizer plugin, I get the following error:

Initializing graphics...terminate called after throwing an instance of 'std::runtime_error'
  what():  ERROR(Visualizer): Failed to initialize graphics.
Common causes for this error:
-- OSX
  - Is XQuartz installed (xquartz.org) and configured as the default X11 window handler?  When running the visualizer, XQuartz should automatically open and appear in the dock, indicating it is working.
-- Linux
  - Are you running this program remotely via SSH? Remote X11 graphics along with OpenGL are not natively supported.  Installing and using VirtualGL is a good solution for this (virtualgl.org).

Aborted (core dumped)

Context:

  • I am on Apple M1
  • The code is on a remote Ubuntu GPU machine that I connect to with SSH forwarding (tried ssh -X and ssh -Y)
  • XQuartz is installed and configured as the default X11 window handler. When running the code, XQuartz opens and appears in the dock but nothing is displayed.
  • The same code works well with SSH forwarding from another Linux machine (the preview displays correctly)
  • Other remote graphical applications display fine on my Mac (I tested xclock and glxgears)

[bug] Tutorial2 line18

Hi,
I tested tutorial2. It prompt error as follow:

error: base operand of ‘->’ has non-pointer type ‘helios::Context’
   18 |   context->translatePrimitive( UUID, position_shift ); //apply the translation
      |          ^~
make[2]: *** [CMakeFiles/tutorial2.dir/build.make:76:CMakeFiles/tutorial2.dir/main.o] error 1
make[1]: *** [CMakeFiles/Makefile2:234:CMakeFiles/tutorial2.dir/all] error 2
make: *** [Makefile:156:all] error 2

I modified line 18 as follow as :
context.translatePrimitive( UUID, position_shift ); //apply the translation

It has succeed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.