Toucan Workflow: JM Studio
If you transferred directly to JM Studio over WiFi from the Toucan, JM Studio will show an import dialog with the scans listed. Select the scans you want and click Import. This step takes a few minutes.
If you transferred via USB drive, use File → Import.
Once imported, it’s gonna look like a total mess. This is because all of the *_pointcloud and *_origin data sets will be visible at once.
First step is to turn off all the visibility toggles in the list of data sets (lower right) until only one is visible.
But why are there four point clouds if we only imported two scans?
In JM Studio, the *_origin point clouds represent the original raw data captured by the Toucan with no post-processing applied. The *_pointcloud variants are derived datasets that have undergone statistical noise removal, outlier rejection, and aggressive downsampling to reduce size and prepare the data for meshing. As a result, the *_pointcloud variants often appears noisier when rendered than the *_origin variants. This is a rendering artifact: *_origin contains far more redundant data, allowing the renderer to visually smooth surfaces more effectively, even though the underlying data is raw.
If you only have one scan and simply want to produce an STL, it is generally fine to work directly from the processed *_pointcloud. It is smaller, faster to work with, and already prepared for meshing.
You can align either *_origin or *_pointcloud variants in JM Studio. However, alignment using *_origin scans is more robust because it retains raw scan density and tracking metadata. Aligning *_pointcloud variants relies purely on geometric overlap and is more sensitive to noise removal and downsampling. For multi-scan projects or maximum fidelity, it is safest to align using *_origin and generate point clouds only after alignment is finalized.
However, even if you intend to work only with the processed point cloud, do not delete the original *_origin scan until you are absolutely certain the *_pointcloud is sufficient. The *_origin data contains the raw scanner output and tracking metadata and cannot be reconstructed once deleted. If you later discover missing geometry, alignment issues, or need to adjust noise-removal parameters, you will need to re-scan.
In my case, I always delete the *_pointcloud variant. One workflow to rule them all and I always have the definitive data to reprocess if needed.
At this point, my project now has two *_origin scans. One of the top of the anvil and the other of the bottom (and the sides in both).
Cleaning Up the Point Cloud Data Sets
The point clouds likely have a lot of extraneous junk. The stand is likely visible. The scanning stage likely leaked through. There may be floating islands of points.
You can delete the junk after alignment, but I find it easier to get rid of the obvious scan artifacts prior to alignmment.
⚠️ This is a destructive operation!
Any deleted points will be removed entirely from the point clouds and cannot be recovered. You may want to duplicate the point cloud data set before doing this.
1. Delete the scanning stand and any parts of the stage that leaked into the scan. This is easily done with the Clip Plane tool (step-by-step tutorial with screenshots).
2. Rotate the point cloud and look for any stray floating noise. Use the Lasso Selection tool (one above the Clip Plane tool) to select and delete them. You don’t need to get all of them, but the more the better.
Aligning Multiple Point Clouds
To align sets of point clouds, select the Align tool in the toolbar (it looks like disabled overlapping hexagons).
Then follow the Manual Alignment tutorial (step-by-step with screenshots).
Once aligned and you have checked the integrity of the alignment, you can either go through the alignment process again with another set of point clouds (using the already aligned group as the fixed layer), or you can move on to mesh generation.
Mesh Generation
Now that the point clouds are aligned, we can move on to mesh generation.
First, process the group point cloud by applying Statistical Noise Reduction (just make sure that is the only checkbox checked). This will produce Group_#_S_# in the data browser. Show it and hide the rest.
With that new group selected, turn off Statistical Noise Removal, turn on Fusion, and turn on Remove Floating Parts. Do not turn on the rest as we will effectively do that in post-processing in MeshMixer.
Oops. My mesh has a weird lip along the bottom edge of the anvil! This happens if the point cloud datasets weren’t fully cleaned up. Easy to fix.
Refining the Mesh by Refining the Point Clouds
To get rid of any artifacts like that, go back to the point cloud and delete the extraneous points.
While you can do this in the post alignment group, I lean to going back to the original cloud points in the group and editing there. Make the cloud point in the group the only visible one, edit away, and then select the group and reprocess the noise removal and mesh conversion (which you can combine into one step by checking both checkboxes).
In this case, I went back to the top scan of the anvil and chopped off more of the base (since the bottom scan had the base in detail) using a plane clip. It would have been better to use the lasso tools and finely remove the errant cloud points, but this was a lot faster.
Because of the shortcut, it left a few small holes in the resulting mesh. That’s OK. MeshMixer will fix the mesh very quickly.
Export
- Select the Mesh
-
File -> Export
JM Studio will ask if you want to reorient the object. This effectively defines what the bottom of the object is. You do this by placing three colored marks on the object to define a plane that is the bottom (very much like the alignment tool’s manual mode, only this time we *want them on the same face of the object!*
- Once you accept (or skip) reorientation, a file dialog appears.
- Pick your format (STL, likely) and export