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.4b0.tar.gz (35.8 kB view details)

Uploaded Source

Built Distributions

pyhapi-0.0.4b0-py3.7.egg (94.0 kB view details)

Uploaded Egg

pyhapi-0.0.4b0-py3-none-any.whl (40.7 kB view details)

Uploaded Python 3

File details

Details for the file pyhapi-0.0.4b0.tar.gz.

File metadata

  • Download URL: pyhapi-0.0.4b0.tar.gz
  • Upload date:
  • Size: 35.8 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.4b0.tar.gz
Algorithm Hash digest
SHA256 7047b2ffbf6811467c4744f83259160e742860973d3dfb3b384d0f81490ea56b
MD5 9fabc9cd280247e4c5bc9f694e9605d6
BLAKE2b-256 e7a216ddc38b534f2d29c35718e489f6e3600becf8b92c4b59e754ad92e21f0e

See more details on using hashes here.

File details

Details for the file pyhapi-0.0.4b0-py3.7.egg.

File metadata

  • Download URL: pyhapi-0.0.4b0-py3.7.egg
  • Upload date:
  • Size: 94.0 kB
  • Tags: Egg
  • 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.4b0-py3.7.egg
Algorithm Hash digest
SHA256 931cca582c10d5fd129c41b1c343f74f4ec8bdcc2f67717217ec05e07500935e
MD5 71dc5e056cdd0430336bbfef623b00ae
BLAKE2b-256 52643c4cc08a7f075f8998141773e044bbaf33eb3c0e611a30d0c73828d82f64

See more details on using hashes here.

File details

Details for the file pyhapi-0.0.4b0-py3-none-any.whl.

File metadata

  • Download URL: pyhapi-0.0.4b0-py3-none-any.whl
  • Upload date:
  • Size: 40.7 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.4b0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd93e1d2dc763b2586b21c0d04f41d70e39ac532eb1f86c408c9cb2f32654242
MD5 03cfa29eab58ad07de993b926b4978f7
BLAKE2b-256 a78fa4b9c547e377924edfd822ae33fec5e0490ad819e3489b071b02f118c974

See more details on using hashes here.

Supported by

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