With some trial and error i made ChatGPT make its own XML-based format and here
is a simple dog (with a little artistic impression, since no orientation was
specified)
[…]
With some trial and error i made ChatGPT make its own XML-based format and here
is a simple dog (with a little artistic impression, since no orientation was
specified)
Ask it to use the LDraw format. At least there’s a chance it has been trained
on ldraw.org and it can produce something from the contents.
[…]
With some trial and error i made ChatGPT make its own XML-based format and here
is a simple dog (with a little artistic impression, since no orientation was
specified)
Ask it to use the LDraw format. At least there’s a chance it has been trained
on ldraw.org and it can produce something from the contents.
I'm not accustomed to the LDraw format, so i ran it through an online viewer
and this is what i got. I could be doing something wrong, so here is a link to
the LDraw file it produced: https://pastebin.com/UiDWrYj8
[…]
I'm not accustomed to the LDraw format, so i ran it through an online viewer
and this is what i got. I could be doing something wrong, so here is a link to
the LDraw file it produced: https://pastebin.com/UiDWrYj8
Ouch, it got the format wrong!
The LDraw format is line-based and hierarchical.
Each line starts with a number:
0: a comment, or a “meta-command” (it’s how extensions to the format are handled)
1: use another file (that’s the hierarchical part of the format)
2: a line
3: a triangle
4: a quadrangle
5: a conditional line
So:
— there’s some “primitives” (a 1x1 square, a “disc”, a “cylinder”…) that are
defined with lines of types 2 to 5
— parts are defined with lines using the primitives (type 1 lines) and lines
of types 2 to 5
— a model is mostly only type 1 lines referencing part files (or submodels…)
So, it mostly got the type 1 line format correct
(
1 colour x y z r1 r2 r3 r4 r5 r6 r7 r8 r9 file.dat
x y z are the coordinates in LDU (20 LDU = 1 stud, 24 LDU = 1 brick), Y points
down
the r… are the rotation matrix for the part, 1 0 0 0 1 0 0 0 1 = identity matrix,
the part is not rotated
)
except:
— it incremented the type for each line, ouch,
— it used “brick 1 x 1.dat” instead of “3005.dat”,
— it used colour 16, a special colour, for the 1x1 bricks,
— it didn’t get the coordinates well (the bricks are 0.4mm from each other),
— it used 3 dogs (3 last lines) to make a dog!?
— the dogs rotation matrices are missing values.
Obviously, it was most influenced by the LDraw part tracker where unofficial
(work-in-progress) parts are visible.
Removing the dogs, and moving the bricks a bit more apart, (so, “reading intent”)
it gives this: