Code Monkey home page Code Monkey logo

houdini-plugin-for-tensorflow-smoke-stylization's Introduction

Tensorflow implementation of Style Transfer for Houdini Smoke Simulations

An artist-centered tool for Transport-Based Neural Style Transfer for Smoke Simulations. Combines the original implementation with a Houdini Digital Asset, making a user-friendly, integrated plugin for Smoke Stylization.

Development: Penelope Tay, Byungsoo Kim, Vinicius C. Azevedo, Markus Gross, Barbara Solenthaler

Computer Graphics Laboratory, ETH Zurich

teaser

Description

As an artist, this tool lets you take smoke simulations you've created in Houdini and stylize them. This gives them the aesthetic and apperance of your choice, whilst remaining governed by the physical accuracy of the simulation.

There are two types of transfer you can conduct: Stylistic and Semantic. Stylistic Transfer lets you specify a target image, whilst Semantic Transfer lets you specify a target layer and channel. The stylizer will then alter the smoke to mimic the target.

style_sem

Development

Current Progress: Complete with Maintenance

Feel free to contact me if you have any problems using the Houdini Plugin, or if you'd like to report a bug.

Installation

Python 3.6

Use this installation method unless you have very specific requirements

  1. Ensure you have Python 3.6 installed and on your Environment Path. If not, download it.

  2. Download the necessary libraries. Install these via command prompt:

     pip install --user --upgrade tensorflow-gpu==1.12 tqdm matplotlib Pillow imageio scipy scikit-image
    
  3. Download CUDA and CuDNN and add them on your Environment Path.

  • You may need to create a NVIDIA Developer Account to download CuDNN.
  • Please Download cuDNN v7.6.5 (August 23, 2019), for CUDA 10.1.
  1. Open the command prompt and download our code:

     git clone https://github.com/kymwatts/Python-Houdini-Plugin-for-Tensorflow-Smoke-Stylization.git
    
  2. Ensure you have Houdini installed. If not, download it.

  • You do not need the commercial version.

Python 2.7

Whilst Houdini (as of 8/26/2019), runs off Python 2.7, you still need a second copy should you wish to proceed with this method. The reason being Tensorflow is not technically not supported for Python 2.7, and a special setup is required. This problem may be trivialised for Linux users, who benefit from both a flexible Python environment for Houdini and Tensorflow support for Python 2.7.

  1. Ensure you have a Houdini-independent Python 2.7 installed and on your Environment Path. If not, download it

  2. install pip: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py c:\python27\python.exe get-pip.py

  3. download tensorflow from here

  4. install the the required python packages via command prompt:

     pip install tensorflow_gpu-1.10.0-cp27-cp27m-win_amd64.whl
     pip install --user --upgrade tqdm matplotlib imageio==2.1.1 scikit-image pillow==6.1.0
     pip install --user numpy==1.16.4
     pip install --user scipy==1.2.2
    
  5. Download CUDA and CuDNN and add them on your Environment Path.

  • You may need to create a NVIDIA Developer Account to download CuDNN.
  • Please Download cuDNN v7.6.3 (August 23, 2019), for CUDA 9.2.
  • once cuDNN is downloaded copy files to your cuda in astall location: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\<version>\
  • so that the lib files go in lib, bin in bin etc.
  1. Open the command prompt and download our code:

     git clone https://gitlab.com/ozeuth/Python-Houdini-Plugin-for-Tensorflow-Smoke-Stylization.git
    
  2. Ensure you have Houdini installed. If not, download it.

  • You do not need the commercial version.

Usage

  1. Open a Houdini smoke simulation or create one from scratch. Regardless, you should have a "pyro_import" geometry node.

  2. File > Import > Houdini Digital Asset..., navigate to the Python-Houdini-Plugin-for-Tensorflow-Smoke-Stylization directory and select a .hdanc file. Choose "smoke_stylizer.hdanc" if you do not intend to modify the Digital Asset, "smoke_stylizer_unlocked.hdanc" otherwise. Click Install.

  3. Enter the "pyro_import" geometry node. In the /obj/pyro_import Network view, Add > Node > Digital Assets > Smoke stylizer.

  4. Connect the "import pyrofields" node's output to the input of our "Smoke_Stylizer_Oz" node.

  5. Click on the Smoke Stylizer digital asset. Set the "Python version" and "Python Path" (e.g., C:\Users\user_name\AppData\Local\Programs\Python\Python36) to that of the Houdini-independent python you have installed. Set the "Stylizer Path" (e.g., C:\Users\user_name\dev\Python-Houdini-Plugin-for-Tensorflow-Smoke-Stylization) to that of the stylizer you have installed. setup

  6. Tweak other details as you wish. Otherwise, click "New Stylization". Stylization will begin on the next frame after.

  • If confused, you may refer to our example scene, demo.hipnc

Results (single frame)

single

Results (sequence)

sequence

houdini-plugin-for-tensorflow-smoke-stylization's People

Contributors

kymwatts avatar ozeuth avatar

Watchers

 avatar

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.