Car Assembly Simulator
- 8 Devlogs
- 45 Total hours
hooray! roblox doesn’t complain any more!
headless blender kinda works now, but the normals are broken in a different way?! the converter now streams in keyword data and imports it to blender via wavefront, while applying a decimate + data transfer + solidify LoD pipeline, except the solidify breaks baked normals??
small problem: Roblox really really really doesn’t like me trying to import a >200,000 tri mesh, so i had to add a decimation step to the mesher. i tried multiple open source algorithms for decimation, but none of them were able to preserve enough fidelity, and others completely broke (see the attached screenshot). plan B is to write a headless blender driver to do the decimation for me :(
yes, i’m going to use roblox
why? putting microtransactions in a menial game sounds really funny to me
no, i have absolutely zero clue about:
materials work now! the material type (steel, plastic, etc.) is automatically detected from the plasticity of each part because LS-DYNA doesn’t encode material names. also, i had to switch to manual gLTF generation to add the material properties and joint metadata.
however, when i was adding the joint detection, i found that inter-part constraints may constrain an arbitrary number of nodes in arbitrary locations, which makes it impossible to map the entire assembly of parts to specific screws in a way that makes sense for a game. instead, i think i’m going to use an absolute grid system for part placement, and just take the part positioning for granted
the LS-DYNA keyword convert is almost done after writing an algorithm to offset & thicken *ELEMENT_SHELL to the correct thickness! i just need to implement material and mate copying!
yay! all of the geometry exports cleanly now, and in one assembly file! to implement this, i first process each part by fixing broken geometry, triangulating quads/n-gons, and merging its 1000’s of finite elements/shells into one manifold. then, i insert the mesh into a glTF scene at the correct location, and it works!
i had this incredibly funny idea for a puzzle game: all of the parts for a car/computer/(other complex mechanical assembly) are dumped in front of the player, who must assemble [that thing] from scratch.
i searched online for high-fidelity full-assembly CAD of a car. i eventually found GMU CCSA’s public library of scanned cars (with internals!). unfortunately, all of the files use a weird ahh format called LS-DYNA that’s typically used for finite element analysis. obviously the only logical solution is to reverse engineer the file format because too bad it lacks basically any documentation :(.
so far i’ve figured out how to export individual parts, so long as the part consists exclusively of non-degenerate hexahedrons