The v3 beta is available for download. You will need to enter your v2 license key to download the v3 beta.

Current V3 Win/Mac beta [ Nov-6-2012 ] Previous V3 betas
                V2 beta release notes V1 beta release notes

Beta Aug-24-2011


The first v3 beta is now available for download here – also linked to from the download page on the main web site.

The v2 beta installs into its own folder, it is not a problem to have v1 or/and v2 installed on the same machine, in fact I recommend that so that you can fall back to v2 if you run into some temporary bad bug in v3.

New stuff:

Flow: New command (Transform > Deform > Flow, no icon yet) for deforming objects from one "backbone" to another, some examples in these [A] [B] forum posts.


Surfaces (Flow command used for bending solid):

Scene browser: New selection indicator in the scene browser – shows a yellow dot on the right hand side to show if an item has selection or not, also now click on that spot to select or deselect things in the scene browser. Also you can use Ctrl+click on that same spot to set a selection filter which is also new.

In detail: – instead of clicking on the name, there is a new selection indicator dot on the far right column to the right of the name:

That shows you the selection state of the item with a full yellow dot if all objects of that slot are selected, and a half dot if some are selected and some are not.

Click on that dot to toggle selection on or off similar to how clicking on the eye toggles visiblity on or off.

When you click on the dot it will only select objects that are not hidden – use shift+click to select all objects of that slot regardless of current visibility state (any hidden objects will become shown if you do that).

Right click on the dot to do an "isolated selection" – it will select the item and deselect all other things.

You can also use Ctrl+click on that same spot to activate a selection filter - when a filter is active only objects that belong to that slot will be targeted for selection actions, so for instance if you want to select all red curves, you can tag Style = Red with a filter, and then go to the Types section of the scene browser and click on the selection indicator for curves and it will only target curves that have style = red. You can push Escape to clear any active filters when you are done using them.

Notes – setting a filter prevents objects from being selected, not necessarily from being modified if they were already selected before you set the filter.   So if you don't want existing selected objects to be targeted by whatever command you're going to run next, you'll want to deselect everything first before you go to set the filter.
   Basically the filter is something that controls selection, when it is set only objects that match the filter will be targeted for selection actions, including selecting things with the mouse, select all, using the scene browser to select things, etc...
   By not clearing the existing selection it allows for things like building up a particular selection one step at a time like filter in a few different steps to get the final selection that may have some combination of things in it. If filtering did not allow for the previous selection to come through stuff like that would not be possible.

Enhanced stuff:

Major overhaul to many internals: The UI is now based off of WebKit/JavaScriptCore instead of mshtml.dll/JScript.dll, updated to new OpenNURBS v5 library for reading 3DM files – this enables reading of Rhino v5 files and should round trip stuff like extended layer properties to Rhino v4 better. Also updated to the newest release of the Solids++ geometry library which has some various bug fixes in it. There may be some regressions due to all this various library churn, let me know if something that worked in v2 doesn't seem to work in v3.

Beta Oct-25-2011


A new v3 beta is now available for download. Actually as mentioned on some other discussion threads it's been available for a week already and I'm only just now getting the release notes in order.

New stuff:

Twist: (Transform > Deform > Twist, no icon yet) for deforming objects by twisting them around an axis line. Some examples in this forum thread.

Enhanced stuff:

Flow: Updated Flow to pay attention to where you click on each surface to control how to match the results up – you click near the end of an edge on each surface and UVs will be flipped or swapped as needed to make those areas aligned, see this post for some more description.

New "Projective" option for Flow which can help for applying objects on to a localized area of a target object more like a decal rather than covering the entire surface like regular Flow. See here a description.

Added a "Flip surface normal" checkbox option to Flow so you can flip the result in the vertical surface normal direction if it is reversed from what you need.

CLine: New construction line snap plane feature – you can now make a "quick snap plane" by drawing 2 construction lines that share the same start point. Then when you snap on to that start point you can draw planar shapes like a circle from center point or rectangle from center and it will align perpendicular to those 2 crossing construction lines. It's also possible to use this to get a vertical straight snap line along that perpendicular as well. Some discussion in the forum and couple of examples.

Scene browser: Updated scene browser text label display – clipped text so that a long text name won't overlap underneath the selection indicator area unless the selection indicator is going to be empty.

LWO Export: Updated LWO export with an option for LightWave v10 style vertex normals – it seems that with LightWave v10 LW expects to see normals reversed in direction from LW 9.6 used. So now there are options for storing normals for Modo, LightWave 9.6 or LightWave 10, they each expect to see the normals in a slightly different coordinate system.

STL Export: Updated STL export for object names – if there is a single object being written to the STL file and it has a name, that name will be written as the object label in the file instead of just the generic "OBJECT".

Bug fixes:

Fixed a bug in curve-to-curve Flow where it didn't work correctly unless both curves were in the world x/y plane.

Fixed a bug where the bounding box was not computed correctly for some kinds of curves imported from .ai files.

Fixed a bug where sliders did not work properly if the system locale used a comma as the decimal point separator.

Fixed a bug where an ignorable assert warning could pop up for some intersection object snap cases.

Fixed a regression bug in the geometry library that was causing some cases of "On surface" object snap to fail on some surfaces of revolution.

Fixed a regression bug in the geometry library that could cause extrusion to fail of planar surfaces that were actually made up of numerous control points instead of being simple planes.

Fixed a bug in accurate bounding box calculation on some kinds of surfaces that have an outwards flaring shape to them.

Fixed a problem where you couldn't use JPEG images in the UI, you could only use PNG. Now you can use any of PNG, JPEG, or GIF for images in any custom HTML UI.

Fixed a crash bug where running out of memory in one particular spot in mesh calculation would crash instead of giving the "Insufficient memory" warning message.

Fixed a bug where the previous window position was incorrectly still used with a different monitor arrangement when moving a laptop between docking stations, bug reported in the forum.

Fixed a bug with filtering on multi-style solids not working as expected reported in the forum.

Beta Apr-16-2012


A new v3 beta is now available for download , also linked to from the download page on the main web site.

This release is just to extend the expiration date for 6 more months, v3 development has been on hold while the Mac version has been being developed – that's nearly finished now and so I'll be starting up with new v3 features again soon.

There are no major new features for this release, but it does have an update to the IGES/STEP/SAT libraries and various minor bug fixes in it.

Beta Jul-20-2012 (Win/Mac)


A new v3 beta is now available for download, also linked to from the download page on the main web site.

New stuff:

CPU: Multiple cpu cores are now used in the draw engine – this should generally speed up the display of more complex models on multi-core machines. The exact amount varies depending on your machine and video card and the particular model features but speedups in the range of 2x to 3x seem to be the most common. There are some machines that are limited by some other bottleneck than CPU processing and on those there is no speedup at all. But it seems to deliver a good boost in most cases.

If you want to benchmark this new version with the old engine, you can set up a shortcut key with this script on it which will toggle a numeric readout of the display time in the upper-left corner of viewports:

          script: /* Toggle redraw time display */ moi.ui.showViewportDisplayTime = !moi.ui.showViewportDisplayTime; 

The number of threads used can be limited by a new setting in moi.ini, the DisplayThreadLimit= setting inside the [View] section. If you set DisplayThreadLimit=1 there the multi-core use will be disabled.

PDF Import: PDF import has been totally overhauled, it should be a lot more robust and some kinds of PDFs that would previously get garbled should come through ok now. This should also improve .AI imports as well for AI files written in Illustrator v9 or higher versions since those newer style .AI files are actually PDF files. However, when saving these newer .AI files out from Illustrator you now need to set the "Create PDF Compatible File" option turned on in Illustrator, otherwise Illustrator ends up writing a file with a PDF outer structure but with all actual data in a private format.

Extrude: New Extrude to point and Extrude tapered options for the Extrude command. These are 2 new buttons on the Extrude options panel:

Extrude to point connects the profile curve to a point that you pick, it's useful for making pyramid or cone-like objects:

Initially the point will track along the same vertical line through the shape's centroid that the regular extrude also tracks along. If you want to pick a point away from that line for the tip you can push the "Unlock direction" button which will then allow you to place the top point anywhere.

The "tapered" option allows you to produce an extrusion with a draft angle applied to make the side walls at a specific angled slope. You can also have interior outlines which will flare in the opposite direction:

The height of the tapered extrusion will generally be limited to be less than whatever amount would cause the different sloped profiles to collide into one another.

Isocurves: A new Isocurve curve construction command under Construct > Curve > Iso, and a new "Isocurve" option for the Trim command when trimming a single surface. An Isocurve is a curve on a surface that comes from the surface's own U or V directions. They can be convenient for certain operations since they follow the natural rectangular layout of a surface.

So for example say you have a fillet surface like this that you'd like to cut along one of its own arc cross-sections at the indicated spot:

The new Isocurve option for Trim can help make this operation more convenient - first use Edit > Separate to make sure the fillet is an individual surface not joined to anything else. Then when you run the Trim command there will be a new "Isocurve" button at the prompt for selecting cutting objects. If you push that button you can then pick a point on the surface and one of the natural U or V (or both) directions of the surface will be used as a cutting line. For a fillet surface one of those directions will be an exact arc curve like this:

You can place multiple isocurves to use as cutters, when you are done right-click or push "Done" and then the surface will be cut and you can pick which pieces to discard:

The Construct > Curve > Iso command will generate the Isocurve as a regular curve object so that you can use it for general construction like as a sweep path or whatever.

On several types of primitives isocurves will be key features of the object like for example on a sphere one isocurve direction will be a circle of latitude on the sphere and the other direction will be an arc of longitude on it.

Beta Sep-1-2012 (Win/Mac)


A new v3 beta (version Sep-1-2012) is now available for download, also linked to from the download page on the main web site.

New stuff:

For Mac OSX this version should now work ok on OSX 10.8 Mountain Lion, please let me know if you still see any issues there.

Solids++: Updated Solids++ geometry library to latest version, includes various bug fixes but please also be on the lookout for any regressions (things that used to work previously but don't anymore after the update).

Enhanced stuff:

Network: Updated Network command – fixed a bug that was causing Network results to be extra lumpy in certain circumstances, the fix should give better quality surfaces. There is also a new "Mode" option that you can adjust to modify the fitting behavior.

Mode = "Normal" fits the boundary curves by the regular fitting tolerance. This makes the resulting surface hug the shape of the boundary curves accurately enough so that it can be joined to other things built off of those same curves.
Mode = "Lighter" makes the surface fit to a looser tolerance, making a lighter surface but that adheres less to the boundary curves.
Mode = "Custom" – allows you to enter in a numeric tolerance value of your own choosing.
Mode = "Uniform" – allows you to enter in a number of points – each section of the Network is fit with that number of control points per region rather than refining things adaptively to meet a distance tolerance like the other modes.

You can use one of the other modes than "Normal" if you want to output a less constrained and lighter surface at the expense of it not hugging as tightly to the boundary curves. So one thing to note if you use Network is that there is now an additional stage to the command where you can set the mode, and the command will not complete until you push "Done" or right click on that new additional step.

Rebuild: Updated curve fitting - the Rebuild command can now often generate a fit to the same accuracy as before but with fewer (often about half as many) control points used. The "Delete input objects" checkbox is now turned on by default for Rebuild.

Updated Alt so holding Alt will also suppress the "Closed" snap when drawing a curve or polyline same as it suppresses other snaps. Reported on the forum here.

Bug fixes:

Fixed a bug with Boolean Union when some open surfaces were used as part of the boolean, where in some circumstances it would not recognize and remove "interior cell walls" between 2 solid regions. This fixes the bug reported on the forum here.

Fixed file handling on Mac OSX so that any of the characters: " * <> ? ¦ can be used ok in a file or directory name now – previously a file name with any of those characters would not work properly, which was a side effect of them being illegal filename characters in Windows.

Beta Nov-6-2012 (Win/Mac)


A new v3 beta (version Nov-6-2012) is now available for download, also linked to from the download page on the main web site.

Notes: Originally this was a Nov-5 version, but that had a bug where all of STEP, SAT, and IGES import/export was crashing, I've updated it to a new Nov-6 release with that bug fixed now.

New stuff:

Mac version should now work fine with the latest OSX system updates 10.8.2 and 10.7.5 without needing any other settings adjusted.

DXF I/O: New DXF file format support for import and export – focused on curve entities like lines, polylines, arcs, circles, splines. Should help with data transfer to and from various 2D CAD programs. When exporting you can choose to export either a 2D projected view which will flatten the curves by a view projection, or to export the 3D curve data. It's saved as an AutoCAD 2000 version DXF file.
There are also a couple of additional settings available in moi.ini for controlling the DXF output.

Drawing aid: New project to cplane drawing aid – Implement new drawing aid mode which can be used to project all snap points onto the construction plane, by using the following scripts on a shortcut key:

            script: /* Toggle projecting snaps to CPlane in ortho views */ moi.drawingAids.projectToCPlaneOrtho = !moi.drawingAids.projectToCPlaneOrtho; 
            script: /* Toggle projecting snaps to CPlane in ortho and 3D views */ moi.drawingAids.projectToCPlaneAll = !moi.drawingAids.projectToCPlaneAll;

Requested in forum here.

Enhanced stuff:

Surfacing: Updated closed surface skinning to do periodic closed surfaces – fixes problems with closed fillets, blends, and sweeps where the generated surface was not smooth at its closing seam area. One recent one reported here, which should now be smooth in the seam area where there was a crease happening previously.

Transform: New "Bounding box center" button for Transform > Move, Copy, Scale, and Scale1D commands. On the first prompt where you can pick the base point for these transform commands there is now a "Bounding box center" button you can push to use the center of the object's bounding box as the base point, to make it easier to move the object's center point to a specific location.

Properties panel: New "Bounding box center" button for Transform > Move, Copy, Scale, and Scale1D commands. On the first prompt where you can pick the base point for these transform commands there is now a "Bounding box center" button you can push to use the center of the object's bounding box as the base point, to make it easier to move the object's center point to a specific location.

Update properties panel size readout – units calculator. Make the units label in the size: line of the properties panel to be clickable separately, when clicked it brings up a mini units calculator that allows displaying the size in different unit systems. Requested on the forum here.

It's also now possible to have a script change which units will be used inside of the top-level size: line inside the properties panel, here's a keyboard shortcut that switches the display in that one area from the current unit system to inches or back again:

          script: /* Set property panel units display */ var sp = moi.ui.sidePane; sp.g_PropPanelUnits = (sp.g_PropPanelUnits == 'Inches' ? '' : 'Inches'); sp.UpdatePropertiesPanel(); 

LWO format: Relabeled the vertex normals options for LWO format to make one setting labeled as "Modo 601 / LightWave v10" style normals, since as of Modo 601 it uses the same style as LightWave v10 for importing LWO vertex normals.

Extrude: Updated Extrude to point – when extruding a line segment to a point, make a trimmed plane for the triangular face generated rather than a surface with a singularity (collapsed edge) at the tip.
Updated tapered extrude – added a "flip" checkbox, requested on the forum here.

Display: Updated curve antialiasing - new option for using thinner style antialiasing in the display engine. Can be set in moi.ini under:


Or toggled by a keyboard shortcut with:

            script: /* Toggle thin anti-aliasing */ moi.view.useThinAntiAliasing = !moi.view.useThinAntiAliasing; 

Was requested on the forum here.

Network: Updated Network surfacing command – fixed bug where the new fitting options from the previous beta did not get applied to 3 or 4-sided networks since those were handled by a special case Coons patch method instead. Now 3 or 4 sided networks will generate a regular Network surface with the same option in effect, and there is a new "Exact" option which shows up for 3 or 4 sided networks which will make a Coons patch with no refitting of the input curves.

ArrayGem: Updated ArrayGem – allow point objects to also be selected as target objects for creating copies instead of only path curves.

Installer: Updated installer – put full version name on the "MoI" program shortcut so that multiple versions will be more distinctly labeled when they show up in the MRU area of the Start menu. Fixes the problem reported here.

Bug fixes:

Fixed a regression in the last geometry library update that was causing failures with analytic intersections between planes and cylinders and preventing some Booleans from working. Also fixed another regression that was messing up Inset as reported here.

Updated tessellator to fix triangulation issues in certain circumstances to fix the meshing bug reported on the forum here and here.

Fixed a bug where the main window did not store its size properly if the window was closed while it was minimized, when closing it by right-clicking on the Windows task bar.

Fixed a bug importing spheres and surfaces of revolution from Rhino when certain additional rotation properties were set on them, fixes a bug reported on the forum here.

Some scripting fixes – fix problem in function signature for moi.vectorMath.createFrame() that caused different behavior when arguments were left out between Windows and Mac, disabled script timeout that would abruptly cancel scripts that ran a tight loop for too long, fixed problem where pasting a script fragment into the xyz coordinate box would evaluate it twice, and make factory.getCreatedObjects() work with async factories by waiting for the async factory to finish its work before returning back to the script with the generated objects.

Various other minor fixes.