Thanks for the history. I did find a pic of a poster for a band with that name and logo, for a show at the Keystone in Palo Alto, CA in 1979. Found a pic of another pin, but blue.
Thanks for the history. I did find a pic of a poster for a band with that name and logo, for a show at the Keystone in Palo Alto, CA in 1979. Found a pic of another pin, but blue.
It's hard to believe, but the first time any part of the code for LaserBoy was release to the public was January 1, 2005.
It was part of a Linux API that I wrote for controlling the video card, called ezfb.
Having an application that used the API really drove the development of both projects.
Originally, ild2fb was a console application. It took two computers to work. One of them ran Linux and provided the high resolution vector display and the other shelled into the Linux machine to run and control the app through a terminal. It could also be done on one machine with Knoppix installed as a virtual machine.
That's why there is no mouse!
Someone told me about libSDL and with that I was able to port LaserBoy to any OS that is supported by libSDL.
To this day, you can still run LaserBoy in a console of a Linux machine with frame buffer support in the kernel; absolutely no windowing system required.
It works quite well on a Raspberry Pi.
James.
Last edited by james; 04-21-2019 at 09:11.
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.
LaserBoy Basics:
The only part of your hard drive that LaserBoy can see is inside of its own
directory. There you will find a set of named folders where the appropriate
file types must go.
You can create folders inside of the ild directory and navigate into them,
but only this one folder deep.
You can create folders inside of the dxf directory and place multiple dxf
files in them and LaserBoy will open them in alpha-numeric order as a
frame set.
LaserBoy opens and checks to see if it is the current version. If it is not,
a message will appear.
Please always get the current version !!!
http://laserboy.org/code/LaserBoy_Current.zip
LaserBoy opens showing the stats of the frame set it always opens with,
in.ild.
In general, the [Enter] key hides and shows all of the menus. It also is required
to enter any information at a prompt that requires more than one key stroke to
complete.
In any situation where you are asked to enter the name of a file or effect
that already exists, LaserBoy will ignore any key input that doesn't lead to a
selection and it will fill in the characters for you as your input eliminates any
other choices until you have narrowed it down to only one possibility.
The [Esc] key backs you out of any menu or input prompt to wherever you
were before. From the main menu [Esc] takes you to a choice of terminating the
application. It shows a bright red screen and asks you if you really want to exit
the program. Hitting the y key terminates the application. Hitting [Esc] again
takes you back to the main menu. Clicking on the X in the upper right corner of
the window has no effect.
Left and right arrow keys move you through the frame set forward and backward.
From the main menu:
The 9 key takes you to the first frame in the set and the 0 key takes you to the
last.
The [Tab] key takes you to system value settings. All of these settings will
prompt you to enter a value. The [Tab] menu is generally available from most
menus. And when you [Esc] from it, it will return you to whatever menu you
were already in.
The x menu, system switch settings will all be either set or unset with a key hit.
The u key takes you to a menu of user interface visual attributes you can
enable or disable.
The [Space] bar selects or unselects the current frame. You can see if a frame
is selected by looking at the stats on the right side of the screen. The number
of vertices is in cyan. The number of individual lit segments is in magenta and
the frame type 2D or 3D and its number in the frame set is in yellow. If a frame
is selected the background field of the frame type and number will be dark red.
The ( key, (shift 9) sets the current frame series select and the ) key, (shift 0)
sets the current frame as the last series select, selecting all frames between
the two.
The ` and ~ (to the left of the digit 1, top row) start the frame set animation
forward or backward. Look in the [Tab] menu for option h frames per second
and look in the x menu for option 2 animate at approximate frame rate.
If this is not set, the frames will advance as fast as your computer can
render them.
The - and _ key, (right of the digit 0 top row), will start an animated 3D
rotation of the current frame, forward or backward 1 degree around all 3 axis.
The setting for frames per second and animate at approximate frame rate apply.
The = and + key also orbit the view as above plus advance the frame,
forward or backward.
The view keys menu:
If you look at menu v you will see tables of keys that effect your view of the art.
The digits 1, 2, 3, 4, 5, 6, 7 all orbit the view around the art. For each key
hit of 1, 2, 3 or 4, the camera orbits in some number of degrees around each axis
or all three axis. The number of degrees of rotation is set in the [Tab] menu,
option c rotate degree per key hit. The shift key plus 1, 2, 3 or 4 rotates in
the opposite direction.
The keys 5, 6, & 7 snap to the cardinal views of front, side and top of the 3D
cube of space. Shift plus 5, 6 & 7 snap to the logical opposites of back, other
side and bottom views.
The 8 key is like the 4 key but it also advances the frame. So you can press
and hold it to see an animation in full rotation. Shift 8 does this in reverse.
The q, w, e & r keys, right below 1, 2, 3, 4, pan the camera left-right, up-down,
both-at-the-same-time and return to center. Shift on q, w & e pans in the opposite
direction. The amount of pan motion per key hit is in some number of points,
set in menu [Tab] option 0 (digit zero), a or b ( in different ways they set
the same value. Points are relative to the signed 16-bit number space in which
this vector art exists. So from one side of the 3D cube of space to the other,
along any of the cardinal axis, there are 65535 points.
The keys a, s, d & f, right below q, w, e, r zoom the camera. The a key stretches
the X axis; the s key Y and the d key does both. Shift plus key shrinks them.
The f key returns the camera zoom to normal; a factor of 1.0. Option d in the
[Tab] menu determines the percentage of zoom per key tap.
The one thing you might notice is that pan and zoom have nothing to do with the Z
axis. That is because these controls effect the way the art is displayed on the
screen. The screen simply has no Z axis. It is important to understand that
none of the keys described above have any effect on the numerical values that
define the art. They only effect the way the art is displayed on the (2D) screen.
You can however impose the current view on the art itself so that what you see is
actually what is stored in the frame data.
A big issue here is that the view of the art must all fit inside of the 3D cube
of numerically defined space. Note that it is very easy to set the view so that
this is not the case.
If any of the art, in the straight on front, no zoom, no pan view, is outside of
the defined 3D space, trying to apply the view simply will not work.
LaserBoy will not remove or change the coordinate values of any vertices in
the frame. It will tell you it is out of bounds.
However, if you go into the x switch settings menu and turn on option
3 destructive clipping in move scale rotate, it will do exactly that. It will
remove all vector data that is outside of the cube of short integer space,
after a pan, zoom or rotate is applied to the data.
It's also important to think about applying the effects of rotation, pan and
zoom individually. Don't try to do all of them in the same step.
The "current view" displayed in menu v shows the rotational angle on each axis,
the offset and the scale that the display math is using to make the 2D raster
picture on the screen from the 3D vector art in the RAM.
Below that are shown the letter options for applying these factors to the art
itself. Once the factors are applied to the art they are set back to normal so
that you can see the art as it really is; from the front of space with no pan
or zoom. Lower case letters o, t & g apply the view to the current frame only.
Upper case applies the view to the whole frame set.
In menu u you can turn on and off some visual elements that enhance the display
on the screen. The fixed bounds and origin in conjunction with the floating
bounds and axis makes all of this make a lot more sense visually.
All of the listed keys in the view menu work in the main menu except for the
keys that apply the view to the art. Those only work when you are in menu v.
The number keys 1, 2, 3, 4, 5, 6, 7 & 8 work the same way in menus k and l (L)
to enhance the ability to draw and manipulate vector art in 3D space; again,
only effecting the way the art is displayed on the 2D computer screen.
LaserBoy Effects:
Perhaps one of the most powerful things LaserBoy can do is call a function on
the current frame, a group of selected frames or a whole frame set to do math
on it and create a new frame set as a result. The very first version of LaserBoy,
written in 2003, was designed to do just that.
There are two ways to call an effect function by name. From main, in the
o output file menu, choose 1 ild. Choose a directory. Choose from
options 4, 5 or 6. Or from main choose option n.
Effects that work on selected frames require that some frames are selected.
Some of them take a specific number of frames. Some don't.
You will see a list of available effects by name. Type the name and [Enter].
You will be prompted to enter a file name for the new ild frame set that will be the
result of the effect. If you [Enter] nothing, no file will be saved and the resulting
frame set will be loaded into memory in place of the current frame set. If you type
a name, a new ild file will be saved in the directory you chose to get here. You will
then be prompted to load (or not) the resulting frame set into the memory,
replacing the current one.
All of the effects work in 3D and with no loss of color information. Some effects
require a view of the Z axis, so you might need to rotate the view
away from the front of space to see them.
If you are really curious as to how these effects actually work, you can look in
the src directory for the files:
LaserBoy_frame_effects.cpp
LaserBoy_frame_set_effects.cpp
LaserBoy_selected_frames_effects.cpp
Drawing in LaserBoy:
In both menus k and l (L) you will see two cursrs that move along the vertices.
The open square I called the egg and the other 8 legged thing is called the spider.
These are to mark the beginning and the end of a selected portion of the art
(in consecutive vertices).
As you move the vertex cursors back and forth through the drawing with the
[{ and ]} keys, you can see what vertex number each one is on in the information
below the palettes. The vertex number is in cyan. the segment index is in magenta
and the palette color index is in white.
You can put the egg on the same vertex as the spider with the (capital) K key.
You can put the spider on the same vertex as the egg with the (capital) L key.
If both cursors are on the same vertex, that single vector is selected
(the line from there back to its anchor vertex).
The first thing that might be confusing is selecting a single vector. A vector is
the line that exists between two vertices. In order to select a single vector,
BOTH the egg and the spider must be on the destination end of the vector!
The color and the blanking status of a vector is stored in the destination end
of the vector.
The least amount of information you can have in a frame is two vertices;
an anchor and a destination of a single vector.
In menu k a lot of the functionality only effects the vertex under the spider.
You can move it in X, Y and Z by hitting the keys x y & z. Upper case moves it
in the opposite direction. You can also rotate the vector around its own anchor
in the X, Y or Z (keys d, g, f) plane or and you can change the length or
magnitude of the vector (m key).
Look in the [Tab] menu for:
0 move points per key hit
a move as % of space
b move as 1 / [n] of space
c rotate degrees per key hit
d scale percent per key hit
Points are relative to signed short integer space (-32767 to +32767). The value of
the displacement step is always an integer.
Some of these functions don't make any sense on the zeroth vertex. That is the
only vertex in the whole drawing that can only be an anchor. It can never have
a color or be blank or not blank.
The . (dot) will add a new vertex based on the one that is immediately before it
in the drawing. If the spider is on the last vertex, it will make a new vector on
the end of the drawing that is identical to the previous one (unless you run into
the edge of space). If the spider is somewhere inside the drawing, it will split
the vector in half.
To make a new empty frame, from main hit 9 to go to the first frame in the set.
Hit j to enter the frame set transforms menu. Hit 9 to add a blank frame to the
beginning of the frame set. If you only want one blank frame loaded, you can
select the new blank frame with the [space] bar and hit 3 to trim the set to only
selected frames. Hit [Esc] to return to the main menu to enter either menu
k to draw individual vertices or menu m to render segments by coordinates
to create content in the new frame.
When you make a new empty frame it actually has 2 vertices at the origin
(no magnitude) and the vector they make is blank!
The first thing you might want to do is move the spider to the last vertex
(number 1) and unblank the vector (capital B). Then pick a color with the p key.
Capital P moves the color cursor backwards. Once you have the color you want,
color the vector with the c key. Now you can see it!
You can move both the anchor and the destination of this first vector anywhere
you want with the x, y, z keys. Then you can just pop and place vectors by moving
the spider to the last vertex and hitting the . and moving the new vertex where
you want it.
If you are editing an existing drawing, you can move the spider to a vertex of
a desired color and hit the (capital) C key to set the palette color index to
that color.
You might find it makes a lot of sense to "pop and rotate" vectors. Add a new
vector with the . key and rotate it into place with the f or F key. That way every
vector in the drawing will be the same magnitude regardless of its direction!
That makes for an image that scans nicely and gives you even intensity
(especially useful around curves).
You can also use the \ and the | keys to place the egg at the beginning and the
spider at the end of the drawing, selecting the whole thing.
The keys u i and o select lit segments within the drawing
(individually or consecutively).
You can open a bitmap file into the display background and trace vectors over it.
From the main menu, choose i to input a file. Choose 6 for bmp. Choose 6 to load
it into the display background. Chose y or any other key to answer if you want
the bitmap to be scaled to fit the screen. Hitting the ; (semicolon) key will cause
the bitmap to disappear and reappear. Hitting the : (colon key) will make the
bitmap display as a negative.
In the [Tab] menu, option o bitmap background size factor can be set to whatever
you you want.
Last edited by james; 05-07-2019 at 19:13.
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.
New Version!
2019_05_07
http://laserboy.org/code/LaserBoy_Current.zip
Fixed a big issue with the new way the background bitmap is displayed.
In the previous release for the first time ever, the background bitmap panned, zoomed and rotated with the view of space.
It takes a bit of time to render every pixel in a bitmap in 3D space.
That slowed everything way down whenever a bitmap was loaded into the display.
So I re-wrote all of that stuff so it not only renders a bit faster, but now it only does the 3D rendering calculations when the view changes.
This is a big deal when you are trying to draw anything.
Last edited by james; 05-07-2019 at 14:14.
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.
Some time back, you added libwinpthread-1.dll as a mandatory support file for LB- what's the deal?
Check out my free software!
SpiroDAC: https://www.photonlexicon.com/forums...938#post352938
LWave: https://www.photonlexicon.com/forums...288#post353288
Parametric5: https://www.photonlexicon.com/forums...ht=parametric5
Color Code: https://www.photonlexicon.com/forums...ght=color+code
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.
48" x 30" acrylic on canvas.
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.
Number 3 of recent work. 30" x 40".
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.
Has anyone ever compiled LB on an Android device? How about a demo of that egg and spider thing on a smartphone...
Check out my free software!
SpiroDAC: https://www.photonlexicon.com/forums...938#post352938
LWave: https://www.photonlexicon.com/forums...288#post353288
Parametric5: https://www.photonlexicon.com/forums...ht=parametric5
Color Code: https://www.photonlexicon.com/forums...ght=color+code
It is entirely possible that it can be done with the libSDL 1.2 android libs.
An android device knows how to use an external keyboard, you know.
Creator of LaserBoy!
LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
Download LaserBoy!
YouTube Tutorials
Ask me about my LaserBoy Correction Amp Kit for sale!
All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.