Unity dynamic tooling and visualization

visualizations can help a lot when trying to develop new systems. Some times if you are doing simple articulation systems, or rigidbody joint systems you can visualize things in your head just fine. But if you want complex systems, doing a lot of kinematic modeling you will quickly need tools to help you think about all of the math needed. The picture above is a complex system with articulation bodies, rigidbodies, and many degrees of freedom. All of the debug values are configurable and dynamic. As you move the system around you will see all of the values update live. This is a huge help when seeing what the data driven system is doing behind the code.

This visual shows slow down zones on this crane, but I change the outline color based on types of slow down zone, the zones go red when disabled, blue when enabled, etc. The line in the middle is how much slow down will happen when you are at that height in the range. This rage is also built with an editor curve paramater and updates the visual location and color on the line as you change the slow down speed, curve, and locations.

This is an extension method that runs in editor that extends the rigidbody and articulationbody classes to show the center of mass on location and if it is set to automatic it will display green and if it is not automatic it will show up as yellow. All of these displays only show up when you have the object selected. I don’t want to dirty up the scene view.

To make life easier I made a Jira bug tool that makes it so bugs auto get reported, and testing can create bugs. Every bug gets a lot of info like all of the USB devices, the CPU, GPU, etc. But one large thing that gets added is the lesson info. The benefit this gives me is not only do I know what to test and where to find it, but I built this importer editor tool. So a dev can paste in a jira link and instantly load, login, select the lesson, and start debugging the issue after just one click.

This one doesn’t have a good picture, but the basic idea is making extra method calls from different default systems. This lets us do things like get the total mass of a complex jointed system, re-calculate connected body joint masses, pass in any child body and get the parent joint from the system. Basically these kinds of tools just make it so you can use the code in a way that you think of systems. The goal is to make developers as fast and efficient as possible. We built little things like this all over the place so instead of continuing to do that we can replace those tools with simple to use tools in a single location.

Next
Next

Support tools