Is this sort of what you're looking for?
Code:// spline curve between random vertices
int nodeCount = 60;
float nodeSize = 6.0;
float padding = 50.0;
Vertex3D[] v = new Vertex3D[nodeCount];
void setup(){
size(500, 500, P3D);
background(255);
lights();
// argument changes spline interpolation
curveTightness(0);
// calc random vertices
for (int i=0; i<v.length; i++){
v[i] = new Vertex3D(random(padding, width-padding), random(padding, height-padding), random(-padding, padding));
}
// draw spline curve
noFill();
stroke(0);
beginShape();
curve(v[0].x, v[0].y, v[0].z, v[0].x, v[0].y, v[0].z, v[1].x, v[1].y, v[1].z, v[2].x, v[2].y, v[2].z);
for (int i=0; i<v.length-3; i++){
curve(v[i].x, v[i].y, v[i].z, v[i+1].x, v[i+1].y, v[i+1].z, v[i+2].x, v[i+2].y, v[i+2].z, v[i+3].x, v[i+3].y, v[i+3].z);
}
curve(v[v.length-3].x, v[v.length-3].y, v[v.length-3].z, v[v.length-2].x, v[v.length-2].y, v[v.length-2].z, v[v.length-1].x, v[v.length-1].y, v[v.length-1].z, v[v.length-1].x, v[v.length-1].y, v[v.length-1].z);
// draw nodes
noStroke();
for (int i=0; i<v.length; i++){
pushMatrix();
translate(v[i].x, v[i].y, v[i].z);
fill(100);
if (i==0 || i == v.length-1){
fill(255, 75, 0);
}
box(nodeSize, nodeSize, nodeSize);
popMatrix();
}
}
class Vertex3D{
float x, y, z;
Vertex3D(){
}
Vertex3D(float x, float y, float z){
this.x = x;
this.y = y;
this.z = z;
}
}