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
- A Windows based machine running in x64 bit. (Bootcamp / Parallel Desktop setups might work, too. Give it a try)
- 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
Please follow the instructions under one of these options:
Option 1: Only use FlexHopper
- Make sure your machine fulfills the hardware requirements (see above).
- 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")
- 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
- FlexHopper.gha
- 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)
- Unlock all .dll and .gha files (Right click each of them individually -> Properties -> Tick Unlock)
- Start up Rhino 6 in 64bit Mode and start using FlexHopper
- 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
- Go to the /bin folder in this repository and download all files apart from "FlexHopper.gha"
- Put all of these files into one directory of your choice
- Start using FlexCLI.dll in .NET
Option 3: Download, compile and edit this repo
- git clone https://github.com/HeinzBenjamin/FlexCLI
- Follow the instructions inside FlexCore110/include/README.md
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
Felbrich, Benjamin. (2019, July 30). HeinzBenjamin/FlexCLI: FlexCLI - FlexHopper (Version v1.1.2). Zenodo. http://doi.org/10.5281/zenodo.3355744
@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}
}