So I had applied for GSoC, and wasn’t selected. I had two project ideas - making a motor design workflow and a materials database.
I still want to contribute, and was asked to open a thread here. I was stressed out with a lot of stuff this month, and was also learning about ricing my Linux, so I just got free. I even missed the GSoC bonding period :v, but I’ll try and go in the same spirit. I’ll start with making a materials database since that seems simpler to start with, and I won’t get burned out quickly. Maybe I’ll start the other one too soon, depending on my mood.
So the plan is to continue with the plan from https://wiki.freecad.org/Material#Material_Database and store the data in an SQLite DB. I was thinking of using MySQL and hosting the database, but SQLite seems like a good option too. Well, even plaintext can work here if we go by the UNIX philosophy, like the current .FCMat files. But then more like a single file, because we have to organize the materials list.
Apparently we cannot use the data from MatWeb, which is listed in https://wiki.freecad.org/Material#Tools because of their license. I will have to find the data from other sources, such as Wikipedia for now.
I’m assuming the list will have a simple list for each category. For example, Aluminium will have alloys 6061, 7075, etc. and for Carbon Fiber, we’ll have CFRC, CFRP 30%, CFRP 70% etc. or whatever’s common. This is in contrast to MatWeb’s database, which lists all commercially available products, and it makes it hard for us to choose an exact value. We’ll just make it accurate enough for simulations, and the designer can fill in the actual values as they need it. The ordering could be done by using the Father property
When a material is applied to a part, it should have a different color or texture in the viewport for identification. Custom materials should also have textures, so it would be good to allow editing the material texture. According to the wiki this is done with the Coin3D color model.
For the values, depending on the material, we’ll have the structural values - Young’s Modulus, Ultimate and Yield Tensile Strength, Density. Specific Strength and Specific Stiffness will be examples of derived quantities. There’ll also be values for other stuff like electromagnetic and thermal properties, and also materials like Rubber, Ceramic etc. and whatever they have. We’ll also have an option to view the values in different units. We can certainly take some inspiration from Fusion360 here. I’m seeing a lot of ideas on the Wiki page too.
So that’s the project introduction thread. I’m supposing this interface will belong in the Part (and PartDesign) workbench? We’ll also require the data for the simulation workbenches like FEM and CFD. I’ll also have to see how to standardize the values for FEM/CFD use too. For example, the stiffness can be different in X, Y and Z.
I think most of this is understood in the Wiki page too, I was just mentioning it for the thread’s sake. Now I’ll just have to learn about getting started. I still haven’t explored the software on my own yet, but I plan to over the next few weeks alongside my Blender tutorials, making simple stuff.