Skip to content

FlexCLI is a C++/CLI interface to access NVidia Flex from .Net environments like C#, IronPython, VB etc. FlexHopper is a plugin for Grasshopper built on top of FlexCLI

License

Notifications You must be signed in to change notification settings

HeinzBenjamin/FlexCLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlexCLI / FlexHopper DOI

FlexCLI is a C++/CLI interface to access the physics engine NVidia Flex from the .Net environment. Furthermore the repository contains an implementation of FlexCLI in the form of a plugin for Grasshopper in Rhino3D. This plugin - called FlexHopper - provides the possiblity to use NVidia Flex physics simulation - via the FlexCLI pipeline - in the CAD software Rhino.

FlexCLI is built against NVidia Flex release 1.1.0. NVidia Flex is patented property of NVidia. The author of this repository did not create or change NVidia proprietary code, nor is he the author of NVidia Flex. The author of this repository is the author of FlexCLI and FlexHopper only, both of which can found in the respective folders. The GPL-3.0 license mentioned in this repo applies only to FlexCLI and FlexHopper and not to Nvidia proprietary code (anything inside the folder FlexCore110). There's a respective license to be found in that folder.
For more information on NVidia Flex go here: https://developer.nvidia.com/flex and https://developer.nvidia.com/nvidia-flex-110-released

FlexCLI runs on x64 architectures only. It was built against .Net 4.5.2

Flex.sln contains FlexCLI and FlexHopper. Upon building the solution all compiled files will be stored inside "bin". Make sure to set your compiler platform to x64.

FlexHopper was tested with Rhino 6 64bit and Grasshopper 1.0.0076

FlexHopper Tutorials:
https://vimeo.com/253491269
https://www.youtube.com/watch?v=DZk0_vd-H60&list=PLw7gQzl_I29Z8oHCrPGXgNdwnULjqzUcz

Contact info:
benjamin@felbrich.com
flexhopper@felbrich.com
https://www.linkedin.com/in/benjamin-felbrich/
https://twitter.com/BFelbrich

HARDWARE REQUIREMENTS NVIDIA FLEX

  1. A Windows based machine running in x64 bit. (Bootcamp / Parallel Desktop setups might work, too. Give it a try)
  2. A dedicated NVidia and AMD graphics card supporting DirectX11 and running one of the following drivers:
    Nvidia Geforce Game Ready Driver 372.90 or above
    AMD Radeon Driver version 16.9.1 or above
    Onboard graphic chips like Intel HD Graphics 4000 are not supported and might crash your system

INSTRUCTIONS

Please follow the instructions under one of these options:

Option 1: Only use FlexHopper

  1. Make sure your machine fulfills the hardware requirements (see above).
  2. Make sure you have the latest version of Rhino 6 64bit along with the latest version of Grasshopper installed (in Rhino click "Help" > "Check for Updates")
  3. Download the package:
  • Go to www.food4rhino.com/app/flexhopper
  • Download latest version
  • Unzip the package, it should contain:
    • FlexHopper.gha
    • FlexCLI.dll
    • NvFlexExtReleaseD3D_x64.dll
    • NvFlexReleaseD3D_x64.dll
    • amd_ags_x64.dll
  • unpack all files into your Grasshopper Components Folder (usually in 'C:\Users\YOUR-USER-NAME\AppData\Roaming\Grasshopper\Libraries')
    ... if you can't find that folder, open Grasshopper, click "File > Special Folders > Components Folder"
    (Alternatively to food4rhino you can download the necessary files from the "/bin/Release" folder on this very website)
  1. Unlock all .dll and .gha files (Right click each of them individually -> Properties -> Tick Unlock)
  2. Start up Rhino 6 in 64bit Mode and start using FlexHopper
  3. Check out the example files in Example files/Flexhopper. But don't rely too much on them, they may be outdated (sorry)

Option 2: Use FlexCLI to write your own implementation of NVidia Flex in .Net

  1. Go to the /bin folder in this repository and download all files apart from "FlexHopper.gha"
  2. Put all of these files into one directory of your choice
  3. Start using FlexCLI.dll in .NET

Option 3: Download, compile and edit this repo

  1. git clone https://github.com/HeinzBenjamin/FlexCLI
  2. Follow the instructions inside FlexCore110/include/README.md

COMMON ERRORS

FlexHopper only works with Rhino 6 64bit.
If you receive an error message saying that FlexCLI or one of its dependecies could not be loaded, make sure to:
A. Unlock all FlexHopper related files in the Library folder (Right click -> properties)
B. Update your Rhino 6 to the latest version.
C. Start up Rhino 6 in 64bit mode
If your machine crashes upon resetting the FlexHopper engine:
A. Make sure your computer fulfills the hardware requirements (see above)
B. Consider reducing the memory your FlexHopper requires by adjusting the memQ input in the Flex Solver Options accordingly

CITATION

Stable Release DOI: DOI

Cite as

Felbrich, Benjamin. (2019, July 30). HeinzBenjamin/FlexCLI: FlexCLI - FlexHopper (Version v1.1.2). Zenodo. http://doi.org/10.5281/zenodo.3355744

BibTex

@misc{heinzbenjamin_2019_3355744,
author = {Felbrich, Benjamin},
title = {HeinzBenjamin/FlexCLI: FlexCLI - FlexHopper},
month = jul,
year = 2019,
doi = {10.5281/zenodo.3355744},
url = {https://doi.org/10.5281/zenodo.3355744}
}

About

FlexCLI is a C++/CLI interface to access NVidia Flex from .Net environments like C#, IronPython, VB etc. FlexHopper is a plugin for Grasshopper built on top of FlexCLI

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published