https://github.com/nepluno/libWetHair

sort by:
Revision Author Date Message Commit Date
822544a Momentum explosion detection (#20) * Add max_velocity_ratio to WetHairParameter Which will be used to detect when simulations goes unstable and explodes, which can cause massive memory consumption and bring down the machine. * Add max velocity ratio check in momentum update in CylindricalShallowFlow This can produces velocity spikes for certain scenarios when the substep for the reduced liquid is too low. It has the chain reaction that hair strands explodes getting stretch 1000x which libWetHair will generate dripping particles from. That in turn generates massive amount of fluid particles, which can easily exceed 100GB in ram usage from one frame to the next. 09 May 2024, 16:58:33 UTC
b3fb6b6 Fix update inertia check in transferLiquidToGridParticle (#19) It now properly skips the inertia update for tip vertices and do not cause an out of bounds read in rest_m. 17 March 2024, 20:06:50 UTC
cc5fa1a clang format for all the files 07 January 2024, 01:18:07 UTC
c2cd00e fix tbb & clang format for fluidsim files 07 January 2024, 01:12:40 UTC
12cce33 Merge pull request #17 from digitaldomain/pseudo_init_random_particles Initialize pseudo-random particles and fix distribution for fluidsim2D/3D 07 January 2024, 00:53:16 UTC
bf19747 fluidsim2D: Pseudo-randomly initialize the fluid particles To make the scene reproducible when using `init_random_particles` to generate the fluid. It is now controlled by a seed (`particle_seed`). Opted to set this via a member function to not break the API. 28 December 2023, 23:55:36 UTC
0e06e8d fluidsim2D: change to uniform distribution when initialize particles The distribution was [0.0, 0.5] which would result in particles getting a biased distribution. Changed the distribution to be [-0.5, 0.5]. Which will seed particles around the cell center (assuming i=0, j=0 is the center and not the origin and the cell is 1 unit in width, height and depth). 28 December 2023, 23:54:57 UTC
ee03fe3 fluidsim3D: Pseudo-randomly initialize the fluid particles To make the scene reproducible when using `init_random_particles` to generate the fluid. It is now controlled by a seed (`particle_seed`). Opted to set this via a member function to not break the API. 28 December 2023, 19:23:19 UTC
76418cd fluidsim3D: change to uniform distribution when initialize particles The distribution was [-0.5, 1.5] which would result in particles getting seeded in neighboring cells when distribution > 0.5. Changed the distribution to be [-0.5, 0.5]. Which will seed particles around the cell center (assuming i=0, j=0, k=0 is the center and not the origin). 28 December 2023, 19:17:06 UTC
4cfaa16 update Anttweakbar for C++17 27 August 2023, 18:11:36 UTC
5dafa5a Merge pull request #15 from digitaldomain/log_pressure_solve_failure Log pressure solve failure to a file 26 April 2023, 03:49:20 UTC
bb8ffd4 Merge pull request #16 from digitaldomain/throw_on_pressure_failure Throw on pressure failure 26 April 2023, 03:48:10 UTC
9b297f8 Catch std::runtime_error& and exit gracefully for the App The pressure solver for the fluid can now throw if it fails. Catch that, print the error to std::cerr, clean up and then exit with error code EXIT_FAILURE to indicate that something went wrong. 25 April 2023, 21:46:23 UTC
3b035b2 Use EXIT_SUCCESS for return status In case it is differs for various platforms. 25 April 2023, 21:26:44 UTC
7159253 Throw std::runtime_error if pressure solve failed Instead of calling exit(0) as that will crash programs that are using libWetHair as a library. The exit logic should be handled on the program side e.g. catch the throw, clean up and call exit(1). 25 April 2023, 21:19:43 UTC
7192e36 Write to a log if pressure solve failed Not ideal to spew all this to standard out, especially when the system is large. Better to write this to a log file if possible. That way you do not need to worry about blowing passed any scroll back limit or bringing slower terminals to a crawl. It will fallback to writing to standard error if it fails to open the log file. 25 April 2023, 19:49:10 UTC
dfa761d Add delegateLogOutput function Which will just try and open the path for writing, if it succeeds it will pass on the std::ostream to the write. If not it will just use stream. This to make sure that the info in the write function gets written to somewhere. 25 April 2023, 19:49:10 UTC
d5fecf6 Add tempLogFile function To generate a timestamped log file path. 25 April 2023, 19:48:58 UTC
c3781c9 Update CMAKE_CXX_STANDARD to 17 Allow to use the std::filesystem, which will make writing error logs a lot cleaner. 25 April 2023, 19:16:19 UTC
3ad67f4 Update README.md 21 September 2022, 03:18:26 UTC
6e7d743 Merge pull request #14 from digitaldomain/gnu_linux_link_error Add back Threads::Threads to WetHairCore 21 September 2022, 03:12:14 UTC
c55f763 Merge pull request #13 from digitaldomain/find_dep_option Add cmake option LIBWETHAIR_FIND_DEPENDENCIES 21 September 2022, 03:12:02 UTC
d2450d0 Add back Threads::Threads to WetHairCore Which fixes a linking issue when compiling on GNU/linux. The thread library is separate from the standard library on those systems, which require you to explicitly specify that you need to link it. On other platforms, cmake should make this an no-op. 15 September 2022, 23:33:40 UTC
5cc2d95 Add cmake option LIBWETHAIR_FIND_DEPENDENCIES Which allows to find dependencies instead of downloading them. This is off by default. Downloading and vendoring dependencies does not fit well with package managers on linux. The dependency graph is hidden from the view of the package manager. Making it both wasteful (both disk space and compile time) and more opaque when it comes to debugging dependency related issues. This option will allow the best of both worlds. If you are building this without a package manager, you can leave it off. But if you are packaging this up for a package manager, you can enable this and leave the dependencies for the package manager. 15 September 2022, 23:22:58 UTC
faeacb7 Add cmake/Findstb.cmake Needed if finding the stb dependency instead of downloading it. Reason for using `STB_IMAGE_WRITE_ROOT` and not `STB_ROOT` for finding `stb_image_write.h`, is that some linux distributions (e.g. GNU Guix) have split the stb into multiple packages. So this is future proofing it somewhat in case libWetHair needs to use other headers from stb. Given that each header needs to be searched for using find_path, to find the correct include dir as they can be in different directories. 15 September 2022, 23:13:17 UTC
fe4731f Resurrect cmake/Findtclap.cmake But in a simplified form. Needed if finding `tclap` instead of downloading it. In theory this should work on all platforms. But I have only tested it on GNU/linux. 15 September 2022, 23:12:39 UTC
d245329 Resurrect cmake/Findrapidxml.cmake But in a simplified form. Needed if finding `RapidXml` instead of downloading it. Renamed it from FindRapidXML.cmake to match the lowercase name now used for it. In theory this should work on all platforms. But I have only tested it on GNU/linux. 15 September 2022, 23:07:55 UTC
982d37a Include eigen when building the App The target might not be defined when only building the app. 15 September 2022, 23:07:38 UTC
b0674fc Rename anttweakbar::anttweakbar to AntTweakBar::AntTweakBar To match the target and config name used by AntTweakBar. It sadly does not namespace the target. 15 September 2022, 23:07:38 UTC
f81835b Rename glew::glew to GLEW::glew To match the target name used by cmake's FindGLEW. Allows for less friction if using that to find the target. 15 September 2022, 23:07:38 UTC
4c317aa Update README.md 12 September 2022, 16:32:22 UTC
f2158b7 Merge pull request #12 from nepluno/yfei/use_fetch_content Yfei/use fetch content 12 September 2022, 16:23:54 UTC
d4f3418 update readme 12 September 2022, 16:23:24 UTC
624aa13 Merge branch 'master' into yfei/use_fetch_content 12 September 2022, 16:17:46 UTC
77af2ed fix compilation for windows 12 September 2022, 16:15:39 UTC
066d533 switch dependency management through fetchcontent 12 September 2022, 15:41:01 UTC
e9b0791 Update README.md 12 September 2022, 01:24:41 UTC
5ea0323 fix eigen incompability when using threading 12 September 2022, 01:20:38 UTC
3835e60 Merge remote-tracking branch 'dd/make_thread_public' 12 September 2022, 00:40:11 UTC
49d2dc5 Merge pull request #10 from digitaldomain/namespace_library Namespace the core library 12 September 2022, 00:36:18 UTC
b14a49a Make Threads::Threads public for WetHairCore in the CMakeLists.txt Otherwise it will cause a compilation error when the WetHairCore is built as a shared library. I missed this the first time as when building that statically, cmake will propagate _all_ dependencies to the dependents. Given that a static library does not have concept of NEEDED as a shared one does. 01 September 2022, 19:20:02 UTC
80668d3 Update core library to use standard include for non-local dir files By non-local dir files, I mean files in the core library that are not in the same directory as the file that is using the include directive. - As it is easier to read. E.g. `#include <libWetHair/TimingUtilities.h>` than `#include "../../TimingUtilities.h"`. - Avoid making mistakes with number of `../`. - And it makes the code a bit less coupled filesystemwise. Making it slightly more robust against restructuring. 30 August 2022, 22:48:44 UTC
c3a409a Change the core include directory to be public To allow the core library to also use `#include <libWetHair/…>`. 30 August 2022, 22:48:44 UTC
3a4531e Do not hide the libWetHair file namespace and update App to reflect that This to avoid include collisions when used with other libraries. 30 August 2022, 22:48:44 UTC
a94439f Restructure the code base - Move the App outside libWetHair. - Move Core files up to libWetHair. - Move the App related part of libWetHair/CMakeLists.txt to App/CMakeLists.txt. - Move the option for building the core and app to the top CMakeLists.txt. The libWetHair directory now mirrors the layout it will have when installed. 30 August 2022, 22:48:44 UTC
ab443b1 Add namespace libwethair to Core files and update App to reflect that Wrapped all the files in Core with a libwethair namespace. Then updated all files in App to use that namespace. Either explicitly in headers or a just `using namespace libwethair` in source files. I avoided using namespace libwethair in source files in Core, as at least gcc strips the namespace of the symbols it creates when using that. Which is causing linking issues. 30 August 2022, 22:48:44 UTC
2a96f07 Remove using namespace… in headers As that will propagate to everything that includes them, which can cause really annoying build issues. `using namespace` should only be used in limited scopes, e.g. in a body of a function or a source file. 30 August 2022, 22:48:44 UTC
052625e Merge pull request #9 from digitaldomain/standalone_library Standalone library 30 August 2022, 01:21:20 UTC
6bd4037 Add option to only build the library, app and/or install the assets Make it easier to package them. As this make it easier to separate the library and the app, reducing the dependencies if someone only wants to use the library. 29 August 2022, 16:58:09 UTC
dd96c58 Move Core include directory to WetHairCore target Otherwise it will not be included in the exported target. The install interface includes the libWetHair directory to still be able to link with App. 29 August 2022, 16:58:09 UTC
20cef7d Install a cmake config for libWetHair Make it easier for other projects to use libWetHair 29 August 2022, 16:58:09 UTC
1246ffb Move Core out to be a separate library Leaving out the type of the library, and instead let it be controlled by BUILD_SHARED_LIBS option. 29 August 2022, 16:58:09 UTC
bd6ebc6 Explicit define all the source files Better to be explicit about what source files that the executable are using. Also makes it easier to break this apart into some libraries and executable. 29 August 2022, 16:58:09 UTC
86bee4f Merge pull request #8 from digitaldomain/modern_cmake Modernize cmake 26 August 2022, 18:28:39 UTC
d181a04 Remove top source directory from the header search path To reduce the global state of the cmake targets. Also this is not needed. 25 August 2022, 22:51:28 UTC
83b419c Always start comment in CMakeLists.txt with capital letter To make the comments consistent. 25 August 2022, 22:51:28 UTC
960a41e Remove commented out warning flags in CMakeLists.txt 25 August 2022, 22:51:28 UTC
fe5d453 Remove Release flags These are set by default when build type is `Release`. 25 August 2022, 22:51:28 UTC
79dd432 Append source cmake file to CMAKE_MODULE_PATH Just a cleaner way of adding the path to cmake's module search path. 25 August 2022, 22:51:28 UTC
1e92df9 Use target_include_directories to add Core to libWetHair in cmake 25 August 2022, 22:51:28 UTC
3ff54ec Group the finding the dependency code in CMakeLists 25 August 2022, 22:51:28 UTC
9103e3a Export and use RapidXML::RapidXML target 25 August 2022, 22:51:28 UTC
4235189 Remove FindFreeGLUT.cmake Not needed anymore. 25 August 2022, 22:51:28 UTC
b2defe3 Use OpenGL::GLU target exported by the FindOpenGL Instead of setting the include path and libraries manually. 25 August 2022, 22:51:28 UTC
f6ea623 Clean up FindANTTWEAKBAR.cmake - Use a consistent indentation, instead of a mix of tabs and spaces - Reduce the manual paths permutations, and instead let cmake handle that with PATH_SUFFIXES. - Normalize the behavior for both windows and unix like systems. It will now use the environment variable ANT_TWEAK_BAR_ROOT last. But it will use the defined ANT_TWEAK_BAR_ROOT variable first. 25 August 2022, 22:51:12 UTC
e273119 Update FindANTTWEAKBAR to create an imported target Which simplifies the CMakeLists.txt as it does not need to add include path or libraries to the libWetHair target. Instead it only needs to add the ANTTWEAKBAR::AntTweakBar target. 25 August 2022, 22:51:12 UTC
9d8f9f8 Use ANT_TWEAK_BAR_ROOT instead of ANTTWEAKBAR_ROOT To match the environment variable already used for windows. 25 August 2022, 22:51:12 UTC
05c51e9 Remove FindGLEW.cmake It is shipped with cmake as of 3.1. 25 August 2022, 22:51:12 UTC
80556fa Use the PNG::PNG target the findPNG module exports Removes the need of manually add the definitions and include directories. 25 August 2022, 22:51:12 UTC
d243266 Update FindTCLAP to create an imported target It will try pkgconfig if it finds the pkg-config executable and just alias the target it finds. If it doesn't find the pkg-config executable it will fallback to the finding the path to the header and creating the target manually. 25 August 2022, 22:51:12 UTC
385ebf3 Update FindGLEW to create an imported target As it does not ship with a cmake config, we cannot use that. Instead updated the FindGLEW to mimic that behavior and export a GLEW::glew target. On linux, it does ship with a pkgconfig file. On that platform it just uses cmake's PkgConfig module to find the target and then alias it to GLEW::glew. 25 August 2022, 22:51:12 UTC
fd2483e Delete trailing whitespaces in FindGLEW 25 August 2022, 22:51:12 UTC
388a6b7 Find FreeGLUT's config instead of module Removes the need of the FindFreeGLUT module, as all new versions of FreeGLUT ships with the config files. 25 August 2022, 22:51:12 UTC
2f67024 Find Eigen's config instead of module Removes the need of the FindEigen3 module, as all new versions of Eigen ships with the config files. 25 August 2022, 22:51:12 UTC
467b718 Find TBB's config instead of module Removes the need of the FindTBB module, as all new versions of TBB ships with the config files. 25 August 2022, 22:51:12 UTC
d85855a Use the modern cmake way of using pthread Better compatibility between compilers and operative systems. Also less code. 25 August 2022, 22:51:12 UTC
d713622 Specify the c++ standard using cmake variables Instead of directly adding it as a compiler flag. 25 August 2022, 22:51:12 UTC
a223822 Change to using install to install the libWetHair target The install_targets is deprecated since 3.0. And instead you should use install(TARGETS…). This is where the minimum of 3.14 comes in. As in 3.14 or later, you can leave out DESTINATION in the install() call and it will use the default paths defined by GNUInstallDirs. 25 August 2022, 22:51:12 UTC
91745de Use GLEW_INCLUDE_DIR instead of GLEW_INCLUDE_DIRS Otherwise it will not include the glew headers properly, as the find module exports GLEW_INCLUDE_DIR and not GLEW_INCLUDE_DIRS. 25 August 2022, 22:51:12 UTC
9981d67 Add *_ROOT hint for the Find modules Makes it easier to point cmake to the installation path if a dependencies is installed to a non-standard location. Needed to change PATHS to HINTS for FindFreeGLUT for it to find the correct location. Not sure why. 25 August 2022, 22:51:12 UTC
e1441b9 Install assests to data directory instead of symlink Makes it more packageable, given that the assests are no longer tied to the source. 25 August 2022, 22:51:12 UTC
31bb132 Include GNUInstallDirs Help with using more standardize filesystem paths. 25 August 2022, 22:51:12 UTC
99e0680 Change the minimun version of cmake 2.6.2 is ancient, moving to a more modern version of cmake (3.14 is still from 2019) will help clean up the CMakeFiles. 25 August 2022, 22:51:12 UTC
fb24d96 Do not set the CMAKE_INSTALL_PREFIX if it is already defined Prevent issues when trying to package this. 24 August 2022, 22:26:36 UTC
3c16442 Update README.md update project page address 10 June 2022, 16:30:32 UTC
a482059 fix capitalize 20 December 2021, 20:21:32 UTC
4d0989f fix for Apple M1 15 December 2021, 20:20:02 UTC
4edc08d fix approx Jacobian for semi-implicit integration 06 November 2020, 05:14:50 UTC
bce49b7 unify coding style 26 October 2020, 05:10:23 UTC
aba99ca fix compilation issue 15 December 2019, 10:53:39 UTC
8424444 fix 15 December 2019, 10:51:23 UTC
a6ba56b some clean up 23 June 2019, 19:40:07 UTC
eb68e84 Update fluidsim3D.cpp 22 April 2019, 04:06:36 UTC
5bc34e3 Update StretchingForce.cpp Bug Fix 07 February 2019, 21:15:50 UTC
9f221c7 fix cohesion table debug info 04 October 2018, 23:07:35 UTC
096be2c fix incompatibility on some system 08 August 2018, 18:11:40 UTC
709bbac simplify viscous indexing 04 July 2018, 20:40:45 UTC
bb16963 faster viscous solve 02 July 2018, 07:05:22 UTC
6c1b2c7 fix viscosity 02 July 2018, 01:11:45 UTC
95f717e simplify the calculation of pressure matrix 05 January 2018, 20:43:03 UTC
back to top