Git Product home page Git Product logo

peterzs / soapfilm3d Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nepluno/soapfilm3d

0.0 0.0 0.0 53.71 MB

Double bubbles sans toil and trouble: discrete circulation-preserving vortex sheets for soap films and foams

Home Page: http://www.cs.columbia.edu/cg/doublebubbles/

License: Mozilla Public License 2.0

CMake 0.38% C++ 73.39% GLSL 0.02% Cuda 0.08% Makefile 0.23% C 23.23% DIGITAL Command Language 0.08% Shell 0.12% Objective-C 0.07% Batchfile 0.03% Roff 2.05% Awk 0.32% Module Management System 0.02%

soapfilm3d's Introduction

Double bubbles sans toil and trouble: discrete circulation-preserving vortex sheets for soap films and foams

SoapFilm3D is an open source project for the physical simulation of soap films and bubbles. It is cross-platform (Mac OS X, Linux, Windows, and more), and licensed under the Mozilla Public License v. 2.0.

We would like to hear from you if you appreciate this work.

The repository contains the test program accompanying the paper by Da et al., including the multimaterial mesh-based surface tracking library LosTopo. It also includes the curvature computation proposed in the article by Fei et al.

This program is built by standard procedures using CMAKE (http://www.cmake.org).

Dependencies

The following external libraries are required:

On Mac OS X or Linux-based systems, most of the dependencies are either included, or can be easily installed with Homebrew (https://brew.sh) or the APT package handling utility.

On Windows you may need manually download and install some of them.

Compilation

SoapFilm3D has been tested with Clang (under Mac OS X), and GCC 4.8+ (under Linux and Windows Subsystem for Linux (WSL)). Currently the MSVC compiler is partially supported without the FMMTL module.

To compile SoapFilm3D, you'll need CMake on Mac OS X or Linux.

  1. make a directory, say, build, with mkdir build, enter the build directory, type cmake ..
  2. Optionally you can adjust the options with ccmake .
  3. type make to compile the code. For speeding up the compilation process you may use make -j.

On Windows Subsystem for Linux (with GCC):.

  1. follow the guide to install VcXsrv on Windows
  2. run VcXsrv with the access control disabled
  3. under the WSL environment (assuming WSL has been installed following the guide), make sure OpenGL is accessible. You may enable OpenGL through sudo apt-get install ubuntu-desktop mesa-utils and check if the glxgears is runnable.
  4. under the WSL environment, make a directory, say, build, with mkdir build, enter the build directory, type cmake ..
  5. turn on the NO_SHADER option with ccmake.
  6. type make to compile the code. For speeding up the compilation process you may use make -j.

On Native Windows (with MSVC):

  1. open CMake-GUI, enter the correct directory for source code and build. Then click Configure, choose your installed version of the Microsoft Visual Studio.
  2. after configuration you may find several libraries not found (with notifications of errors), check the Advanced box and specify those missing header path and libraries manually. For example, if Eigen is missing, then please specify the EIGEN3_INCLUDE_DIR to the path of directory we provided. For the ones we have not provided, you need to download and compile them, and then specify the missing directories to the path containing your headers or compiled libraries. Please make sure you have picked the libraries corresponding to the architecture you have selected (say, 32-bit libraries for x86, and 64-bit libraries for x64).
  3. click generate after fixing all missing variables to generate your Visual Studio solution.
  4. open the Visual Studio solution and compile the code.
  5. before running the demo, all the compiled dynamic linking libraries (DLLs) for your dependencies should be accessible from your PATH environment variable that can be changed in system settings, or you may simply copy them into your System32 (x64) or SysWOW64 (x86) directories.

Since collecting and compiling the dependencies could be tricky for Windows, we provided some compiled libraries and DLLs for your convenient. You may find them in the zip file under the bin folder, which also contains a compiled executable (under Visual Studio 2015 and Windows 10).

Run the Demo

Running the executables without command line arguments will display usage information. All the data files for testing are located in the assets folder. Since FMMTL is not supported on Windows, running can be slower than expected.

Please run the code using the project folder that containing everything (assets, code, etc.) as the working directory.

Citations

Da, Fang, et al. "Double bubbles sans toil and trouble: Discrete circulation-preserving vortex sheets for soap films and foams." ACM Transactions on Graphics (TOG) 34.4 (2015): 149. (http://www.cs.columbia.edu/cg/doublebubbles/)

Da, Fang, Christopher Batty, and Eitan Grinspun. "Multimaterial mesh-based surface tracking." ACM Trans. Graph. 33.4 (2014): 112-1. (http://www.cs.columbia.edu/cg/multitracker/)

Fei, Yun (Raymond), et al. "Addressing Troubles with Double Bubbles: Convergence and Stability at Multi-Bubble Junctions." arXiv preprint arXiv:1910.06402 (2019). (https://arxiv.org/abs/1910.06402)

soapfilm3d's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.