Skip to main content

A object-oriented python wrapper for houdini engine's C API

Project description

pyhapi

Downloads

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

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()

Example: multisession_run

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

Example: server_demo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyhapi-0.0.4b2.tar.gz (35.9 kB view details)

Uploaded Source

Built Distributions

pyhapi-0.0.4b2-py3.7.egg (94.3 kB view details)

Uploaded Source

pyhapi-0.0.4b2-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

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

Hashes for pyhapi-0.0.4b2.tar.gz
Algorithm Hash digest
SHA256 6b9b32479655e589411391445556ec671035c088d280c403652772c0c7d46f3e
MD5 e3dfc0f470cba266b1af09c64055ac38
BLAKE2b-256 92c92e0c045aabafc47b5c4c37b5cd6e96fd8c4a35a3293eec9cb6f6e531c3f9

See more details on using hashes here.

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

Hashes for pyhapi-0.0.4b2-py3.7.egg
Algorithm Hash digest
SHA256 e1881b6f27ea6cb353a9fbb59be879bc8b8d8d75c9aab4798fe965b7349d0784
MD5 a3c7a832a6a2fc614956a4c16514f034
BLAKE2b-256 fa72feabb18875ac17cee67a61301588830de7de49baa69e7742eff331a0341e

See more details on using hashes here.

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

Hashes for pyhapi-0.0.4b2-py3-none-any.whl
Algorithm Hash digest
SHA256 5eaa430642d50a7a621f3034d75a19534609fd82233c337c5b29314e3d5615ce
MD5 cd937f835d1af6981494bfdbff8397d3
BLAKE2b-256 d7b49504a65898d043b3451717514620ef6f29e1754fb44aec968f167936fa58

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page