Author: Mark Danks

## List of GEM objects

Controls
Manipulators
Geos
Particles
Nongeos
Pixes
TV
MarkEx

Controls
gemhead - the start of rendering chain
gemwin - the window manager
gemmouse - outputs the mouse position and buttons in the GEM window
gemkeyboard - outputs the keycode of a key pressed when you are in the GEM window (there might be different keycodes in Windows/Linux)
gemkeyname - outputs a symbolic description of a key pressed when you are in the GEM window (there might be different symbols in Windows/Linux)
gemorb - outputs the position, rotation, and buttons for a Space Orb
gemtablet - outputs the pen position, pressure, and buttons in the GEM window

Manipulators
accumrotate - accumulate a rotation
alpha - enable/disable alpha blending
ambient - set the ambient color with a vector
ambientRGB - set the ambient color with 3 discrete values
camera -
color - set the color with a vector
colorRGB - set the color with 3 discrete values
depth - enable/disable depth testing
diffuse - set the diffuse color with a vector
diffuseRGB - set the diffuse color with 3 discrete values
emission - set the emissive color with a vector
emissionRGB - set the emissive color with 3 discrete values
linear_path - generate a path from an array of points
ortho - change the view to orthogonal, with the viewport the size of the window
polygon_smooth - turn on anti-aliasing for the objects below
rotate - rotate with an angle and vector
rotateXYZ - rotate with 3 discrete values
scale - scale with a vector
scaleXYZ - scale with 3 discrete values
separator - push the OpenGL state for the rest of the chain and pop when done
shininess - set the shininess of an object
specular - set the specular color with a vector
specularRGB - set the specular color with 3 discrete values
spline_path - generate a spline from an array of knots
translate - translate with a vector
translateXYZ - translate with 3 discrete values

Geos
circle - render a circle
colorSquare - render a colored square (evtl. with color gradients)
cone - render a cone
cube - render a cube
cuboid - render a box
curve - render a Bezier curve
curve3d - render a surface
cylinder - render a cylinder
disk - render a disk
imageVert - make pixel colors to a height field map
model - render an Alias|Wavefront model
multimodel - render a series of Alias|Wavefront models, render by number
newWave - render a wave (that is evolving over time)
polygon - render a polygon
primTri - a triangle primitive
rectangle - render a rectangle
ripple - a rectangle with distorted (over time) texture-coordinates
rubber - a grid where you can move one of the grid-points
slideSquare - render a number of sliding squares
sphere - render a sphere
square - render a square
teapot - render a teapot
text2d - render 2-D text (a bitmap)
text3d - render 3-D text (polygonal)
textextruded - render an extruded 3D-text
textoutline - render outlined text (polygonal)
triangle - render a triangle

Particles
part_head - The start of a particle group
part_color - Set the range of colors for the new particles
part_damp - set the damping for particles
part_draw - Apply the actions and render the particles. Accepts a message "draw line" or "draw point" to change the drawing style.
part_follow - Particles will follow each other like a snake
part_gravity - Have the particles accelerate in a direction
part_info - get the information (position, color, size,...) of each particle
part_killold - Remove particles past a certain age
part_killslow - Remove particles below a certain speed
part_orbitpoint - Orbit the particles around a specified point
part_render - render the remaining gem-tree as particles.
part_size - Set the size of new particles
part_source - Generate particles
part_targetcolor - Change color of the particles toward the specified color
part_targetsize - Change size of the particles toward the specified size
part_velocity - Set the velocity domain (distribution like CONE and the appropriate arguments)
part_vertex - emit a single particle

Nongeos
light - make a point light
world_light - make a light at infinity

Pixes
pix_2grey - convert rgb pixels to grey (still an RGBA image)
pix_a_2grey - convert rgb pixels to grey based on alpha channel
pix_add - add two pixes together
pix_aging - super8-like aging effect
pix_alpha - set the alpha value of a pix
pix_background - let through only pixels that differ from a static "background" image
pix_backlight - a backlight photo effect
pix_biquad - 2p2z-filter for subsequent images
pix_bitmask - apply a bitmask to a pix
pix_blob - get center of gravity
pix_buf - buffer a pix
pix_buffer - storage room for pixes (like [table] for floats)
pix_buffer_read/pix_buffer_write - put/get pixes into/from a pix_buffer
pix_chroma_key - color keying (like "blue-box")
pix_coloralpha - set the alpha-channel of a pix as a mean-value of the color-components
pix_colormatrix - recombine the RGBA-channels with matrix-operation
pix_color - set the color of a pix (leaving alpha alone)
pix_colorreduce - reduce the number of colors (statistically)
pix_composite - composite two pixes together
pix_convolve - convolve a pix with a kernal
pix_coordinate - set the texture coordinates
pix_crop - get a sub-image of a pix
pix_curve - apply color-curves onto a pix
pix_data - get pixel data information
pix_delay - frame-wise delay
pix_diff - get absolute difference of two pixes
pix_dot - rasterize a pix with big dots
pix_draw - draw a pix
pix_dump - dump the pixel-data as a long list of floats
pix_duotone - reduce the number of colors by thresholding
pix_film - use a movie file as a pix source for image-processing
pix_flip - flip the pixels of a pix
pix_gain - apply a gain to a pix
pix_grey - convert any pix into greyscale colorspace
pix_halftone - rasterize a pix like it was printed in a newspaper
pix_histo - get the histogram of a pix
pix_hsv2rgb - transform a pix from HSV-colorspace into RGB-colorspace
pix_image - load in an image file
pix_imageInPlace - load a series of image files directly into texture-buffer, display by number
pix_info - get information about the pix (like dimension, colorspace,...)
pix_invert - invert a pix
pix_kaleidoscope - as if you were looking at the pix through a kaleidoscope
pix_levels - level adjustment
pix_lumaoffset - y-offset pixels depending on their luminance
pix_mask - mask a pix based on another pix
pix_metaimage - recompose an image out of smaller versions of itself
pix_mix - mix to pixes together
pix_motionblur - motionblur an image
pix_movie - use a movie file as a pix source and load it immediately into the texture-buffer
pix_movement - set the alpha-channel with respect to the change between two frames
pix_multiply - multiply two pixes
pix_multiimage - load in a series of image files, display by number
pix_normalize - normalize a pix
pix_offset - add an offset to a pix (wrapping instead of clipping)
pix_pix2sig~ - interpret a pix as 4 (RGBA) audio-signals
pix_posterize - posterization photo effect
pix_puzzle - shuffle an image
pix_rds - generate a Random Dot Stereogram out of the image (aka: Magic Eye (tm))
pix_rectangle - generate a rectangle in a pix buffer
pix_refraction - break up an image into coloured "glass-bricks"
pix_resize - resize a pix to next power of 2
pix_rgb2hsv - transform a pix from RGB-colorspace into HSV-colorspace
pix_rgba - transform a pix of any format into RGBA
pix_roll - (sc)roll through an image (wrapping)
pix_rtx - swap time-axis and x-axis
pix_scanline - take every nth line of the original image
pix_set - set the pixel-data with a long list of floats
pix_sig2pix~ - interpret 4 audio-signals as (RGBA) image-data
pix_snap - capture the render window into a pix
pix_snap2tex - capture the render window directly as a texture
pix_subtract - subtract two pixes
pix_tIIR - time-base Infinite-Impulse-Response filter (for motion-bluring,...) with settable number of poles/zeros
pix_takealpha - take the alpha channel of one pix and put it into another pix
pix_texture - use a pix as a texture map
pix_threshold - apply a threshold to a pix
pix_video - use a video camera as a pix source
pix_write - capture the render window to disk
pix_zoom - zoom into a pix (using OpenGL)

openGL there are more than 250 objects that form a complete wrapper around the openGL set of functions (as defined in the openGL-1.2 standard).
each openGL-function is prefixed with "GEM", eg: [GEMglVertex3f] is wrapped around glVertex3f.

MarkEx
alternate - alternate between two outlets
average - average a sequence of numbers
change - only output on change
counter - count bangs
invert - non-zero numbers to zero, zero to 1
multiselect/multisel - a select object which accepts a list in the right inlet
oneshot - send a bang, then block until reset
randomF / randF - floating point random numbers
strcat - string concatentation
tripleLine - do a line with three numbers
tripleRand - random with three numbers
vector+ / v+ - add a scalar to a vector
vector- / v- - subtract a scalar from a vector
vector* / v* - multiply a vector by a scalar
vector/ / v/ - divide a vector by a scalar
vectorpack / vpack - attach a scalar to the end of a vector
rgb2hsv - convert a list of three floats from RGB to an HSV value
hsv2rgb - convert a list of three floats from HSV to an RGB value
abs~ - absolute value of a signal
reson~ - resonant filter

[return]