Traceback (most recent call last):
  File "/workspace/sites/cj-engineering-portfolio/project-files/conveyor-changeover/run.py", line 54, in <module>
    if __name__=='__main__':main()
                            ^^^^^^
  File "/workspace/sites/cj-engineering-portfolio/project-files/conveyor-changeover/run.py", line 24, in main
    render_cad({name:p for name,p in parts.items() if name!='belt_envelope'},out/'assembly.png','Indexed guides - 120 mm carton setting')
  File "/workspace/sites/cj-engineering-portfolio/project-files/conveyor-changeover/engineering_util.py", line 33, in render_cad
    poly=Poly3DCollection(tris,facecolors=col,edgecolors='none',linewidths=0,antialiased=False,alpha=1,shade=True,lightsource=matplotlib.colors.LightSource(azdeg=320,altdeg=35));ax.add_collection3d(poly)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/site-packages/mpl_toolkits/mplot3d/art3d.py", line 1022, in __init__
    kwargs['edgecolors'] = _shade_colors(
                           ^^^^^^^^^^^^^^
  File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/site-packages/mpl_toolkits/mplot3d/art3d.py", line 1422, in _shade_colors
    colors = norm(shade)[:, np.newaxis] * color
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
  File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/site-packages/numpy/ma/core.py", line 4354, in __mul__
    return multiply(self, other)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/site-packages/numpy/ma/core.py", line 1071, in __call__
    result = self.f(da, db, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: operands could not be broadcast together with shapes (12,1) (0,4) 
