Nodes/ComfyUI-3D-MeshTool/array1 to camposes
ComfyUI Node

array1 to camposes

Turn typed numbers into real camera orbits

By 807502278·Created 2 years ago·Updated 2 years ago· 23
array1 to camposes
  • array_input
  • CamPoses

The whole point of this pack's array1 generators is to produce camera orbits without hand-placing cameras, and array1 to camposes is the node that finishes the job. It takes a list of numbers and converts them into the ORBIT_CAMPOSES format that ComfyUI-3D-Pack's render/preview nodes understand - the format that actually moves a virtual camera around a model. This is the bridge from "a list of numbers" to "a camera sweep".

The input is array_input (a LIST), and the output is CamPoses (an ORBIT_CAMPOSES). Each row of the input must be six values, in this order (straight from the source):

[orbit radius, elevation, azimuth, center X, center Y, center Z]

So a row like [5, 30, 0, 0, 0, 0] is a camera 5 units out, 30° up, at azimuth 0, orbiting the origin. Build several of those rows - which is exactly what array1 end increment and friends are for - and you've got a turntable.

Two things to watch. First, the validation: the node requires a 2D array with 6 columns. Feed it anything else and it prints a warning and returns a single default camera [5, 0, 0, 0, 0, 0] instead of crashing. Forgiving, but that means a malformed input silently gives you one boring camera - check the console when your render has no sweep. Second, the README says this wants a "6xNx3" array, but the code actually expects N rows × 6 columns. Trust the code: 2D, six values per row.

You'll build the input in stages: generate an elevation list with array1 end increment, convert it to angles with array1 number to angle if you need the −180..180 convention, transpose or append it into full six-value rows, and hand the result here. It's the canonical multi-view pipeline for this pack, and it's the reason the array nodes exist at all.

Also know this: ORBIT_CAMPOSES is a type registered by ComfyUI-3D-Pack, not by this pack. If you install 3D-MeshTool alone and the output socket won't connect to anything, the 3D pack is missing - that's the dependency that makes these types real.

Install via ComfyUI Manager (search "ComfyUI-3D-MeshTool") and restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/807502278/ComfyUI-3D-MeshTool
cd ComfyUI-3D-MeshTool
pip install -r requirements.txt   # kiui, xatlas, pyfqmr, plyfile

One author, one pack, and the usual caveat: node renames between releases turn old instances red in saved workflows - recreate and reconnect. And remember, a camera sweep that silently collapses to one default camera means your array was malformed, not that rendering broke.

Category3D_MeshTool/Convert

Inputs (1)

NameTypeDefaultDescription
array_inputLIST

Outputs (1)

NameTypeDescription
CamPosesORBIT_CAMPOSES