LineNodePath

I don’t know beans about this class, but it’s all in Python and fairly easy to read. It’s clear that:

l.drawLines([[p1,p2],[p2,p3],[p3,p4],[p4,p1]])

will draw a line from p1 to p2, then from p2 to p3, then from p3 to p4, and then from p4 to p1. You could have achieved the same thing with less effort using:

l.drawLines([[p1,p2,p3,p4,p1]])

The reason that you only see a single line instead of a box is that you have aligned your points in the X-Y plane, but render2d is aligned in the X-Z plane, so you are looking at your box edge-on. Maybe you meant to define your points like this instead:

p1 = (-.5,0,-.5)
p2 = (-.5,0,.5)
p3 = (.5,0,.5)
p4 = (.5,0,-.5)

David