Thursday, December 24, 2020

Version 1.4 - Universal Joint


The latest MOMDYN release is on the way, will be in the stores in the next day or so. The universal joint is the newest joint in the app, which creates a frame with rotations about two axes in an Euler sequence. You can see this in the graphic above, which consists of two universal joints, a rigid translation, and two rigid body boxes. Note the large angular displacements where you can observe the relatively slow oscillation about the vertical (Y) axis, and faster oscillation about the horizontal (X) axis. 

Besides the new joint, I did a whole lot of refactoring and bug fixing in this release. Added a whole lot of test coverage, so while this may not be the most feature-rich update, but I also hope it will be a lot smoother running and crash-free. I plan for this to be a trend; not too many new features going, but a lot of refinement to make the existing features work well. If there's anything you would like to see in upcoming versions, or anything that I'd royally screwed up, I would love to hear it!

 



Merry Christmas!

 Love, MOMDYN! And if you care for the sweet Christmas Music, check out the video of our Christmas tree on Youtube.


Its been a great couple of months for us, after officially releasing back in late September, we crossed the 1,000 download mark just a couple of weeks ago. We're planning a lot of cool stuff for the New Year, Just to name a few:

  • Improved docs and built-in tutorial
  • Change the colors of objects in the touch interface
  • Legends in the plots, and ability to manipulate
  • Document rendering
  • Kinematic constraints
What are you hoping to see?

Thursday, November 19, 2020

Version 1.2 - New 3-D Graphics

 

the latest update to MOMDYN should require little explanation, the diagram view has been updated to include a 3-D rendering. You can toggle between this new rendering and the previous 2-D drawing using the button labeled with either a [2] or [3] on the top line. In the 3-D view, tap and drag to translate the view, double-tap and drag to rotate.


The update is expected to be live in both the App Store and Google Play in a matter of hours. In the mean time, check out this video of the graphics in action.


For any Python and Kivy folks that are interested, these graphics are generated using a fork of the kivy3dgui library. There were only a few minor changes; I used a different glsl shader than the default because the initial one crashed on iPhone. Also a few minor syntax bugs that popped up, I suspect just a difference in Python version from what was used to create kivy3dgui versus what I'm using.

Other than that, the interface and simulation engine are all the same as before. 


Friday, September 25, 2020

New Tutorials

Along with the new release of MOMDYN onto the App Store and Play Store, I have created two new tutorials, for a simple pendulum, and a mass-spring-damper. These will be permanent pages (not blog posts), and I'm going to incorporate them and their corresponding Youtube videos directly into the app. Check out the videos below, and go download the app! (or join the beta, its free, just send me an email).




Wednesday, September 16, 2020

Version 1.0 ... Live in the App Store!

Guess what? As of today, the 16th of September, 2020, MOMDYN is available for the public on the iOS App Store! Check out that screenshot below, first (and only) result for multibody dynamics, how's that for fulfilling a life goal? 



I'm expecting to go live on the Play store in the next few days as well, then I'll have two buttons like a proper app. You'll see I'm charging $4.99, why? Because I can. The beta will stay free though, a willing tester will always be worth more to me than 5 bucks. If you're interested in joining the beta test, send me an email.

This is a culmination of almost a year of work for me, first while on sabbatical, and more recently in the early morning and late at night when I'm not working my regular job. I'm pretty excited to give it a run out in the wild west of mobile apps. Wish me luck!

Friday, September 4, 2020

What's new in version 0.10?

 Version 0.10 is up on Test Flight for iOS beta testers, and the Android version will be following shortly. This will be the *last* beta version before I release to the public on the App stores! This version contains all the basic features that I want for MOMDYN, and while I expect to keep on improving, I'm excited to finally release it into the wild. A little clip of the most recent version in action below. 



What you'll see in this latest version:

  • Rigid Body Cylinder
  • Rigid Body Cone
  • Tabbed interface update
The cylinder and cone are very similar to the existing Rigid Body Box interface, replacing the two width and height arguments with a single radius argument. I had to do a bit of work to figure out how to make a nice wireframe graphic for these, which you can see some of at this Google Colaboratory notebook. A screenshot of that notebook is below, I used IPywidgets and the interact function to create the slider bars which rotate the cylinder and cone in the plot (note, you have to visit the link to use the interactions).


The new tabbed interface is purely aesthetic, I think putting them at the bottom better aligns with the visual qualities of a lot of modern iOS and Android apps. Also a few subtle changes to color themes, and made the report tabs all fit on a single line.

As I near release, I'll make note that I'm still looking for testers. I'll be doing this myself for the next couple of weeks, tapping my way through all the menus I can think of and seeing what breaks. Would like to have a few more folks to cover my blind spots. Besides that, I'm interested in what the users really want for future releases. I have my own ideas (more bodies and joints, 3-D diagram, ...), but the product really should be community driven. If you're interested, send me an email at mobilemultibodydynamics@gmail.com, and I'll add you to the list, its free, all I ask is you send me good useful feedback.

Monday, August 31, 2020

Spinning T-Handle

Just posted a new video to Youtube showing some of the new features in an upcoming MOMDYN update. Here I show combining a rigid cylinder and box to create a body similar to the T-handle from a famous video taken on the space station. Basically shows if you take a T shaped object and rotate it about its center axis, it is unstable. This is especially apparent in the zero gravity setting.


Video linked below. I'll have the beta app update in the next few days with the new cylinder and cone bodies, and some aesthetic updates (few last kinks to work out). 



Thursday, August 6, 2020

Feature Showcase - Free Motion Joint


In today's episode I demonstrate how to use MOMDYN to create a free motion joint, sometimes called a 6-degree-of-freedom (6-DOF) joint. This represents the motion of an object (any object) as it moves freely through the air; say, for example, my iPhone when I throw it across the room.

That is exactly what I did in a video that I created to demonstrate the new feature, which is embedded after the jump. I also plot some of the data in a notebook that can be accessed in Google Colaboratory. I hope you will be interested in experimenting in that notebook, and maybe recreating some of it yourself (just make sure your phone lands on a soft spot). 

For more information on how to implement the new feature in your own model, keep reading.

Tuesday, July 21, 2020

What's new in version 0.9?

New MOMDYN version will be out for beta testing in the next few days. Version 0.9 will include these new features:
  • Planar joint (two translational states, one rotational)
  • Free motion joint (six degrees of freedom)
  • Playback speed setting
  • Approximate size setting
The first two are what I'll call the motion joints, used for rigid body motions with both translation and rotation. I used the free motion joint to generate the flying box at the right, similar to the spinning box example I posted previously, but now with 3-D translational dynamics. With quaternions!

The second two are tied to the visualization, but not to the model itself. Playback speed will allow you to slow down or speed up the animation, and approximate size dictates the size of fonts, thickness of lines, etc.

Tuesday, June 16, 2020

Feature Showcase - External Force

In version 0.8 I have added external and actuated forces and moments. What took me so long, you ask? I don't know, I guess it seemed like low hanging fruit, so I didn't really prioritize it, but here they are.

I added a video to the MOMDYN Youtube channel demonstrating an external force to create a form of the classic Duffing oscillator. The video doesn't cover much of the theory, as its more focused on using the app, but to suffice to say you can get some wild and chaotic dynamics out of a seemingly simple system. Read on after the jump for more discussion of the dynamics you see in the video.

Thursday, June 11, 2020

Whats new in version 0.8?

I'm back in business! Had a little hard drive issue on the laptop I use to build and distribute, so I've been working on the code but hadn't been able to update the beta test release for a little while. Thats all resolved now though, and the updated version should be live in the next day or so. Four new load types are included:

  • External Force
  • Actuated Force
  • External Moment
  • Actuated Moment

Tuesday, June 9, 2020

Feature Showcase - Model Export

From a prior entry in the blog, version 0.7 includes the ability to export data and scripts from the app. These can be shared with your peers, or transferred to a desktop environment to do more advanced analysis. I added a quick video at the link below with a demonstration of this in action.



Sunday, May 10, 2020

Tutorial video - revolute and prismatic joints


I uploaded a video to Youtube which shows new joint mechanics that have been added in the last couple of releases. Joints in MOMDYN combine attributes of various features of the classic interface. A revolute joint creates a new frame along with the associated symbolic constants and time varying properties. A prismatic joint creates a vector and point. Each can include spring-damper physics, which is included in the demo. 


Saturday, May 9, 2020

What's new in version 0.7?

The newest MOMDYN beta release is the first to include the capability to export data and code from the model to share with colleagues, or to transfer your analysis to a desktop environment. From the menu dialog, there is now an export button, in which there are three options.
  • Model : used to share and import to the MOMDYN app
  • Simulation : tabular data for each state variable
  • Python : source code that can be executed on a desktop
On iOS, open the “Files” app and navigate to “On My iPhone/momdyn/momdyn/Documents” to view exported files. To import another user’s model, place the momdyn_model.py file into your “On My iPhone/momdyn/momdyn/user” folder, then it will be visible in the import menu on the welcome screen.

Saturday, April 18, 2020

What's new in version 0.6?


Just released a new version the other day for beta testers. The new features you'll see are:

The revolute joint is, of course, a very common component in multibody software, mathematically analogous to a hinge. You can define a rotation axis either as one of your basis vectors, or specify components in multiple basis vectors. The example at the right shows a rotation about the vector 0.707 i + 0.707 k.

Spring graphics now use vector drawing commands, instead of the previous implementation where they were from pre-generated .png images. Should look a bit cleaner, and possibly have a little lower rendering overhead. 

Sunday, March 22, 2020

Feature Showcase - Rigid Body Box

SpinningBox Example
As I mentioned in the blog last week, MOMDYN now includes its first rigid body component, the box. The idea is to create a rectangular prism with uniform density, length, width, and height dimensions. I included the example model "SpinningBox" in the import menu, which is the same as the GIF on this page.

The SpinningBox example is a nice demonstration of dynamic stability of rigid bodies. I can recall my professor showing this with a text book. Grab a book, you can experiment at home. Try holding the book by its two bottom corners, then throw it upwards and try to get it to spin around its horizontal (left-to-right). axis. Chances are, it will start to tumble rather than spin about the single axis. On the other hand, try flipping the book about its other two axes and they should not tumble. A quick explanation of this is here.

In the example, the body y-axis (ey) is set to have the intermediate moment of inertia, and is therefore unstable. The simulation is initiated with a 2.0 rad/sec initial angular velocity about ey, and a smaller rate of 0.2 rad/sec about the body x-axis (ex). You can see the instability, or tumbling, in the GIF; the ey axis starts pointing up and to the left, then the body flips after about a half rotation until ey points down and to the right. After another 2 rotations, the ey axis flips back to its original position.

Suggest experimenting with the example, for instance:
  • In the generalized speeds menu, click the editbutton, make ω_x large and ω_y small
  • In the rigid body box menu, click the edit button, change length, width, or height dimensions
Enjoy.

Monday, March 16, 2020

Whats new in version 0.5?

As of yesterday (3/15) I have submitted a new version of momdyn to App Store Connect for the Test Flight beta, and to the Google Play Store for alpha testing. Thats right, finally compiled a version for Android! Besides that, here is a quick summary of whats new in this release:
  • New solvers, including with adaptive step sizing
  • New rigid body box
  • Simulation status is displayed with completion ratio and time step
  • Report view is split into pages for each component type

Monday, January 13, 2020

Mass-spring-damper

Mass-Spring-Damper Simulation

Introduction 


The mass-spring-damper problem is the simplest problem used in analysis of linear vibration. This example shows how to use the "classic" interface in MOMDYN to define the kinematics of the oscillator, and simulate its free vibration response.


Procedure

Using the classic interface, you will specify system constants (mass, stiffness, damping, and equilibrium length of the spring), a single generalized coordinate (vertical position), and use these to create a vector from the origin to the mass, a point, a particle, and the spring-damper. At completion, you will simulate the oscillating mass and visualize it's dynamics


Saturday, January 11, 2020

Simple Pendulum

Introduction

The single-degree-of-freedom pendulum problem is likely the most common problem used to teach principles of mechanical engineering dynamics. This example shows how to use the "classic" interface in MOMDYN to define the kinematics of the pendulum problem, and simulate its response to a specified initial angle and angular velocity condition.