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

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

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

session_pool.run_on_task_producer(producer)

Example: multisession_producer

Batch Run

session_pool = ph.HSessionManager.get_or_create_session_pool(3)

session_pool.enqueue_task(session_task, i, j)

session_pool.run_all_tasks()

Example: multisession_run

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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyhapi-0.0.3b0-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhapi-0.0.3b0.tar.gz
  • Upload date:
  • Size: 32.0 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.3b0.tar.gz
Algorithm Hash digest
SHA256 97b73e60f1df25a13ca53b4997a0c8969b2dbf1ac5ca89a2fb1cfadad4ae3c67
MD5 30458ecdb0978a535bef50b2b7bd7c32
BLAKE2b-256 ab5592dddde312e731335ae1829e707be24fdbf63214d8526b25dd0dad43cf28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhapi-0.0.3b0-py3-none-any.whl
  • Upload date:
  • Size: 36.5 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.3b0-py3-none-any.whl
Algorithm Hash digest
SHA256 108847e8b8d375b3f4bab8c876c858f7e8cf28ce6bc339cc043b7d46b6376e07
MD5 48d292ebb1d7010c7d71ce329303b328
BLAKE2b-256 47aee9a2d2b046e53a5ee01b9a348aeb619650c684c61e491780ff0cae1b141b

See more details on using hashes here.

Supported by

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