A object-oriented python wrapper for houdini engine's C API
Project description
pyhapi
Object-Oriented Python Wrapper for Houdini Engine's C API
Note that this is 3rd party binding, not official.
Documentation
Please visit pyhapi documentation.
Install
You could use either (a) pip or (b) clone and install.
option a.1 setup PATH
- For Windows, run
powershell ./sethoupath.ps1
it should add houdini's dsolib and bin directory to PATH. - For Linux
Add/opt/hfs<version>/dsolib/
to LD_LIBRARY_PATH
Example:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/hfs17.5/dsolib/
option a.2 install through PyPI
$ pip install pyhapi
option b
Clone this repo and run python setup.py install
Supported Platforms
- Windows
- Linux
Dependency
- Python: >3.6
- Numpy: >= 1.15
- Houdini >= 17.5
- License supported:
- Houdini FX
- Houdini Core
- Houdini Engine
- License NOT supported:
- Houdini Engine Indie
- Houdini Indie
- Houdini Apprentice
- License supported:
Features
- Instantiate node/HDA
- Node connect operation
- Node parameter get/set
- Node async cooking
- Marshall in/out curve
- Marshall in/out mesh
- Marshall in/out heightfield
- SessionPool and task-based processing
Following feature in Houdini Engine is NOT supported yet:
- Marshall in/out volume
- PDG execution
Example Usage
Please see documentation for detailed tutorial. ****
Create a session
import pyhapi as ph
session = ph.HSessionManager.get_or_create_default_session()
See more in
Example: node_networks_operations
Instantiate a HDA
hda_asset = ph.HAsset(session, "hda/FourShapes.hda")
asset_node = hda_asset.instantiate(node_name="TestObject").cook()
Set parameter of node
asset_node.set_param_value("seed", 1.0)
asset_node.set_param_value("foo_attrib", "foo_str")
asset_node.press_button("foo_execute")
See more in
Example: hda_params_getset
Example: hparms_getset
Save HIP file
session.save_hip("debug.hip")
Marshall data
see more in
Example: curve_marshall_input
Example: curve_marshall_output
Example: mesh_marshall_input
Example: mesh_marshall_output
Example: heightfield_marshal_input
Example: heightfield_marshal_output
Session Pool
Producer/Consumer
session_pool = ph.HSessionManager.get_or_create_session_pool()
session_pool.run_on_task_producer(producer)
Example: multisession_producer
Batch Run
session_pool = ph.HSessionManager.get_or_create_session_pool()
session_pool.enqueue_task(session_task, i, j)
session_pool.run_all_tasks()
Threaded Task Producer
session_pool = ph.HSessionManager.get_or_create_session_pool()
session_pool.run_task_consumer_on_background()
executor = ThreadPoolExecutor(max_workers=4)
for i in range(0,4):
executor.submit(producer, i)
Example: multisession_producer_threaded
Flask Server Demo
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file pyhapi-0.0.4b2.tar.gz
.
File metadata
- Download URL: pyhapi-0.0.4b2.tar.gz
- Upload date:
- Size: 35.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b9b32479655e589411391445556ec671035c088d280c403652772c0c7d46f3e |
|
MD5 | e3dfc0f470cba266b1af09c64055ac38 |
|
BLAKE2b-256 | 92c92e0c045aabafc47b5c4c37b5cd6e96fd8c4a35a3293eec9cb6f6e531c3f9 |
File details
Details for the file pyhapi-0.0.4b2-py3.7.egg
.
File metadata
- Download URL: pyhapi-0.0.4b2-py3.7.egg
- Upload date:
- Size: 94.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1881b6f27ea6cb353a9fbb59be879bc8b8d8d75c9aab4798fe965b7349d0784 |
|
MD5 | a3c7a832a6a2fc614956a4c16514f034 |
|
BLAKE2b-256 | fa72feabb18875ac17cee67a61301588830de7de49baa69e7742eff331a0341e |
File details
Details for the file pyhapi-0.0.4b2-py3-none-any.whl
.
File metadata
- Download URL: pyhapi-0.0.4b2-py3-none-any.whl
- Upload date:
- Size: 40.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5eaa430642d50a7a621f3034d75a19534609fd82233c337c5b29314e3d5615ce |
|
MD5 | cd937f835d1af6981494bfdbff8397d3 |
|
BLAKE2b-256 | d7b49504a65898d043b3451717514620ef6f29e1754fb44aec968f167936fa58 |