Small personal project exploring metal deformation sims via Python. The idea is to get comfortable with stochastic generation of data and to use it predictively.
We can outline the general goals of the project in stages:
- We create our tool objects, our mesh, and our deformation function (which will be Gaussian for simplicity). We then put together a simple visualization method (via
matplotlib
) to visually verify our work. We then set up randomization to generate data. Then we can store the tools used, their order of use (which shouldn't matter, intuitively, but hey why not), and the resulting deformation patterns in our grid. Next we work with test data retrieval and interpretation -- this one's pretty simple, but fundamental to our work since we're pursuing ML training - We start working with established ML techniques for the forward problem; the question we'd like to answer is "Can I predict deformation patterns given the machining tools used and their configurations?" (Currently, we're here)
- The big goal of this is to address the inverse problem: Given the deformation pattern on a piece of sheet metal, can we reconstruct the proces which shaped it?
- If successful, will work on mesh definition (input for the inverse problem) via LIDAR or photogrammetric approaches. This would give a direct 3D representation of the target deformation pattern which can be adapted to our 2D input array. This might be a valid approach toward reverse engineering. We'll certainly need to define more tools and approaches so we can tackle this problem.
Currently, my approach is limited by 2-dimensionality: the system presently requires (demands) that our data starts as a 2D grid, meaning we can't fold over metal or create 3D shapes yet. More concretely, we must pass a "horizontal plane test" in 3D which is analogous to the horizontal line test in 2D. I'll address this later, after establishing my strategies in 2D.