Giter Club home page Giter Club logo

dynashape's Introduction

DynaShape is a WIP open-source Dynamo plugin for constraint-based form finding, optimization, and physics simulation.

The source code is written entirely in Visual C#. All the dependent dll files can be found in the the Dynamo Core main folder (e.g. C:\Program Files\Dynamo\Dynamo Core\1.x), except mathnet.numerics.dll (which can be downloaded from NuGet, recommeded version 3.11 or above)

After you have successfully built DynaShape.dll from the source, you can assemble the Dynamo package folder according to the following structure:

DynaShape

-- pkg.json (provided with the Visual Studio solution)

-- bin

---- DynaShape.dll

---- DynaShape_DynamoCustomization.xml (provided with the Visual Studio solution)

---- MathNet.Numerics.dll

Once the package folder has been assembled, you can "install" the package to Dynamo by to "Dynamo Main Menu > Settings > Manage Node and Package Paths...", and add a path to the package folder.

For the mouse interaction to work, for now you will need to manually edit the AssemblyPath inside the DynaShape_ViewExtensionDefinition.xml (provided with the Visual Studio solution) so that it points correctly to the DynaShape.dll within the package folder, and then place this xml into [DynamoCoreMainFolder]\viewExtensions, and restart Dynamo Studio and/or Revit

Once the package has been installed. You can start to create goals in Dynamo and plug them to the Solver.Execute node. The solver needs to be reset once at the beginning of every scenerio, then set the "reset" to false and enable periodic update mode and see the solver iteratively move the nodes/vertices to their desired positions.

To manipulate the node/vertices directly in the background view, make sure that DynaShape_ViewExtensionDefinition.xml has been set up correctly as explained above, and set the mouseInteract input to the Solver.Execute node to True, and then you can switch to background view navigation and start manipulating the nodes. Enjoy!

==========================================================

Contact Info:

==========================================================

Acknowledgements:

I would like to acknowledge the following people:

  • Ian Kenough and the Dynamo development team for the great visual programming tool.
  • The EPFL Computer Graphics Lab for developing the essential mathematical and algorithm framework, which DynaShape is based on. http://lgg.epfl.ch/publications/2012/shapeup/index.php
  • Daniel Piker, for playing a major role in popularizing physics and constraint-based digital form finding within the design community, mostly via his famous plugin KangarooPhysics for Grasshopper. The highly positive reponse that KangarooPhysics receives from the community has inspired me to start DynaShape in hope to make similar computational design tools available to the Dynamo and BIM community. http://www.grasshopper3d.com/group/kangaroo.
  • Autodesk (particularly Phil Mueller and Matt Jezyk) for co-organizing and co-sponsoring AEC Hackathon Munich 2017, where DynaShape was born.

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.