This section provides a quick overview of some of the more important
aspects of the Echo application. For more complete information, please
refer to the Reference Section of this User Guide.
General Philosophy
The scanning process basically involves these steps:
Optionally, you may elect to perform a polygon reduction on the object, and/or convert the file to another file format. For more information on these processes, please consult the following sections of the User Guide:
For a tutorial on taking multiple scans using CyDir, please consult the
CyDir User Guide.
A Basic Tutorial
This tutorial only takes a few minutes, but it covers the types of commands
you are likely to use most of the time. The commands used will not be
explained in detail; for further information, look up the manual page for the
command in the section Command Descriptions or
on-line using the manual command.
Begin by changing to the directory where you wish to work.
The tutorial works with a sample image called heidi. This file is located with the other sample data files, often installed in this directory:
| /usr/local/cyberware_demo/data |
Copy the file and its associated color file to your current directory.
| cp /usr/local/cyberware_demo/data/heidi* . |
To load Echo, type
Starting the Program
| ee |
You should see a one line banner containing the version number and then the Echo prompt on a line by itself. It is waiting for your first command.
| Cyberware 3D Scanning System (Cyberware 3030RGB/MS #0000) Release 3.1 3030RGB/MS #0000 > |
Fetch the sample file into memory. Type
| 3030RGB/MS #0000 > fe heidi |
and press <Return>. If the file was found and loaded successfully, you will simply get another Echo prompt.
Notice that although the command is called fetch, you only needed to type fe. This shortcut applies to all commands; you can type the whole word if you like, but Echo only requires enough letters to make it unique among the list of commands.
Now you can check the status of the image you just fetched. Type
| 3030RGB/MS #0000 > stat |
and the basic information about the image will be displayed. A full
description of the information items can be found on the manual page for the
status command.
Displaying an image
Next let's take a look at the image itself, using the display command. Type
| 3030RGB/MS #0000 > di |
Several windows will appear. You will see a wireframe drawing of Heidi in one window and a fully rendered picture of Heidi in another window. There is also a tiny Help window, which displays information on what to do next. If you are using a display command, the Help window usually displays the current coordinates or orientation. The window which contains your Echo prompt is called the Shell window. If it is hidden by the display windows, you should move it so you can see it.
Move the mouse to the Wireframe window and use the right mouse button again to reveal the pop-up menu. Most choices affect subsequent movement of the mouse until the left (or right again) button is clicked to indicate the end of the motion. Experiment with Rotate, Zoom or Pan. Watch the Help window for information during use of the commands. After you have made adjustments to the view, move the mouse to the Render window, and press the right mouse button to see the menu. Choose Redraw so that the Render window will have the same view as you have applied to the Wireframe window.
Look again at the Render window's menu, and you will see other choices, some of which are submenus (indicated by an arrow). Drag the mouse to Materials & Lighting and move to the right a little while still holding the button. A new menu will appear. Currently you have been viewing Heidi with No Lighting, so select a different choice on the menu, release the mouse button, and watch the results.
You can also change what parameter is used to dictate the surface color. Currently you are viewing Image Colors, which are determined from the color data file generated at the scanning session. In the Render window, drag the mouse to the Texture Map Selection submenu, and select Lighting Model Colors. This means that the color map will not be used, and that the simulated light that you turned on in Surface Materials dictates the surface color. If this was not a color image, this is what you would see when you displayed the image. Lighting Model Colors shows the true geometry for the file, so this is useful for inspecting the success of your scan. The image color file can often mask imperfections in the geometry, such as subject motion.
Radius Colors is another interesting choice on the Texture Map Selection submenu. This function creates a sort of topographical map of the subject, basing the colors on the radii, or heights and depths, in the range map. You can also view the amount of change in radius at each point in the image (Smoothness Colors).
Moving the light to a different angle can also enhance the view. Imperfections may be more apparent when the lighting is slightly to one side. With Lighting Model Colors (Texture Map Selections) and Matte Model (Materials & Lighting) selected, choose Move Light from the Render menu. The image will be redrawn immediately at a lower resolution, for the sake of speed. Now move the mouse slowly from side to side and the light will move accordingly. When you are satisfied with the lighting angle, click the left button. The light movement will stop, and the image redraw at the full resolution.
The Meter Points function allows you to get information about a specific point. Choose Meter Points from the Render menu. Move the mouse and a the red crosshair will move over the image surface. The Help window displays corresponding latitudes, longitudes and depth for the point under the center of the crosshair. To get complete information, including color values, for a point, click the middle mouse button. In the Shell window, a line of information about that point will appear. You can continue moving the mouse and clicking the middle mouse button to gain information about many points. Note the Delta column in the Text window shows the distance from the last metered point. This is helpful for quick measuring.
The Surface Tools function allows you to quickly select a point or region of points. Once these points are selected, you can void these points, or void and fill them. This is helpful for despiking, for smoothing edges, or for removing fixtures used to hold your object during scanning. You must have Image Colors (Texture Map Selection) selected in order to use these tools. To select points, choose Meter Points. Move the mouse (crosshair) to a point or area that you wish to select. Hold down the left mouse button to mark the area. As you select, the selected area will be marked by the inverse color. You may release the left mouse button and move the mouse to another area. Hold down the left mouse button again to continue selection there. When you have selected all the points or areas you'd like, choose Void Selected from the Surface Tools submenu. Those points have now been permanently voided (set to a value of 0). You can also select Void and Fill to have the system interpolate values for those points.
There are many other options possible in display mode, both on the Wireframe menu and the Render menu. You can explore them further at your leisure using the manual pages on the display/edit command.
To exit display mode, select Exit from any window's menu.
Getting information
Several commands exist to provide information about the current image or the Echo configuration. For example, the volumecommand displays the volume inside the non-void areas of the image, and the number of samples (data points used in the calculation) and the number of voids in the image. Volume and its sister command area (surface area) are typically used on a predefined part of the image. Other information commands include dlat and dlong which display all the range values for a given latitude or longitude, getvar which gives the value of one or all environment variables, help provides a list of available commands, manual displays the manual page for a particular command, and status, which you learned previously. Some commands give the current situation if called without arguments, such as ltrange, lgrange, rrange, ltincr and lgincr. Go ahead and try some of these information commands.
These last commands act quite differently when you use an argument. Rather than displaying the current information, the command changes the range or increment. For example, you can set up a working window by limiting the latitude and longitude ranges with ltrange and lgrange. Most subsequent commands will operate only in this range; the data outside the range is not affected. The data outside the range is not lost; you can use or display it again by resetting the range. You can set these ranges either by these commands, or by metering points in Display mode and then using the Render menu's Set Range command. Try these commands:
| 3030RGB/MS #0000 > ltr 150 225
3030RGB/MS #0000 > lgr 220 320 |
Now display (di) and see just a small part of Heidi. Use the Render menu's Reset Range and then Reset All to return to the complete picture. Exit back to the command line.
For another example, let's change the latitude increment and see what
happens to the image. First type "lti" without an
argument to display the current value in microns. Then type the command again,
followed by a space and a number smaller than the current increment, such as
lti 300. Now display the image again, and you should see Heidi
looking a bit squashed. Understand that the data values in the range map did
not change; the latitude increment simply specifies how much space will be
between "rows" of range values.
Editing an image
The commands which actually change values in the range map cover everything from simple scaling or shifting of the data to powerful mathematical transformations that can create very unusual special effects. You can read about most of these when you get curious, but let's discuss just a sampling.
First, let's reload Heidi so that we're back to the beginning. Because we've modified the file by changing the latitude increment, we'll need to clear out the working image and reload the original:
| 3030RGB/MS #0000 > clear 3030RGB/MS #0000 > fe heidi |
First of all, note that none of these commands change the color file, just the range data. Viewing the color overlaid on a modified surface can be confusing, so type
| 3030RGB/MS #0000 > flag -N |
which temporarily turns off the color.
A few of the commands are designed to make the surface continuous - no spikes or voids. If there are spikes in the data (anomalous values that don't fit with their neighbors), despike will remove them. Fill uses interpolation and extrapolation to fill areas of void points with real values. Smooth averages neighboring range values to smooth the surface features. Suture can be used on cylindrical images of live subjects to correct for subject movement during scanning. Toupee can fill in the top of the head where the hair was difficult to scan. The image of Heidi has already been filled to remove interior voids, but if you were planning to machine the image, exterior voids would also have to be replaced with values.
Here is an example. Let's say that you'd like to mill a copy of Heidi. The image of Heidi has already been filled to remove interior voids, but if you want to machine the image, exterior voids would need to be replaced with values. You would want the milling machine to leave some material on the top of the head, in the very center where the scanner did not see her hair. First display Heidi in her current state. If you use the Wireframe menu's Rotate option to look down on the top of her head, you'll see that there is a gaping hole. Exit back to the prompt for a quick repair! Type:
| 3030RGB/MS #0000 > tou 245 12 |
and then display the image again. Echo made an imaginary top of her head at latitude 245, and after voiding all points in the 12 latitudes below that. It created data in a parabolic pattern (like an upside-down bowl) from latitude 245 down to the first non-void point in each longitude. This would give the mill something to work on, at the top of her head.
Some of the manipulation commands cause the image to change rather drastically. Let's try a radical example for fun. Exit Display mode so you get the Echo prompt again, and type
| 3030RGB/MS #0000 > lgt -r |
which means "twist to the right along longitudes." Now display the image, and you should see that she has indeed been twisted. Exit the display and type
| 3030RGB/MS #0000 > rprop 50 |
to proportionally scale all the radius values to 50% of their original values. Display again to see how the image is affected. Notice that the height of the image stays the same; only the individual radii are reduced. On a rectangular image this would have the effect of flattening the surface without changing its size, which is useful for bas-reliefs. If you want to change the size of the whole image, try
| 3030RGB/MS #0000 > scale 25 |
and display to find she's now quite a bit smaller.
You'll find some manipulation commands useful for your application, and some
will be just for fun, so I'll let you study the rest on your own.
Saving a file and quitting Echo
We're finally done with our first Echo session! Type "q" to quit Echo. But what's this? Echo won't let you quit because you have modified Heidi since the last saved copy, and Echo doesn't know if you want to keep your work. We now have two choices: clear or save. Unless this distorted artwork really appeals to you, just type
| 3030RGB/MS #0000 > cl 3030RGB/MS #0000 > q |
to quit without creating a new file. Or, if you want to come back later and show a friend your accomplishments, then go ahead and save the file. We don't want to overwrite the original file, so specify a new file name. For example,
| 3030RGB/MS #0000 > sa funnyheidi |
The image will be saved in a file called "funnyheidi" in the directory specified by the environment variable called ECHO_SAVE_PATH. If you haven't yet specified ECHO_SAVE_PATH in your echo configuration file, the file will be saved in the current directory. You can type
| 3030RGB/MS #0000 > get ECHO_SAVE_PATH |
to see if the variable is currently pointing to one of your directories.
That's the end of the tutorial, but just the beginning of what you can learn about Echo. You should now be familiar enough with the command structure and the basics to continue on your own, using the reference sections of this manual.