GRASSHOPPER: SPEEDING-UP
Live speed-up tips: https://goo.gl/SC16n1
SYSTEMIC APPROACH
- Use Rhinoceros 6: benefit from latest updates and parallel components
- Know which hardware upgrades are meaningful
- Turn on the profiler widget, identify slow components
- Turn on autosave (if it makes sense)
- Use solver lock (carefully)
- Reduce file readings
- Internalize data
- Break into smaller definitions
RENDERING AND DISPLAY
- Disable preview
- Too much data in panels slows down the canvas
AVOIDING ERRORS
- Computational complexity: always use proper data structures (before, inbetween, and after processing, cause of GIGO law : Garbage In, Garbage Out [Nader Belal])
- When replacing a component in the middle of a definition, never plug it without checking the output
- Rebuild carefully: Curve / Surface rebuild, Voxelization, Marching cubes
USING SIMPLE DATA
- More complex the geometry, slower operations: BRep -> Surface -> Curve -> Mesh -> Line -> Vector -> Point
- https://www.shapediver.com/blog/shapediver-basics-meshes-vs-b-reps-explained[Edwin Santiago Hernandez Gomez]
- Use numbers if you can
- Old IT rule but relevant: Whenever you can try to avoid mathematical division operations, and substitute them as multiplications. For example: use *0.5 instead of /2. [Nader Belal]
- Extensive floating points, steals a lot of your machines raw power to create useless junk. Solution: rounding the values before processing [Nader Belal]
- Use placeholders (points, numbers) for complex data (Groups, BReps)
USING CODE COMPONENTS
- For mathematical operations with long losts, use code (properly) [Patrik Kučavík]
- If working with numbers or simple elements and operating with many conditions, try using code (GH components have too much code to process by the PC (just see its xml), luckily scripting can combine some of these steps into one (even for IT languages beginners). [Nader Belal])
- When writing code in any IT language, add meaningful comments … why ? [Nader Belal] Use verbose variable and function names (in Grasshopper don’t rename the components and their pins, rather wrap them into groups)
- Using code makes little sense when calling Grasshopper or Rhino API
FILTERING RELEVANT DATA
- If choosing between two possible operations, bifurcate the input data before processing
- Filter only relevant data for slow operations (like intersections).
- Use the shortest meaningful data sets
UTILIZING PATHS
- Tree paths as metadata
- Sorting data into paths
ANEMONE RULES
- Never link components from inside one loop into components in another loop (or triggered operations
- Only loop what needs to be looped
- Encapsulate the looped data and operations
- Stop the loop when a condition is met
- Use fast loop (carefully)
1
SPEEDING UP GRASSHOPPER
Be the first to add a review.
Please, login to leave a review