Giter Site home page Giter Site logo

grasshopperasynccomponent's People

Contributors

alanrynne avatar didimitrie avatar rhughes42 avatar teocomi 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  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  avatar  avatar  avatar

grasshopperasynccomponent's Issues

Raise Error in case of Exception in grasshopper component

Hi!

Is it possible to automatically raise an error if something went wrong in DoWork() method?

Do I need to manually catch the error and raise them?
I have defined the exception in a different library and I was trying to avoid in replicating the error twice.

Best,
Marco

Output data gets nulled between solves

During processing, output data is set to null. We should keep the old one, and replace it only when the new is set, or on the component erroring out.

Sequence contains no elements exception

Here
was playing with Sample_UselessCyclesAsyncComponent. attach a number slider and slide back and forth a few times.

System.InvalidOperationException: 'Sequence contains no elements'

List<T> data format input

Dear Author,
Thanks very much for your kind AsyncComponent. I have tested all the files and found that it's run well with item data.
Now, i want to develop a async compoent for mesh geodesic curves calculation.
two List data will input the component, and I fond that the above asyncComponent is not suitable for List.
Do you know how to solve this issuse?

Add affordance for raising RunTime Messages/Errors in WorkerInstance

Thanks again for creating and documenting such a reliable approach to doing async work in Grasshopper!

I'm still mostly getting a handle on how to use this approach, but it seems like because classes derived from WorkerInstance effectively handle RegisterInputParams through GetData, it is no longer possible to add a AddRuntimeMessage or AddRuntimeWarning (because it is not inheriting from GH_Component). As a result, you loose the ability to do add warnings/messages in response to bad input data, or as part of what would normally be SolveInstance. (This is, unless I'm missing anything)

Ideally, there would be a method in WorkerInstance that allows for these kind of messages to be bubbled up to a GH_AsyncComponent although I'm not sure if this kind of message passing would work well. I'll likely have a go at this over the next couple of weeks as part of a plugin that begins to use more async components.

This possibly related to whatever implementation addresses #11

Not working good with simulations

Hi all. I do want to use the GrasshopperAsyncComponent, unfortunately it is not working great with simulations as seems that it is updating continuously and never finishes the actual simulation. I do have components who shouldn't update all the time. Notice the Red (Toolholder collision) panel that blinks all the time during the simulation, that didn't happened before to install the AsyncComponent. Unfortunately seems that the only way to really disable the AsyncComponent it it to uninstall-it completely.

I do attach some sample .gh file and movies that can explain better than me what it is going on:
Simulation_with_Async.zip

Best regards.

Resolve State and Data Matching Issues

Currently, if the component needs to run more than one (ie, in the case of an item parameter receiving a list), this approach fails, and gets stuck in a loop (but don't worry, it won't freeze Grasshopper!). The only workaround is to basically set data access to a tree for all inputs of your derived component.

I'm sure there's some GH wizardry that can help in this regard. The other solution would be to just acknowledge this as an given limitation ¯_(ツ)_/¯

Add mechanism to report errors after calling Done()

Currently, when Done() is called all previously reported RuntimeMessages in the component will be wiped out.

We should add a separate mechanism to report the errors there, and deal with showing them to the user in the next SolveInstance call.

When chained together downstream components calculate multiple times

Not sure if this is solvable within Grasshopper 1.0, but when chained together the downstream components end up calculating multiple times.

repeats gif

This is probably a blocker for what I would want to use this for. I imagine I will need to implement a UI blocking method instead. Does anyone know how I might do that? Just adding .Result to my asynchronous method seems to lead to a dead lock?

I looked at TaskCapable but that seems to be for parallel? I guess just running one Task is also acceptable?

(P.S. Thanks for open-sourcing this Dimitrie, great to see projects out in the open!)

Documentation: Sample Implementations

Would be really nice if the readme would have an actual example embedded into it. Given last changes, I expect architecture should stay stable overall, so if anyone wants to pick this up would be more than happy to help along!

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.