vcg-uvic / viper Goto Github PK
View Code? Open in Web Editor NEWOpen-source code for VIPER -- Volume Invariant Position-based Elastic Rods
License: Apache License 2.0
Open-source code for VIPER -- Volume Invariant Position-based Elastic Rods
License: Apache License 2.0
Converting project to be used with Win10/MSVS2019/CUDA11.3 system leads to crash compiling this source
Boost 1.76.0
latest GLEW/GLFW
Eigen 3.4.0
CGAL 5.3
Error MSB3722
cmdline
F:\SDK\NVIDIA\Develop\bin\nvcc.exe -gencode=arch=compute_52,code="sm_52,compute_52" --use-local-env -ccbin "F:\App\MSVC2019\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64" -x cu -IF:\SDK\Eigen\3.4.0 -IF:\SDK\CGAL\5.3\include -IF:\SDK\CGAL\5.3\include -If:\SDK\boost\1.76.0 -IF:\SDK\NVIDIA\Develop\include --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static --extended-lambda --expt-relaxed-constexpr -DWIN32 -DWIN64 -DNDEBUG -D_CONSOLE -D_WINDLL -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Fdx64\Release\vc142.pdb /FS /MD " -o x64\Release\Scene.cu.obj F:\Projects\Viper\Viper\Scene.cu
'cicc' died with status 0xC0000005 (ACCESS_VIOLATION)
making this source C++ compiled - pass succesfully
Could we have the option to build on windows visual studio?
I'm getting errors with Eigen related to the =
operator:
D:/externalLibs/viper/Viper/CudaSolver.cu(137): error : function "Eigen::Quaternion<_Scalar, _Options>::operator=(const Eigen::Quaternion<float, 0> &) [with _Scalar=float, _Options=0]" (declared implicitly) cannot be referenced -- it is a deleted function
While watching the video https://youtu.be/2CGRfJJEu38?t=95 that accompanies the paper, I was mainly intrigued by the "viperization process" because this is something we are also doing. It seems to me that this part of the approach is completely missing from the code. Since the code is not sufficiently documented and I am unable to build it because of its incompatibility with Microsoft Windows, I am not 100% sure about it.
Could you please navigate me to the place where I can find the viperization? Thank you.
Im very new to C++ and was asking how can I figure out the exact versions of dependencies used for this project. Like a package.json equivalent for this project. Want to try and set this up on docker. Any pointers?
Wonderful project! I work in a soft robotics research lab, and this is astounding work. We've spent some serious time trying to get our own custom meshes to work with it, but have had a hard time with it. Is there a way you can upload an .OBJ file or something to simulate?
hello,
are you planning to make an OpenCL version of your code?
it would be great to ensure crossplatform and a broader usage of your (terrific) library
if you're searching devs, lemme know!
all the best
I built a system like this in 6 months when I was 20, I taught myself C++ at the same time, with a background in architecture/engineering CAD. I had some interesting talks with people who were surprised at my results. I can upload pictures if anyone is interested. I always wanted to return to it later in life.
I built models (spring networks) for every class of muscle/ligament/cartilage structure in the human body; some of these aren't rope-like. I'm writing to ask how your system deals with configurations that are a little more complicated? Or can it at this stage?
I ran cppcheck on the Viper codebase which resulted in the some code improvements.
Download the results here: viper_cppcheck.zip
Do i need to have cuda or any other gpu to run this or can i do it only with a cpu?
I'm working on a project that could benefit from Viper. We'd like to use Viper in our research project but I'm having trouble understanding your code since there are so many single-name variables with no documentation. Is there a naming convention that can help me understand the codebase better?
There seems to be some consistency with the two-letters variable names though, but I'm still not sure how to interpret those or what they represent.
Lacks pill_project function definition
Hi, it is a great project. I have some confusement over some paramter, such as "skinning,dist"..... and so on. I am not sure how to set the value of these. And I refer to "C_distancemax" function. I am not sure get "max_distance". And the "C_bilap" function is used for? And I am not sure what is the meaning of "A" and "ids" in this function.
Could you give me some hints over this. Looking forward to your reply.
Thank you!
Thanks for your great work, I found that the project use some old version of dependencies, that I can't compile succed on my machine:
OS : Ubuntu 20.04
g++ : 10.3.0
Driver Version: 510.108.03
CUDA Version: 11.6
GPU: RTX 3060 ti
after I check the error information of compile, I add these options and compile succed.
set(CUDA_NVCC_FLAGS "-std=c++14 -extended-lambda")
set(CMAKE_BUILD_TYPE "Release")
add_compile_options(-std=c++14)
...
include_directories(
...
/usr/include/eigen3
}
find_package(CGAL REQUIRED COMPONENTS Core)
target_link_libraries(ViperLib_static ${COMMON_LIBS} CGAL::CGAL CGAL::CGAL_Core Boost::thread gmp mpfr)
...
I also add header files.
// Viper/CudaUtils.cuh
#include <thrust/host_vector.h>
But when I run the ./demo
at build folder, the simulated result looks like strange(as picture shows), It seems the octoswarm
doesn't has the length constraint at two nodes, how could I solve this queation? I also tryd the nvidia-docker to compile the code , but my GPU is RTX 3060 ti, it only support CUDA 11.X, would you please provide a new version of code that runs well on RTX GPU cards or other advices to fixed this problem? thank you!
// CRT
#include
using namespace std;
// EIGEN
#include <Eigen/Dense>
using Vec2 = Eigen::Vector2f;
using Vec3 = Eigen::Vector3f;
// VIPER
#include <Scene.h> // Se issue #15
int main()
{
viper::Scene scene;
scene.setUpDirection(Vec3(0, 1, 0));
viper::IntArray pIds, rIds;
int numpt = 3;
scene.addRod(3, Vec3(0, 0.75, 0), Vec3(1, 0, 0), 0.2, true, pIds, rIds);
scene.state.xa[pIds[0]] = false;
scene.state.xai[pIds[0]] = false;
double T = 0;
double dt = 0.1;
cout << "T: " << T << " [ ";
for (auto e : scene.state.x)
cout << "(" << e[0] << "," << e[1] << "," << e[2] << "),";
cout << "]" << endl;
for (int t = 0; t <5; t++)
{
scene.step(dt, 20, true);
T += dt;
cout << "T: " << T << " [ ";
for (auto e : scene.state.x) cout << "(" << e[0] << "," << e[1] << "," << e[2] << "),";
cout << "]" << endl;
};
return 0;
}
Plays fine. but stretching constraints did not work.
T: 0 [ (0,0.75,0),(1,0.75,0),(2,0.75,0),]
T: 0.1 [ (0,0.75,0),(1,0.65001,0),(2,0.65001,0),]
T: 0.2 [ (0,0.75,0),(1,0.45004,0),(2,0.45004,0),]
T: 0.3 [ (0,0.75,0),(1,0.1501,0),(2,0.1501,0),]
T: 0.4 [ (0,0.75,0),(1,-0.2498,0),(2,-0.2498,0),]
T: 0.5 [ (0,0.75,0),(1,-0.74965,0),(2,-0.74965,0),]
X-coordinate does not change, it look like stretching has no limiting.
https://youtu.be/hFIp9VgfRFg
Video, if someone interest about VIPER primitives behavior, without volume option.
Second half of video test for stability (do on notebook, with CUDA 700 kernels, so not very fast).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.