Menu

Home

Ole Kniemeyer Gaetan Heidsieck

Related

Wiki: Creating an own node class
Wiki: Creating an own plugin
Wiki: Installing GroIMP
Wiki: International Summer School "Modelling of Ecosystems by Tools from Computer Science", 16-20 September 2013
Wiki: Making a GroIMP release
Wiki: Setup GPUFlux for Eclipse
Wiki: Translating GroIMP into other languages

Discussion

1 2 > >> (Page 1 of 2)
  • junqi zhu

    junqi zhu - 2021-09-30

    The link for the "for modeller" session is broken. I think the information for this session is very useful. it would be very nice if some one can fix the links. best regards. junqi

     
  • junqi zhu

    junqi zhu - 2021-09-30

    Can interface be used in GroIMP?

     
  • micha

    micha - 2021-10-02

    hi junqi,

    each interface and class belongs to a single file of the same name as the interface or class. and the file extension should be ".xl" instead of ".rgg". have a look at the "FSPM model" within the groimp own example gallery to see how to deal with interface, classes and pure -xl files.

    cheers, micha

     
    • junqi zhu

      junqi zhu - 2021-10-03

      Hi Micha, thanks very much for the detail explanation. I will have a try of
      the xl file.
      Cheers junqi

      On Sun, 3 Oct 2021 at 06:03, micha mh1@users.sourceforge.net wrote:

      hi junqi,

      each interface and class belongs to a single file of the same name as the
      interface or class. and the file extension should be ".xl" instead of
      ".rgg". have a look at the "FSPM model" within the groimp own example
      gallery to see how to deal with interface, classes and pure -xl files.

      cheers, micha

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/groimp/wiki/Home/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

      --
      Yours Junqi

       
  • Lili Meszaros

    Lili Meszaros - 2021-12-16

    Hi,

    I would like to run my project from the cmd as I would like to run multiple simulations with different parameters. I understand that it is done somehow with de.grogra.xl.compiler.Main and javac, but I'm not sure how I should change the code, and what file I should add in the cmd. Could you give more details please? Thanks!

    Cheers,
    Lili

     
  • marco moriondo

    marco moriondo - 2022-01-05

    Hi,
    I wonder if someone already developed a model for simulating the daily course of the sun based on latitude and day of the year. This should be included in a simulation model of olive tree. By the way, if someone wants join to this challenge, is welcome!
    Cheers
    Marco

     
    • junqi zhu

      junqi zhu - 2022-01-06

      Hi Marco,
      I have a model for simulating the daily course of the sun based on the
      exercise book of Jan Goudriaan.
      It was included in the grapevine model and the whole source code is
      available at the GroIMP gallery.
      See
      http://134.76.18.36/wordpress/unpublished/gallery/grapevinexl-model/

      Cheers
      Junqi

      On Wed, 5 Jan 2022 at 22:18, marco moriondo morio1968@users.sourceforge.net
      wrote:

      Hi,
      I wonder if someone already developed a model for simulating the daily
      course of the sun based on latitude and day of the year. This should be
      included in a simulation model of olive tree. By the way, if someone wants
      join to this challenge, is welcome!
      Cheers

      Marco

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/groimp/wiki/Home/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

      --
      Yours Junqi

       
      • marco moriondo

        marco moriondo - 2022-03-03

        Hi Junqi,
        great paper and great code. Thanks
        I still have two questions about the diffuse radiation module.
        I see from figure S3 in SI of your paper and the corresponding code in environment.rgg that you share the diffuse radiation between 72 light nodes arranged in a hemisphere.
        From diffuse light module I see that the light is shared according to coefficients that depend on the position of each node. E.g. 12 light nodes of the bottom layer emit diffuse radiation weighed by (0.003218/0.205) while at the top of the hemisphere the weight is (0.007096/0.998).
        Could you please explain what is the meaning of these coefficients?
        By the way, still from figure S3 I see that you set the surface of each light node equal to the filed size but actually I was not able to do that.
        Could you help me?
        Thanks in advance for any possible help.
        Cheers
        Marco

         
        • junqi zhu

          junqi zhu - 2022-03-03

          Hi Junqi,
          Great to see your interest in this and checking the code carefully.

          From diffuse light module I see that the light is shared according to
          coefficients that depend on the position of each node. E.g. 12 light nodes
          of the bottom layer emit diffuse radiation weighed by (0.003218/0.205)
          while at the top of the hemisphere the weight is (0.007096/0.998).Could you
          please explain what is the meaning of these coefficients?

          The first coefficient (e.g., 0.003218 ) represent the weight of the amount
          of diffuse radiation comes from this direction. This weight is
          calculated under overcasting conditions based on the model of Chelle and
          Andrieu 1998. "The nested radiosity model for the distribution of light
          within plant canopies".
          The second coefficient is for correcting the power reduction for the
          incoming angle. GroIMP radiation model automatically corrects the power
          received by each surface according to the angle of the incoming radiation.
          so if your input power density is at the horizontal plane, then the
          incoming radiation power density is actually larger than the one measured
          at the horizontal plane, and an angle correction is needed. Alternatively,
          if you know the power density from each direction, then the second
          coefficient is not needed.

          By the way, still from figure S3 I see that you set the surface of each
          light node equal to the filed size but actually I was not able to do that.

          Could you help me?

          There is no need to set the surface size of the light node. As far as i
          understand, the size of the light node adjust itself based on the size of
          the scence.

          Cheers
          Junqi

          On Fri, 4 Mar 2022 at 01:04, marco moriondo morio1968@users.sourceforge.net
          wrote:

          Hi Junqi,
          great paper and great code. Thanks
          I still have two questions about the diffuse radiation module.
          I see from figure S3 in SI of your paper and the corresponding code in
          environment.rgg that you share the diffuse radiation between 72 light nodes
          arranged in a hemisphere.
          From diffuse light module I see that the light is shared according to
          coefficients that depend on the position of each node. E.g. 12 light nodes
          of the bottom layer emit diffuse radiation weighed by (0.003218/0.205)
          while at the top of the hemisphere the weight is (0.007096/0.998).
          Could you please explain what is the meaning of these coefficients?
          By the way, still from figure S3 I see that you set the surface of each
          light node equal to the filed size but actually I was not able to do that.
          Could you help me?
          Thanks in advance for any possible help.
          Cheers
          Marco


          Sent from sourceforge.net because you indicated interest in
          https://sourceforge.net/p/groimp/wiki/Home/

          To unsubscribe from further messages, please visit
          https://sourceforge.net/auth/subscriptions/

           
          • micha

            micha - 2022-03-08

            hi,

            to follow up on this:

            "There is no need to set the surface size of the light node. As far as i
            understand, the size of the light node adjust itself based on the size of
            the scene."

            that's only the case for DirectionalLight lights, they adapt to the size of the 3D scene automatically. That's why you use/set a power density instead of a power value here. all other light types (point, spot, area light) do not adapt to the size of the scene.

            cheers,
            michael

             
  • Shameen Randika Dharmasena

    Hi,
    Can anybody here, please explain me how to use GroIMP to simulate future Landscape? Anyway to get an idea?

    Thanks,
    Shameen

     
  • marco moriondo

    marco moriondo - 2023-09-18

    Hi,
    I would like to add a rainfall flux to my scene. I have modified the model provided by Junqui
    http://134.76.18.36/wordpress/unpublished/gallery/grapevinexl-model/
    for daily course solar radiation by including a photovolatic system over the scene. The model includes the simulation of daily direct and diffuse solar radiation.
    Aiming at simulating rainfall rate inteception by the objects in the scene, photovoltaic panels and ground, the first idea was to set a light node over the scene that is feeded, hour by hour, with observed rainfall rate and then calculate the relevant interception for the sigle objects. Unfortunaltely, I'm not able to disentangle the contribution of of this single light node from the other souces (direct +diffuse), but of course, the model integrates the contribution of all sources.
    all possible ideas are welcome!
    cheers
    Marco

     
  • J P

    J P - 2024-05-23

    Hi,
    I import an object into the scene through the GUI interface. If I would like to manipulate some properties of this object, such as obtaining the surface area of the object, setting the parameters of BSDF, etc., what should I do? Can someone help me?
    Thanks,
    JP

     
    • Gaetan Heidsieck

      Hi,
      Advanced object manipulations can be done through XL queries. Usually done in an RGG environment.
      E.g. this query print the surface area of all Spheres in your graph: [x:Sphere::>println( x.getSurfaceArea());] .
      You can find more documentation on how to use them in the documentation: http://wiki.grogra.de

       
      • J P

        J P - 2024-05-24

        Hi,Gaetan
        Thank you for your response! I am a bit confused about importing a complex 3D structure from a GUI interface, such as an obj file with a triangular grid. It seems that this structure is not recognized as basic geometry in GroIMP, like Sphere. If I need to perform advanced operations on this 3D structure, such as setting BSDF and so on, how can I achieve this using XL queries or other methods? Even though I named the 3D structure through the GUI, I couldn't locate the object. Can you assist me if you have any insights?
        Thanks,
        JP

         
        • Gaetan Heidsieck

          Hi,
          The objects imported from an OBJ file are added as one MeshNode in groimp. To map the objects in a file to groimp primitive objects you can either use a file format that support this mapping (e.g. x3d or gltf), or do the mapping manually (which i do not recommend).
          If you need to see each triangle of your mesh as a separate groimp node you can also use the ply importer from the PointCloud-Importer plugin (https://gitlab.com/grogra/groimp-plugins/Pointcloud-Importer).
          I don't know mush about the BSDF, and light modeling in general. But aren't these handled though shaders? If so, you can change the shader of your object either with the GUI you click on your object and use the Attribute Editor panel, or with rgg yourNode.setShader(new RGBAShader());. If you need to perform some advanced operations on the nodes (or even simple ones) I would advise to use the rgg code.
          You can access a specific node in a XL query with :
          * get by name

          [n:Node,(n.getName()!=null), (n.getName().equals("myobject"))::>println(n);]
          
          • get the selected one
          [n:MeshNode, (isSelected(n))::>println(n);]
          
           
          • J P

            J P - 2024-05-25

            Hi,Gaetan
            Thank you very much for your answer! I can use the RGG code to locate the imported 3D structure and do something with it! This is amazing! Thank you for giving me a further understanding of GroIMP!
            Thanks,
            JP

             
          • J P

            J P - 2024-05-25

            Hi,Gaetan
            Thank you very much for your answer! I can use the RGG code to locate the imported 3D structure and do something with it! This is amazing! Thank you for giving me a further understanding of GroIMP!
            Thanks,
            JP

             
  • J P

    J P - 2024-06-09

    Hi,Gaetan

    Do you know how I can add the Pointcloud-Importer plugin to GroIMP, I didn't find it in the plugin manager, I followed the link you provided and downloaded the plugin's zip, but I still don't know how to load it, even though I've looked at the wiki documentation for GroIMP.

    Thanks,
    JP

     
    • Gaetan Heidsieck

      Hello,
      Could you give me more detail on what is working (and not) with the plugin manager? The Pointcould importer plugin should be accessible from there. Do you see any other plugins?

      Otherwise, if you download the plugin from gitlab. You need to see if it is already compiled or not. If you have java classes, it needs to be compiled. If you have a .jar you can use it. (download the jar there https://gitlab.com/grogra/groimp-plugins/Pointcloud-Importer/-/packages/24921990 at the bottom of the page.) or compile it with maven.

      Once you have a compiled version of the plugin. You can add it manually to your groimp installation by:
      1. creating a folder with the same name (Pointcloud-Importer in this case).
      2. extracting from the .jar the plugin.xml and plugin.properties files
      3. putting the 3 files plugin.xml, plugin.properties, and the .jar in the folder.
      4. move the folder to "c://path/to/groimp"/plugins/ where "path/to/groimp" is the path on your computer.

       
      • J P

        J P - 2024-06-11

        Hello,Gaetan
        Thank you very much for your answer! I can use this plugin successfully now!

        Regarding the question that I didn't find the plugin Pointcould importer in the plugin manager, I was previously trying to find this plugin in the plugin manager in jEdit, where I didn't find it, and after I saw your reply, I first tried to add this plugin manually, but I wasn't successful. The reason was that after launching GroIMP the software threw a window and prompted me that the library jply.jar was not exist, after that I realized that the plugin manager in jEdit in the RGG project was not the same as the plugin manager in the original panel of GroIMP, and finally I found this plugin in the plugin manager in the original panel of GroIMP!

        Thanks,
        JP

         
  • J P

    J P - 2024-07-26

    Hello,Gaetan
    I'm having trouble learning groimp again and would like to ask for your help again.

    I want to insert a. X3D files are duplicated multiple times in the scene and given them different names so that I can later make changes to each . X3D file is modified individually.

    I added the .X3D file via the Object button (there are 3 ways to insert the file: Add \ Link \ Embed), and then I was able to use it in RGG code by using a const Reference PSL = reference ("PSL"); statement, but then I couldn't use the n:MeshNode, (n.getName() == "X3DIndexedFaceSet")::> {};way to find it.

    However, if I insert a file directly through the Objects button (there are 2 ways to insert a file: insert file \ insert file to RGG), I can query it through the above query statement, but this way I add a new . The X3D files appear in the same place in the scene by default, they coincide, and I need to manually add the files every time, which is very detrimental to the subsequent operation.

    This confuses me and I would like to ask if you have any good ways to do it.

     
    • Gaetan Heidsieck

      Hi,

      For the "Reference": When you import an object in the "object explorer" (the object panel), you can create references to that object with "new Reference("name.file");". You can always use the "Add" option, it copy the file within your project.
      Then, by default the reference is only resolving an "instance" of the object (not the x3d nodes themselves). You can however get the nodes behind the reference by using:

      {Reference r = new Reference("name.file");}
      [A ==> r.resolveNode()]
      

      Be careful however, if you modify these resolved nodes, the changes will be pushed to the file in memory. (i.e. if you use r.resolveNode() again, it will includes the changes).

      If you want to apply modifications on your objects through some RGG code, I would advise you to use the SubGraph objects. They work similarly as References but they are more suited for using one file object several time in the scene. You can use them by installing the plugin "graph-explorer" (at least v0.3). Then, open the 'subgraph explorer panel" in panels>explorer>subgraphs. Add your object in that panel. Then, you can add the nodes in the graph with

      import de.grogra.graph.explorer.SubGraphRef;
      ...
      {SubGraphRef r = new SubGraphRef("flower.x3d");}
      [SomeNode ==> r.cloneGraph();]
      

      I have attached a small project to demonstrate how to use them, and query the inserted objects in the graph based on their name.

      If you only plan on modifying the objects through the GUI, it might be easier to simply add them with the "Object>insert" menu.
      From that menu there are two possibilities:
      1) "Insert File" will add the object to the root of the graph. Objects inserted at the root of the project are not deleted when the project is recompiled, or reseted.
      2) "Insert File to RGG" will add the object under the RGGRoot node. The RGGRoot node is deleted and rebuild with the init() method when the project is recompiled or reseted. Thus, all objects added under it will disappear.

      Note that either way, you can delete all nodes (even the one not under RGGRoot) by clicking on "Edit>Clear project graph".

      You can see the shape of the graph by opening "Panels>2D>graph".

      I hope it helps

       
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.