Open-source node system framework, to change your algorithmic code into useful tools to create much more complicated simulations!

ZENO node system

CMake License Version

Download | Repo | About us | Tutorial | Videos | Q&A Forum | Bug report

国内高速下载 | Gitee 镜像仓库 | 公司主页 | 中文教程 | 视频教程 | 问答论坛 | BUG 反馈

Open-source node system framework, to change your algorithmic code into useful tools to create much more complicated simulations!

ZENO is an OpenSource, Node based 3D system able to produce cinematic physics effects at High Efficiency, it was designed for large scale simulations and has been tested on complex setups. Aside of its simulation Tools, ZENO provides necessary visualization nodes for users to import and run simulations if you feel that the current software you are using is too slow.

Features

Integrated Toolbox, from volumetric geometry process tools (OpenVDB), to state-of-art, commercially robust, highly optimized physics solvers and visualization nodes, and various VFX and simulation solutions based on our nodes (provided by .zsg file in graphs/ folder).

Gallery

Fig.1 - Robot hit water

Fig.2 - SuperSonic Flow

Fig.3 - Fluid-structure interaction in ZENO

Fig.4 - Rigid fracture in ZENO

Fig.5 - Muscular-skeleton simulation in ZENO

Fig.6 - Large scale Fluids in ZENO

End-user Installation

Download binary release

Go to the release page, and click Assets -> download zeno-linux-20xx.x.x.tar.gz. Then, extract this archive, and simply run ./launcher (launcher.exe for Windows), then the node editor window will shows up if everything is working well.

How to play

There are some example graphs in the graphs/ folder, you may open them in the editor and have fun! Hint: To run an animation for 100 frames, change the 1 on the top-left of node editor to 100, then click Run. Also MMB to drag in the node editor, LMB click on sockets to create connections. MMB drag in the viewport to orbit camera, Shift+MMB to pan camera. More details are available in our official tutorial.

Bug report

If you find the binary version didn't worked properly or some error message has been thrown on your machine, please let me know by opening an issue on GitHub, thanks for you support!

Developer Build

To build ZENO, you need:

  • GCC 9+ or MSVC 19+, CMake 3.12+, and Python 3.6+ to build ZENO.
  • Pybind11, NumPy and PySide2 (Qt for Python) to run ZENO editor.
  • (Optional) OpenVDB for building volume nodes; CUDA for GPU nodes.

Hint: for Python, please try avoid using virtualenv and Conda if possible. WSL is also not recommended because of its limited GUI and OpenGL support.

Click links below for detailed setup for each platform:

After finishing building, use run.py to run ZENO for development! You may click File -> Open to play graphs/LorenzParticleTrail.zsg to confirm everything is working well :)

Miscellaneous

Write your own extension!

See zenustech/zeno_addon_wizard for an example on how to write custom nodes in ZENO.

Contributors

Thank you to all the people who have already contributed to ZENO!

Contributors

License

ZENO is licensed under the Mozilla Public License Version 2.0, see LICENSE for more information.

Contact us

You may contact us via WeChat:

  • @zhxx1987: shinshinzhang

  • @archibate: tanh233

Owner
Zenus Technology
Shenzhen Zenus Technology Co. Ltd.
Zenus Technology
Comments
  • RuntimeError

    RuntimeError

    Hello!

    I'am in windows and unpacked the zeno-windows-2021.7.2.zip.

    I can't use any nodes and I will get RuntimeError when I click Execute. image

    Simply use the forloop.zsg and I get nothing in screen. image

    I want to know where I did it wrong.

  • [BUG] bug report

    [BUG] bug report

    FunBegin 和 FuncEnd 输出一个可调用对象function。我想在一个某个节点中多次调用这个函数: image 但实际上,在每个subframe的第一次调用,function会执行两次,第二次及以后的调用,function不会被执行,rets为第一次调用的结果。 image

    我用尽可能用简洁明了的代码复现了这个问题,push了functional分支,编译命令为 ··· cmake -B build -DEXTENSION_Functional:BOOL=ON ···

    zsg文件为zeno目录下的nonlinear.zsg

    Environment

    • System: ubuntu 20.04
    • Zeno Version: master分支
  • [BUG] bug report

    [BUG] bug report

    Problem: build success but run failed

    image

    D:\zeno>python run.py
    ZENO repo directory at: D:\zeno
    Traceback (most recent call last):
      File "D:\zeno\run.py", line 15, in <module>
        runpy.run_module('zenqt')
      File "D:\Users\ywj12\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 213, in run_module
        return _run_code(code, {}, init_globals, run_name, mod_spec)
      File "D:\Users\ywj12\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "D:\zeno\zenqt\__main__.py", line 4, in <module>
        sys.exit(_main())
      File "D:\zeno\zenqt\main.py", line 9, in main
        from .ui.main import main as _main
      File "D:\zeno\zenqt\ui\main.py", line 8, in <module>
        from .window import MainWindow
      File "D:\Users\ywj12\AppData\Local\Programs\Python\Python39\Lib\site-packages\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
        return original_import(name, *args, **kwargs)
      File "D:\zeno\zenqt\ui\window.py", line 7, in <module>
        from .visualize.viewport import DisplayWidget
      File "D:\Users\ywj12\AppData\Local\Programs\Python\Python39\Lib\site-packages\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
        return original_import(name, *args, **kwargs)
      File "D:\zeno\zenqt\ui\visualize\viewport.py", line 11, in <module>
        from . import zenvis
      File "D:\Users\ywj12\AppData\Local\Programs\Python\Python39\Lib\site-packages\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
        return original_import(name, *args, **kwargs)
      File "D:\zeno\zenqt\ui\visualize\zenvis.py", line 1, in <module>
        from ...bin import pylib_zenvis as core
    ImportError: cannot import name 'pylib_zenvis' from 'zenqt.bin' (unknown location)
    

    Environment

    • System: Windows 10
    • IDE: VS 2022
    • Zeno Version: 2021.11.23
  • [BUG] Got

    [BUG] Got "Expected class-name before '{' token" error when compiling under manjaro

    My cmake flag is $ cmake -B build -DEXTENSION_gmpm:BOOL=ON -DEXTENSION_mesher:BOOL=ON -DEXTENSION_FastFLIP:BOOL=ON -DEXTENSION_zenvdb:BOOL=ON -DZENOFX_ENABLE_OPENVDB:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON Got error while compiling /projects/gmpm/zecomp/include/zensim/cuda/Cuda.cu: /home/peter/zeno/projects/gmpm/zecomp/include/zensim/meta/Sequence.h:132:189: 错误:expected class-name before ‘{’ token 132 | struct shuffle_convert_impl<Unary, index_seq<Js...>> | ^ /home/peter/zeno/projects/gmpm/zecomp/include/zensim/meta/Sequence.h:141:188: 错误:expected class-name before ‘{’ token 141 | template <std::size_t... Js> struct shuffle_impl<index_seq<Js...>> | ^ /home/peter/zeno/projects/gmpm/zecomp/include/zensim/meta/Sequence.h:211:189: 错误:expected class-name before ‘{’ token 211 | template <std::size_t... Js> struct shuffle_impl<index_seq<Js...>> | ^ I guess it is an c++17 related preprocessing error with the fold expression struct shuffle_convert_impl<Unary, index_seq<Js...>>, but I don't know whether c++17 is enabled, the verbose output of make shows that there is no -std=c++17 flag. image Eventhough I manually add -std=c++17 flag and recompile the file the error is still there: image My nvcc supports c++17 image

    Environment

    • System: Manjaro Linux [x86_64]
    • Zeno Version: 2021.12.20
    • Graphics card (for viewport bugs): RTX 3070 Mobile / Max-Q
  • [win10-zeno2021-9-7] little Bug for Run Animation

    [win10-zeno2021-9-7] little Bug for Run Animation

    when I have a success simulation Run, then drag the timeline sign back to the "zero frame" and then click "Run" will not execute the simulation(animation) again, It will show the "simulating" but just stop at the zero frame. but if I drag to the others frame, it will execute the simulation as expectation

  • [BUG] Fail to launch ZENO on Windows

    [BUG] Fail to launch ZENO on Windows

    Describe the bug (both Chinese and English are OK) Cannot launch the latest release 2022.3.1 on Windows. Environment: NVIDIA 940MX; CUDA 10.1; Windows 10. Error Message: 无法定位程序输入点 cuGetProcAddress 于动态链接库 xxx/zeno_mpm.dll 上

    How To Reproduce

    1. Click launcher.exe;
    2. The error occurs.

    Screenshots N/A

    Environment

    • System: Windows 10
    • Zeno Version: 2022.3.1
    • Blender Version (if using it): N/A
    • Graphics card (for viewport bugs): GTX 940MX
  • seg fault

    seg fault

    when I use Make3DGridPrimitive and ParticlesNeighborWrangle, zeno(master branch, zfx2) cannot work and return -11

    here is the zsg file

    test.txt

    rename this file as test.zsg to open in zeno

  • reserved identifier violation

    reserved identifier violation

  • USD integration (WIP, Do not merge)

    USD integration (WIP, Do not merge)

    1. 搭建了基本的环境,设置cmake选项
    -DPXR_USD_LOCATION=C:/DEV_PROJECT/dev-library/usd-build
    -DZENO_WITH_USD=ON
    

    usd-build是已经从源码构建好的USD版本

    2.尝试替换ObjectManager为StageManager作为中间层。

  • [BUG] bug report 8.24版本打开flip.zsg缺少节点

    [BUG] bug report 8.24版本打开flip.zsg缺少节点

    该版本:zeno-2022.8.24-x86_64-windows-cuda.zip 打开graph/flip.zsg出现警告如下

    modelacceptor.cpp:138 no code class named [SmoothLiquidSDF] modelacceptor.cpp:138 no code class named [GenericFLIPSolver]

C++11 provides chainable and iterable object for uniform die casts. Useful for statistics or table top RPG simulations.

12/1/2018 Due to feedback about compile-time limitations, the api has been changed since release. The api now supports user-defined literals which mak

Sep 5, 2021
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++. Among others, it's used in Minecraft by

Dec 30, 2022
Dec 29, 2022
EyeLog Can Record And Steal Consecutive Keystrokes (and much more) That The User Enters On A Device
EyeLog Can Record And Steal Consecutive Keystrokes (and much more) That The User Enters On A Device

What This EyeLog EyeLog Is A Keylogger Can Record And Steal Consecutive Keystrokes (and much more) That The User Enters On A Device How To Setup EyeLo

Dec 28, 2021
A collection of valorant cheating codes, including offsets, world to screen and much more!

Valorant External Cheating Help Always up to date Valorant Offsets + a wide variety of noob friendly helper functions. Functions are not heaviky teste

Jun 12, 2022
Integrate the ZENO node system into Blender for creating robust physics animations!

ZenoBlend Integrate the ZENO node system into Blender for creating robust physics animations! End-user Installation Goto Release page, and click Asset

Oct 28, 2022
Project PLS is developed based on icarus iverilog and will compile verilog into a much faster optimized model.

Getting Started with PLS The project is developed based on icarus iverilog. Special thanks to Stephen Williams ([email protected]). PLS is a Verilog si

Dec 19, 2022
A program to backup all of your game savefiles on your system, neatly, and into a single folder.

Savefile Saver I created this project as a solution to a simple, but annoying problem: Backing up my game savefiles. I wanted to be able to copy all o

Oct 24, 2022
This repository uses a ROS node to subscribe to camera (hikvision) and lidar (livox) data. After the node merges the data, it publishes the colored point cloud and displays it in rviz.
This repository uses a ROS node to subscribe to camera (hikvision) and lidar (livox) data. After the node merges the data, it publishes the colored point cloud and displays it in rviz.

fusion-lidar-camera-ROS 一、介绍 本仓库是一个ROS工作空间,其中ws_fusion_camera/src有一个工具包color_pc ws_fusion_camera │ README.md │ └───src │ └───package: c

Dec 7, 2022
A package to use Material side sheet into your Flutter project. Learn more about side sheet at Material.io
A package to use Material side sheet into your Flutter project. Learn more about side sheet at Material.io

Side Sheet A package to use Material side sheet into your Flutter project. Learn more about side sheet at Material.io Platform Support Android iOS Mac

Aug 25, 2022
OpenScan is an open-source document scanner app that enables users to scan hard copies of documents or notes and convert it into a PDF file. No ads. No data collection. We respect your privacy.
OpenScan is an open-source document scanner app that enables users to scan hard copies of documents or notes and convert it into a PDF file. No ads. No data collection. We respect your privacy.

OpenScan An open source app that enables users to scan hardcopies of documents or notes and convert it to a PDF file. No ads. No data collection. We r

Jan 4, 2023
An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Dec 29, 2022
Libft is an individual project at 42 that requires us to re-create some standard C library functions including some additional ones that can be used later to build a library of useful functions for the rest of the program.
Libft is an individual project at 42 that requires us to re-create some standard C library functions including some additional ones that can be used later to build a library of useful functions for the rest of the program.

Libft is an individual project at 42 that requires us to re-create some standard C library functions including some additional ones that can be used later to build a library of useful functions for the rest of the program.

Jan 1, 2023
A header maker, this project will create your header file with all your declaration in

Headermaker Install: git clone https://github.com/rmechety42/Headermaker.git cd Headermaker make install Usage: Headermaker src_folder_you_want_to

Dec 8, 2022
A python package to provide you with many useful tools for osu! servers, written in C++ for the best speeds possible.

pysu_bindings A python package to provide you with many useful tools for osu! servers, written in C++ for the best speeds possible. What? As most peop

Nov 29, 2021
taos-tools are some useful tool collections for TDengine.

taos-tools taos-tools are some useful tool collections for TDengine. How to build from source? install dependencies For Ubuntu/Debian system sudo apt

Dec 23, 2022
Library with useful output stream tools like: color and style manipulators, progress bars and terminal graphics.
Library with useful output stream tools like: color and style manipulators, progress bars and terminal graphics.

Library with useful output stream tools like: color and style manipulators, progress bars and terminal graphics Table of contents Introduction Documen

Dec 20, 2022
DLBFoam: Dynamic load balancing for fast reactive simulations
 DLBFoam: Dynamic load balancing for fast reactive simulations

DLBFoam: Dynamic load balancing for fast reactive simulations DLBFoam v1.1 - What's new? DLBFoam v1.1 introduces a fully analytical chemistry Jacobian

Dec 31, 2022