https://github.com/sueda/eol-cloth
Tip revision: 2323d9f6471bbf5dc63979216a3ed3c97ff3538a authored by Weidner on 13 July 2018, 15:37:58 UTC
Solver solving using old deform grad method. Still some bugs, but going to clean up force filling
Solver solving using old deform grad method. Still some bugs, but going to clean up force filling
Tip revision: 2323d9f
simulationSettings.json
// EOL Cloth simulation settings
// Not including a setting will fall back to its default
{
// Use either "mosek" or "gurobi". Make sure you've compiiled with the specified solver enabled
// This can be left undefined in which case Eigen solvers will be used, but simulations must be collision free
"solver": "mosek",
"timestep": 0.5e-2, // Defaults to 0.5e-2
"gravity": [0.0, 0.0, -9.8], // Defaults to -9.8 in the Z direction
"REMESH": true, // Defaults to false. The remeshing settings should be set if this is on.
"EOL": true, // Defaults to false. This on forces Remeshing on
// The default cloth is 1m x 1m, centerd at (0.5,0.5,0.0), with a 2 points x 2 points resolution
"Cloth": {
// Only 3 corners of format [x ,y, z, X, Y]
"init": {
"initial_cloth_res": [3, 3],
"corner1": [0.0, 0.0, 0.0, 0.0, 0.0],
"corner2": [1.0, 0.0, 0.0, 1.0, 0.0],
"corner3": [0.0, 1.0, 0.0, 0.0, 1.0],
"corner4": [1.0, 1.0, 0.0, 1.0, 1.0]
},
"Material": {
"density": 0.05, // Kg
"youngs": 50.0,
"poissons": 0.01,
"stiffness": 1.0e-5,
"damping": [0.0, 1.0]
},
// The inclusion of Remeshing in the settings file means to sim with it
"Remeshing": {
"refine_angle": 0.3,
"refine_compression": 0.005,
"refine_velocity": 0.5,
"size": [320e-3, 350e-3], // These are the main bounds that changes the overall resolution
"aspect_min": 0.2
},
// The corner points can be fixed or given a scripted motion
// 1 for the first three values turns on fix/script along the x,y,z axis
// The number of the second three values is the set velocity of that point along that axis, i.e. 0 is fixed
// "When" is the time in simulation seconds the fixed parameters should change
"Fixed": {
"0": {
"when": 0,
//"corner1": [1, 1, 1, 0, 0, 0],
//"corner2": [1, 1, 1, 0, 0, 0],
"corner3": [1, 1, 1, 0, 0, 0],
"corner4": [1, 1, 1, 0, 0, 0]
},
"1": {
"when": 0.25,
//"corner1": [1, 1, 1, 0, 0, 0],
//"corner2": [1, 1, 1, 0, 0, 0],
"corner3": [1, 1, 1, 0.1, 0, 0],
"corner4": [1, 1, 1, 0.1, 0, 0]
}
}
},
// Obstacles can include points, boxes, or both
// Either can be loaded from an external file, defined here, or both
"Obstacles": {
// Collision threshold
"threshold": 5e-3,
// Point definitions comma seperated
// Each instance of a point follows the structure [x y z xn yn zn]
// The x,y,z values are the location of the point
// The xn,yn,zn values are the points normal direction
"points": [
[0.751, 0.751, -0.005,
0.0, 0.0, 1.0],
[0.71, 0.22, -0.005,
0.0, 0.0, 1.0],
[0.27, 0.51, -0.005,
0.0, 0.0, 1.0]
],
// Box definitions comma seperated
// Each instance of a box follows the structure [x y z xs xy xz xv yv zv xw yw zw]
// The x,y,z values are the center of the point
// The xs,ys,zs values are the scale along each local axis
// The xv,yv,zv values are the velocity along that local axis
// The xw,yw,zw values are the angular velocity around that local axis
The
"boxes": [
]
}
}