Working with RMS Mimic

Hi, trying to use Mimic to make a basic contraption. Questions:

  1. Is there some sort of a basic guide? A list of simulation rules (such as a bolt is enough, no need for nut, shaft won’t spin if not inserted into motor a certain way, etc…)? I watched the IQ video and it looked simple, just get the autotool to put the peg thinghy into a hole thinghy. But then I tried to use the autotool to align a bearing flat to a c-channel, all I get is circles that allow me to rotate, but nothing is snapping into place. I figured out how to snap screws into holes, but not how to align parts to each other.

  2. Are there any keyboard commands/shortcuts? Rotating things with the mouse is difficult and most times I click on something else and things move.

  3. Any way to adjust/finetune resolution for pan / rotate / zoom? On my system it is way too choppy and in order to get a bearing flat (for example) into view, I have to go through many movements, then I try to rotate and the whole thing goes out of frame.

  4. What do the following settings in “options” do:
    Arena [none] Refresh - I always get ‘none’
    3d physics level normal/high - I tried switching and see no difference

  5. I used some demo robot I found in the “public” section (the one with 2 motor drive, 2 omnis, 2 traction, one bumper and one sonar) and tried my own code on it, basically just a “go forward”, “go back”, etc… I notice a few things, robot almost never goes perfectly straight but tends to veer to one side. If I change the order of commands (motor_left.spin then motor_right spin), it veers in the opposite direction. It is more noticeable at low speeds. Also, after the robot stops, it continues to spin in place or sometimes the wheels just spin. Is this a simulation issue, built in randomness, some settings, artificial friction, etc? Does mass of things play a role in the simulation?

Sorry for all the dumb questions, this looks like a super fun and useful tool, just don’t know how to use it properly… Thanks!

  1. Not for the current version. Now that all of our software for V5 is stable and mostly feature-complete, we’re going to be looking at making improvements to the Mimic editor, and will be doing documentation for the improved version.
  2. Yes. A lot of buttons in the toolbar will have the keyboard shortcut for them listed if you hover over them, though some things that should have keyboard shortcuts don’t have them yet (see point 1).
  3. The camera scheme is that it points at a particular location, and rotation and zoom is done based on that location. The camera’s fixate point can be moved perpendicular to the direction it’s viewing with panning (right click and drag). If you rotate to a top-down view, pan the camera over the area you’re interested in, then rotate to a side view and do the same, it will put that fixate point at the heart of the area you’re interested in. That will make the rotate and zoom center on the bit you want.
  4. Arena is not-yet-implemented. The physics adjustment shouldn’t make too much of a difference in most scenarios.
  5. I’d have to see the project, but the veer might be due to slow simulation speed on your machine. Or it could be something we need to take a look at (point 1). Also, if the robot has any parts clipped into each other, it can sometimes exhibit weird behavior. (Point 1: warnings about clipping parts are one of the things we want to add.)

Thank you for taking the time to give us feedback! We definitely think it has a lot of usefulness in its current state, but we know that it still has a lot of potential that we want to fulfill. The current plan is to spend this summer working on improvements to Mimics, implementing that Arena feature you stumbled across, documenting everything and making tutorials, etc.

Re #3 - the buttons Small Grid, Medium Grid, Large Grid, that are located in the center of the toolbar at the top, control the resolution of the rotation, large grid snaps a rotation every 45 deg, med grid every 15 deg.

A couple of additional recommendations:

Make sure you are looking at the most recent videos from RobotMesh. They used to have some older videos that didn’t match the current state of the tool and it made things super confusing!!

Also, I highly recommend that you stop and press RUN pretty often when you are building a new model. Watch what your model does once the physics engine starts. It will save you a lot of trouble if you can catch issues that might have occurred, like parts being added that didn’t actually snap in place and that fall apart once the physics is engaged.


@alb4h: Thanks for the tips!! Coarse rotate definitely helps. Yeah, learned to Run frequently the hard way. Last project the parts just fell into the abyss…


Thanks for getting back so fast! We used Mimic for Turning Point to do three things:. We used it to learn some basic V5 as we were waiting for the real deal to arrive. We also used Mimic to create and test menus on the V5 brain and we also used it to program and simulate the slip gear on a linear puncher. It helped a lot and it is super convenient. I don’t usually like most of the “cloud based” tools, but it is so cool to be able to code something on a lunch break then share it with someone else and then get back to it from some other computer later. I remember being annoyed at the fact that RotateTo was deciding to spin one way or another in an unpredictable way (or we were just using it wrong, I don’t remember now, did not document that). But it helped a lot. We never attempted to use it further from fear that the physics are not going to match real life but I see value in the tool for this year, for planning the 24+ autonomous routines that everyone will probably have by the end of the season - lol.

The project with the drunk robot was intended as a teaching/learning tool. It’s basically a ripped robot from some demo and YOUR acceleration/deceleration code I found in a Feb. post - ripped as well… I made it public for you to take a look. The robot (mimic) sometimes goes all over the place, sometimes it returns to a point very close to start.

Thanks again for all your hard work!

More questions:

  1. How do you snap a V5 motor onto metal. Autotool does nothing, just rotates the motor. Although, once it aligned the motor with the holes but not sure what I did, been clicking and dragging every possible way.

  2. How do you insert a shaft into a motor properly. With autotool, the only way I figured how to do it is snap the motor onto the shaft first, then move the motor/shaft assembly into place. I see you can just shove the shaft as deep as you want into the motor, but I am always afraid that somewhere deep inside the math of the physics engine something will go crazy.

  3. How do screws work? I was able to ‘screw in’ a motor (but again, not sure if it really is flush to the metal or fused in). But then I tried to add a bearing flat with the appropriate screws and nuts and very comically, at run time the nuts and screws got undone and started flying around the field.

The simulation is just more accurate than you realize, real robots leave fasteners on the field all the time!


1 Like

Structural pieces and motors have “hole” snap points, screws and shafts have “fastener” snap points. You can only snap an object to a snap point of the opposite type: holes can’t be snapped to holes. Snap a screw to a c-channel hole, then snap a motor to the screw.

We’ve simplified or not implemented a few real world effects in the physics simulator, either to make it run faster, make building a robot quicker, or just to make our lives easier. Most importantly, objects can spin on shafts or screws, but they will never slide side to side, so spacers, nuts and shaft collars are not needed, and are purely decorational. Holes in structural pieces are frictionless, so bearing flats aren’t needed. The constraint solver will lock an assembly as soon as it sees two constraints (two screws or one screw and one shaft) so when attaching motors you only need one screw and the powered shaft. (It doesn’t care how deep the shaft is in the motor)

This means you can build working robots that are very very simple. Here is an example 2m drive robot that uses ten screws, four shafts, four wheels, four structural pieces, and nothing else: Click the “run” button and drive it around with the keyboard.

Got it, thanks! So to make a structure, snap screw into metal then snap another metal onto said screw…

I see a color palette in the tool box, any way to change color of objects after creation?

Also, is there a “mirror” tool? I know I can select a group, change pivot point and rotate, but for asymmetrical stuff a mirror would be nice.

The reason for the bearing and all the other fluff was to see if possible to use Mimic as a CAD replacement - with the awesome added benefit of using your own code for simulation - and build real robot models and more complex contraptions such as lifts, etc.

PS. I’m sorry I’m bugging - I know this is not supposed to be an Autodesk Inventor replacement but I see tremendous possibilities here…

Select the part, click the color you want to change it to.

Nope. Frequently requested, might be something we add later.

Another possible feature, though further down the priority list. (2020/2021 or later) At minimum we would have to add support for flexible parts first (rubber bands, chain, tank tread flip intakes, etc) and then implement file export.

1 Like

Tried that, only works when introducing a new part, can’t do it on an existing one.

Took your example from above, added 2 more motors and made it spin. What makes it drift like this (I guess my very original question)?

Ah, it looks to be because all the wheels are solid and it’s a very light bot. If you swap one pair to omniwheels, it becomes much more deterministic. This appears to be a case of very light robot with very large conflicting forces jumping around, which is not terribly unexpected.

Whoops, sorry, bad UI choice on our part. To change the color of an existing part you select the color in the properties in the groups tab, not the color picker in the parts tray:

1 Like

Oh… so sorry… never knew there is a “Group Tab”, never looked there. And parametric positioning?!? No more dragging and guessing??? I’m soooo stupid.

Made a bigger symmetrical one with omnis all around and added parts to make it “heavy” although not sure what has mass and what does not in Mimic, in RL this should be heavy-ish enough,

Still drifting:

It will become more deterministic, but not perfectly so. For better performance on older computers, Robot Mesh Studio Mimics sacrifices accuracy and repeatability in the physics simulation.

A robot that only uses motor commands will not perform identically when run multiple times. In order to create a reliable autonomous routine, you must use sensors and external reference points, (the walls, the lines on the field) just like in real life. In order to drive straight you have to watch motor position values and trim motor power, or use a gyro.

Awesome, thanks!

One last request (for today…) - can you add a 5.5" cube (even without all the bevels if easier) and mecanum wheels (I imagine this one is tougher)? Thanks.

PS. My computer is now offended, you called it “older”.

Yes, we plan to add this year’s game pieces at some point in the near future. I’ll float the suggestion for mecanums, too.

1 Like

What is the very prominent “Reset” button on a copied project supposed to do?

I hit it just out of curiosity and instantly regretted doing so. It changed all code to a version from the original project. It did leave the Mimic model alone, for which I am grateful. I can deal with lost code, but hours of clicking and dragging parts around into a perfectly balanced creation (as all things should be) not so much.

By the way, this Mimic thing is a gem, it makes RMS stand out as the most useful and unique tool for VEX robotics. Not sure how well it can handle something complex such a full robot with arms and manipulators vs. a bunch of field elements (and this year there are quite a few), but so far so good… I played with a bunch of 3" cubies from the existing library (yes, impatiently waiting for the 5.5" variety), I clearly caused stupendous lag when all the little cubes started falling and moving around, but… did not crash my computer and robot still moved. What does the 3D engine care about the most? Processor, graphics card, memory?

So, what does that big button do, other than destroy universes and crush dreams?

1 Like

I believe it’s supposed to revert the state when the project was copied. (It can actually be undone by ctrl+Z if you ever accidentally press it again. And if you ever blow away a project beyond what ctrl+Z is capable of restoring, DM one of us.)

For physics interactions, it cares about processor and memory. We don’t have too many freakishly high-detail models like a modern AAA game does, so it shouldn’t be too stressful on a video card until you get into crazy model count.

can someone explain why rightclick and scroll gets so slow sometimes? I can’t find a pattern to when it happens but it’s starting to get on my nerves (it just sort of fixes itself after a while, and it isn’t my fps)

1 Like