Boning Li

LiBoNing

About Me

I build computational systems and tools that make them. Simulation, Generative systems, and Emergence.

Connect

LOCATION
New York City, United States

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Does COP nodes not have a python api? Aug. 7, 2026, 11:17 a.m.

Yes, Copernicus has a Python API. You can read a COP’s cooked image as a hou.ImageLayer:

import hou
import numpy as np

cop = hou.node("/obj/copnet1/file1")
layer = cop.layer()

w, h = layer.bufferResolution()
channels = layer.channelCount()
raw = layer.allBufferElements(
    hou.imageLayerStorageType.Float32, channels
)
pixels = np.frombuffer(raw, np.float32).reshape(h, w, channels)

Use layerAtFrame(frame) for another frame. There’s also a Python Snippet COP for processing layers inside a COP network.
If your MCP server runs outside Houdini, the main issue is that the hou calls still need to execute inside the Houdini process/on its main thread.

LUTs in copernicus? April 22, 2026, 5:54 p.m.

Good point.Had the same need, so I built a small HDA that handles OCIO transforms plus 1D/3D LUT files.

Added it to my MotionCOPs toolkit, free to use:
https://github.com/Boning1011/motion-cops/blob/main/otls/cop_boning.mc_lut_apply.1.0.hdalc [github.com]

How to add a user defined MaterialX compound in Solaris? Dec. 10, 2025, 1:06 p.m.

I found this in Sidefx's doc. There's a tool to convert the materialx file into a hda.
https://www.sidefx.com/docs/houdini/solaris/kug/materials.html#custom [www.sidefx.com]

That .mtlx source file is then post-processed by two other tools:

$HHP/mtlx2karma.py - outputs the karmaNodeGraph.json file necessary for Karma to render these shaders correctly; this should be added to HOUDINI_PATH or user preferences directory

$HHP/mtlx2hda.py - produces the user-facing output HDA, should be added to any otls folder on HOUDINI_PATH or user preferences directory