Getting Started with NVIDIA FleX
*Note: This is a legacy SDK. Developers may download and continue to use, but it is no longer supported.*
FleX is a particle based simulation technique for real-time visual effects.Traditionally, visual effects are made using a combination of elements created using specialized solvers for rigid bodies, fluids, clothing, etc. Because FleX uses a unified particle representation for all object types, it enables new effects where different simulated substances can interact with each other seamlessly.
Download NVIDIA FleX
System Requirements
|
|
---|---|
Operating Systems |
Linux 64 bit (CUDA, tested with Ubuntu 16.04 LTS and Mint 17.2 Rafaela) |
Supported GPUs |
NVIDIA GeForce Game Ready Driver 396.45 or above AMD Radeon Software Version 16.9.1 or above Intel® Graphics Version 15.33.43.4425 or above |
Supported Drivers |
Microsoft Visual Studio 2015 g++ 4.6.3 or higher |
Latest Version for FleX 1.2
Flex is a particle-based simulation library designed for real-time applications. Please see the programmer's manual included in this release package for more information on the solver API and usage.
Key Features
Release Notes
NVIDIA FleX v1.2
- Improved collision against moving shapes, solver now correctly interpolates shape transforms for substeps
- Improved Linux support, removed GLUT/GLEW dependencies
- New API for adding soft-joints (dynamic shape-matching constraints) via. the extensions API, see NvFlexExtCreateSoftJoint()
- New API to retrieve particle neighbor information, see NvFlexGetNeighbors()
- New API to support shape collision filtering, collision channels can be assigned to particles and shapes to specify which pairs collide, see NvFlexPhase
- New API to support per-shape plastic deformation, it is now possible to specify plastic creep and threshold coefficient on a per-shape basis (previous global settings), see NvFlexSetRigids()
- New API to selectively disable solver features, this can lead to improved performance, see NvFlexFeatureMode, replaces global FlexParams::fluid option
- New API to allow sub-range particle buffer updates, see NvFlexCopyDesc
- New API for asynchronous compute, see NvFlexInitDesc
- New API change, NvFlexUpdateTriangleMesh() now takes vertices with 16-byte stride to remove CPU synchronization step in D3D implementations
- Fix for NvFlexParams::anisotropyScale, this change improves the fitting of ellipsoids to fluid particle distributions, it should now typically be left at 1.0
- Fix for NvFlexGetTimers() reporting incorrect values on D3D12
- Fix for vsync in D3D12
- Fix for crash when using Flex with NVIDIA driver 384.76
- Fix for unnecessary synchronization when calling NvFlexMap() on a device buffer
- Fix numerical precision for shape-matching constraints with large coordinates
- Fix for uninitialized contact indices returned from NvFlexGetContacts() if NvFlexUpdateSolver() has not been called
- Fix for SDF collision in D3D12
- Fix for free after delete in CUDA when using SDFs
- Fix for D3D warning when using NvFlexSetRigids()
- Add D3D12 rendering support to the demo
- Add support for device NvFlexBuffers on D3D
- Enable NvToolkit profiling zones so to provide annotations in NSight profiles by default, this requires nvToolsExt64_1.dll be present
Testimonial
TouchDesigner's integration of NVIDIA Flex has let our customers run particle simulations on their NVIDIA GPUs with more than a tenfold increase in the number of particles possible before. Flex enables complex simulations that were once the realm of offline applications to run in TouchDesigner in real-time.
— Ben Voigt, Product Manager, Derivative