CDFAM Berlin 2024 · Berlin · 7–8 May 2024
Implicit Modeling that is user-friendly and expressive, without limiting flexibility
Abstract
Transcript
From the speaker’s corrected captions. Each timestamp opens the video at that moment.
Read the full transcript · 4,309 words
0:01 Hi everyone, it’s great to be here. For those who don’t know me, I’m Joseph Flynn, and I work at Altair. Prior to that I was a co-founder of a startup called Gen3D Limited, and before that I was an academic, associate professor at a UK university, but across all of those things design, computational design, and design for additive manufacturing has been a common theme.
0:24 So, to give you a quick overview of Altair, it’s very much a global company, and although it origins were primarily in simulation, it now has three pillars to the company, so: simulation, high performance computing, and then, in the purest possible sense, artificial intelligence and machine learning, and most importantly the convergence of those three things together.
0:46 Now, what I’m going to talk about today is based on this greatly simplified and somewhat idealistic view of how we’d like computational design to go. So ideally we want to specify the design space and the constraints very quickly, and also very well, because rubbish in is rubbish out. We then like the computational synthesis of the geometry to progress the design in a very meaningful way. We want to get as close as possible to the finalized model that goes for manufacturer. Ultimately there’s an inevitable human intervention at the end to get that final percentage of completion, to get your manufacturable model. We’d like this again to be easy and minimal, and of course it’s critical other talks have alluded to this you must go to final validation before you… you don’t just take the output and throw it straight into the machine, you must validate.
1:45 However, things aren’t always this great. If we don’t have enough flexibility and or capability in the computational design part of the workflow, then we don’t really advance the design in a meaningful way towards completion, and this can be a real blocker. The knock on effect of this is we leave an awful lot to do in recovering that geometry to get it to the point where it is manufacturable. We can encounter another block here, especially if we’ve leaned too heavily on computational design and we haven’t thought about providing those tools that actually get you to the finish line of a manufacturable component. Now, if you don’t have the tools to dig yourself out of this hole, you are ultimately stuck, and when you’re stuck the likely knock on effect is that you need to bring in other software, other capabilities, to get yourself out of that problem.
2:40 And so, ultimately, what we want to make sure we’re not doing is taking freedom of expression away from the human designer, and we definitely, definitely don’t want to get them stuck, because we’ve encouraged them down an incomplete workflow that’s heavily leveraging computational design. So, so again, if we look at it from a very high level, we don’t want to have this hidden cost to our customers and to our users, where they’re not just buying one piece of software, they’re actually having to buy all the other things that help them get to a completed design.
3:15 So, ultimately I think this is my personal view I think it’s about balance. We absolutely want to leverage the computer to the greatest extent possible. We can have automation, and through automation we can have speed. If we have speed, then we have more time for exploration, and overall I would say that’s a very good thing. However, this needs to be traded off with making sure that overall oversight is still in the hands of the human designer. They’re able to operate flexibly alongside the computational design, and something that humans are still particularly good at, as opposed to machines, is interpretation. So, where is that design going? I can see it’s trying to do this, but it didn’t quite get there filling in those blanks that bring you to a complete design when you have possibly 95% of what looks like a complete design. And we want the human to feel like they can be expressive, and ultimately they need to have that control on that final refinement.
4:18 So what I’m going to do is just give you some example workflows from Altair Inspire, and what I’d encourage you to think about as we go through this is not just what’s happening on the screen, but the way in which we’re trying to design our tools to allow the user to operate flexibly and be expressive, whilst also leveraging the power of the computer for computational design.
4:35 So the first of these comes from the field of stochastic lce design. So these are particularly popular in, for example, biomedical applications, where yes, there are structural load cases to consider, but also things like biocompatibility, inside the body tissue in growth, and things like that for medical implants. And I’m going to show a video, and I’m going to talk over what’s happening here.
5:06 So we start the design with a 3MF file (there you go, Duann) which we’ve imported here of part of a human bone this is a… a femur in this case. I… I will say I’m not an implant designer, this is illustrative. So we can optionally convert this into subdivision surface, which makes it editable CAD, but you absolutely don’t have to. And then from here we’re going to go into the implicit modeling capability of Altair Inspire and click the stochastic ltis panel.
5:29 So the thing that pops up automatically is actually a load of points that have been distributed according to a rule, and those points are connected by edges, again according to a rule. So we can edit the way the points are distributed and the number of those points. We can have them randomly distributed, or with a minimum degree of separation between them, and then we have different rules for how those are connected as well. So we’re just going through different densities of points here, and you can see that filling out the inside of the model. And then, when it comes to the edges, we can do that by how many of the nearest neighbors you want to connect each point to, or you can do it by other means, such as the Delone triangulation, which gives you quite nice elements throughout the model.
6:17 Now, you’ll see that also produces beams that travel outside of the geometry, and what I’m going to tell you now is that’s okay, because what we do next is offer all of that free them back to the user to produce precisely what they want, and we call these Point Edge Set filters. So we have points and edges that form a Point Edge Set, and then we have filters that you can keep layering on top to decide which points and which edges are included. So by using a bounding body filter we can remove any of those edges that were’re traveling externally to the model, and then we can see, as we keep hitting the plus button, we’re adding more and more filters. The more… the order of these filters is significant, and you can change the order and you can tune each of the parameters.
7:01 So what we’re doing here, to try and mimic some of what goes on inside the bone structure in a real human bone, is we’re limiting the angle that some of these edges can form with respect to some reference. So as we go towards the bottom of the… the implant, they tend to be sort of 45° to vertical, and as you move up towards the top of the implant they tend to be predominantly horizontal or vertical and not much in between. Now, we’re doing that with what we and others call field driven design. So what we’re doing is: saying, based on the height from the top to the bottom of the model, change the angle of the edges that you will permit to carry on existing in the part. And you can see, as we scroll up, a smooth transition between those effects. So with field driven design, at every point in space you can control a whole host of parameters in a way that you probably couldn’t do before imp implicit modeling.
7:52 What we do now is start thinking about thickening this into a latice it was just… it had infinitely thin edges before. So we’re not unique in this, this is generally the… the approach taken, and, but we’re also going to put a field driven effect onto this. So, as these beams get closer to the surface of the model they get thicker, and as they move deeper into the model they get thinner. So we create a field which represents the distance into the model, and we set the beam diameter according to the value of that field, and you can see that gradient now appearing there in this section view.
8:30 We can we need an outer shell on this as well, which is something we can very straightforwardly add, and again this doesn’t have the same thickness in fact it changes all over the place in the model. Now, we can control this in lots of different ways, but for this video we’ve just shown it controlled between two vertical planes that you can see here, so you have a thicker shell thickness at the top, and that smoothly varies down to a thinner shell thickness at the bottom, and it’s all completely interactive you can do this with the mouse and keyboard.
8:54 And the point here is you keep layering these effects, much like editing digital photographs I want it to be black and white, I want it to be a bit darker here, I want to change the focus level there. It’s the same with the way we’re working here: you keep layering your effects until you have precisely what you want. Now, in the interest of time, I may skip to the end of this video, which shows this being passed directly into the Altair Inspire rendering scene, which is coupled very tightly with the geometry we, we share memory, in fact so we can render and design at the same time, it’s very fast. But the end game is that you produce images that look like this, and this shows a section view of the implant.
9:41 So just to review that workflow: we have rules for distributing points, and there’s lots of ways you can do that. We have rules for how you connect those points with edges, and then we’re encouraging the user to layer these effects to retain exactly the edges and the points that they want. And then we can also have field driven effects on wall thicknesses or lce beam diameter, etc., and there is really no limit to how much you can achieve when you approach it with this field driven design approach. Fields can be driven from B features, from models as a whole, mesh geometry, subdivision surfaces, or even and you’ll see this later point clouds, which is actually becoming very powerful.
10:23 So that’s how you can do it in the guey, but sometimes we get really strange requests. We had an exploratory piece of work where someone wanted something that we hadn’t really encountered before they were talking about acetabular cups, and this is a sort of hip implant, if you haven’t seen one of these before, and this lce structure here is designed to encourage, again, tissue in growth, so that the body accepts the implant. But they had some strange requirements: firstly, they wanted to generate these pretty much automatically, and they also want… wanted to drive it with parameters that made sense to their domain, and those things were things like pore size, or open area of the sorts of pores available on the surface, the strut or beam thickness, and then the overall dimensions. That’s all they wanted to work with. They don’t have a deep personal relationship with a particular ltis type per se, they just want it to be a good implant.
11:21 So they’re kind of doing the inverse design in this case, and we’re quite fortunate and inspiring that we have a very comprehensive Python API, so when something isn’t obviously possible with mouse clicks and keyboard entry it can be scripted just with normal Python code. Everything that’s available in the user interface can be hooked into as a Python script. And they threw… a the conversation was quite interesting they… we had a discussion about whether we could control the degree of order or randomness in these lates, and and then have that everything else generated automatically, and the answer is yes, you can. So here are some examples where we’re going from highly ordered to much more random, all run from the same script, and then we have different target pore sizes for these implants here, again all run from the same Python script. So, yeah, it’s having that scripting ability is really nice for getting that extra layer of flexibility for the user.
12:17 So I’m going to change Tac now, and I’m going to talk about topology optimization. Al is known for a few things, but it’s definitely known for topology optimization, and across the product range there’s a wide range of solvers, and importantly there’s a wide range of manufacturing constraints and boundary conditions, and this is, you know, it’s really critical if you’re going to have a manufacturable design to be able to select from the right solver, the right constraints. Usually we end up wrapping these in what we call polyb surfaces, this is a subdivision surface technology, and as the previous talk mentioned, it gives you editable CAD. It’s not parametric CAD in the traditional sense, but it is editable CAD, and you’ll see that in action in a minute.
13:01 I’m going to show you how some workflows where we use implicit modeling alongside a traditional topology optimization workflow, in quite interesting ways, and the theme here, as you’ll see in this video this is the original component, this has actually come from outside of Altair, we’re working with some… some of geometry here and this is a fairly degenerate topology optimization case. It’s… it’s done reasonably well, you can see the features, you can see the features emerging, but there are certainly some things that we’d like to improve there. You can see these pores have only just opened up they should either be there meaningfully, or they should probably not be there at all.
13:41 Actually recovering this geometry we call it geometry recovery recovering this into a manufacturable model can be a bit of a painful process, but thankfully implicit modeling mak some of this a lot easier, in my view. So what we’re going to do is convert this mesh model into an implicit body, and that just takes a second. We select it from the… the model browser, and it’s a little bit underwhelming at first, because it looks more or less as it did before the key difference is that it’s now in an implicit format, and we can do different things with that.
14:17 So, as I mentioned in the slide before, this is the sort of fast workflow that gets you something quite good quite quickly. So what we’re going to do is just apply a global offset to that model, to build out a bit of thickness, to make some of those very thin, almost degenerate members, a bit more reassuring. There’s then the possibility to do all kinds of smoothing on that geometry very quickly in implicit modeling, because all of this is being computed on the GPU, it’s very, very fast, and you’ll see this model turn into a much smoother version of itself. And to some people this workflow is except able, and it’s all they want. I don’t progress this all the way to the final model in the interest of time, the next example I show will go a lot further, but you could, you know, happily progress from this point out to the final model.
15:14 So I think the final step in this video is just reintroducing some of the original keep geometry the geometry that should be preserved, the bearing surfaces and mounting points and also making sure that no material is moving outside of the volume of the original object, it all has to exist in that design space. So, making sure there’s a nice hard trim to that, so we don’t get any unwanted collisions or interference.
15:40 I’m now going to show you another workflow which is slower, I will grant you, but much more controlled, and we’re going to leverage point clouds, which is something we can use all over the product. So we’ll start from a similar position, this is the same model, and we’re going to do two things: we’re going to offset like we did before, but we’re going to do that locally, based on an amount specified at each point in a point cloud, and we can… we can do this here. So I’m creating the Point Cloud here, just so it exists at the right point in history all of our implicit modeling is history driven, so you can roll backwards and forwards in time. So we create the Point Cloud so it’s available for use.
16:23 I’m back in the offset tool here, and you can see there’s no one good global offset value that suddenly makes this brilliant. What we want to do is locally determine where we’re going to offset, and what I’m really doing here is not trying to get the final design, but rebuild the topology so that it exhibits all of the features more in a more obvious way, and say yes, that is the topology I want, and then we’ll go further from there to move it towards a manufacturable geometry.
16:52 So I spend the video up just a little bit here in the interest of time, but this is just me working in the software as is. So as I place points I’m also specifying how much I’d like to offset by, in that location between points it’s interpolating that amount. We have lots of different ways of interpolating, you can do it based on your nearest neighbor, or you can have smoother interpolations based on the distance to your nearest points and the influence that each one would have.
17:19 So, after I’ve placed enough points to reconstruct the topology that I’d like to proceed with again, this is focusing on the fact that often geometry is degenerate, and you need to be able to do something about it you can see, as I’m clicking through, I’m rebuilding this sort of cross brace member that became quite degenerate, making sure that Paws don’t close up. And I think as I complete this final cross brace here, I’ve decided that yes, that’s enough now, I’ve got the topology in a meaningful way.
17:55 And now I’m going to move to a different tool which is called morph. So morph is an interpolation so if you have shape A and shape B, it can give you some variation between those two things using 3D interpolation of the geometry, and that’s something that’s quite straightforward to do with implicit modeling. But again, I’m going to morph locally, so as I put down points in a new Point Cloud, I’m saying whether I want it to be more like the original geomet R sharp features, thicker, or more like the thinner geometry that I just reconstructed the topology for.
18:34 So this is me just getting the point cloud ready to go. We open the morph tool, and just to sort of give you an idea of how morphing works, I put it to, I think, 0% first so 0% is exactly like the original model, and 100% is exactly like the rebuilt topology from the previous step, and I can have, you know, 25% or 75%, and anything in between, but there’s no one good global value. In most cases, what you want to be able to say is: here I’d like it to be like the Fick model, and in another place I’d like it to be like the thin model. And, as I think back to yesterday’s presentation from BMW, if you want to retain a flat face, that’s fine you use the morph to say yes, I would like to retain the flat face in this region, but in other regions I’d like it to be more skeletal and thinned out.
19:29 So again, I’ll go through the process, you’ll see it sort of slightly sped up, just to keep the time say, I think it’s sped up by two times or something but yeah, this is me putting points in place to say do I want it to be locally like the thick model, or locally like the thin model, or anything in between. So the geometry will always exist within the bounds of those two extreme shapes of thick and thin, and it becomes really quite sculptural when you work this way, because you can move the points, you can change the degree of influence of that point, you can specify whether it should be anywhere between 0o and 100%, which represent the thick and thin model respectively, and you can start being very specific about which areas need to be a little bit thicker, or where you want to open up pors a little bit more, and you can see I’m recovering a lot more of the geometry from the original in that area just there, as I was introducing more points, and as I move those points around you can see the geometry updates live.
20:36 And so, whilst we’re absolutely celebrating computational design, and I’m a huge fan of that as a general philosophy, what we’re also trying to give is a… a level of craftsmanship and a level of control back to the user, so they can make it exactly how they want it. They’re not stuck with, well, it’s kind of what I wanted but not quite, but you know, maybe I’ll just have to live with that, and, you know, importantly, you’re not falling into that trap of having to globally thicken the model to make one of the members more discreet, and and a bit thicker at the cost of thickening everything else. Also, you can just do it locally.
21:14 So I think we got to the end of distributing points, I probably spent about 15 minutes just editing that to get it how I wanted. I’m sure with more practice it would be a bit faster, but you know, it’s not instant, it is there is an element of craft to it. And now, what I’m doing you’ll notice I’ve only been working on one side of that model as well, it’s a symmetric case, so I’m… I’m actually going to you’ll see later I’ll just remove one half and then mirror it across.
21:43 So part of this flexibility is allowing people to choose which geometry format is best for them as well. I don’t believe there is one king of geometry, I mean I love implicit modeling, I think it’s great, but it’s other people triangles, and other people love quads, and other people love subdivision surfaces. It’s not for us to say which is the best, being able to work across them is really important. So, in this model, we’ve had some implicit modeling well, started as a mesh, we’ve had some implicit modeling to rebuild the geometry we want it then went to a polyb surface, which is what you can see wrapped to the topology optimization, and now we’re introducing some parasolid B components, and that can all get joined together for the final model.
22:28 Now, again, this is for demonstration purposes only, you can take this as far as you want. I think the important message is that the flexibility is there to get precisely what you want, and offering users the tools to work along side and edit what is coming out of the computational design synthesis. So the last few bits of seconds of this video are just showing this in the rendered view I… I think we all know what a render looks like, I won’t waste your time with that, and I’ll move on to my closing statements.
23:03 So I think it’s really important, and I hope some of you agree, that it’s balancing automation with flexible and expressive design tools is ideal. We do want automation, speed, and exploration, that’s given to us by computational design, but we also still probably want overall control in the hands of the… the human designer, and we want that to be an agile, nice way to work. Flexibility comes in different forms, you can design your user interface to allow users to layer things more and more and more until they get what they want, or flexibility can come through custom scripting, and we found that both have been effective for our customers. Implicit geometry is great and really powerful, but I think it’s at its best when it’s a complement to some of the other geometry formats, and some of the workflows that come with that, and being able to happily go between them and have them working together is… is a great enabler for design generally.
24:06 So I’ve shown you topology reconstruction and many of the field driven effects that you can get in Inspire implicit modeling, and I’m going to stop there, because I’m conscious it’s lunchtime. Thank you for listening, please come and talk to me afterwards.
More from CDFAM Berlin 2024

Enhancing Computational Design with Real-Time Design Insights Using AI & Simulations
David Heiny · SimScale

Metal Additive Manufacturing in Power Electronics, Machines and Drives: Opportunities and Challenges
Nick Simpson · Bristol University

Computational Design and Machine Learning in MEP Systems for Large-Scale Architecture
Gabriel Garcia · Haskoning DHV

From Concept to Manufacturing: Evaluating Vision-Language Models for Engineering Design
Kristen Edwards · MIT

CDfAM at the Service of Emerging Technologies – Innovating with AM in Quantum Technologies
Manolis Papastavrou · Metamorphic





















