Page 1 of 3 123 LastLast
Results 1 to 10 of 26

Thread: ILD file implementation specifications Q&A

  1. #1
    Join Date
    May 2013
    Location
    Melbourne, Australia
    Posts
    9

    Post ILD file implementation specifications Q&A

    I am designing an ILD file creation program from scratch using VB.NET.
    I do not own a laser projector thus can only get tests run occasionally by someone who does. (please do not post telling me to get one, I'm fully aware it would simplify the process)
    After having read the ILDA specification on ILD files, There appears to be a lot more going on to get the desired result, which is not documented.
    Although it appears to show up fine in the quickshow previews, it can come out completely different on the actual laser projector. My guess is it may be due to electrical bandwidth issues, or to do with mechanical acceleration and deceleration oh the mirror's mass with a variable torque at each angle (i had assumed the galvo control circuit compensated for all this).

    The purpose of this post will be to collect knowledge and suggestions in order to form an actual implementation document that I and other members can use.
    I may be able to provide ild files or photos for examination if required.

    Some examples of questions i have: (not a complete list, as I'm not sure the questions to ask)
    operation
    continual redraw of the frame until T(1/fps) is up?
    does the laser remain at the last point between frames or move to 0,0?
    if 0,0, do i need to draw a blanked line to the starting point?
    should the end point have a blanked line to 0,0?
    drawing lines
    is it set colour, then move? or move and then set colour?
    when to use point to point?
    when to add dwell points?
    min, recommended, max specifications on dwell points?
    should dwell points be 'accelerated' then 'decelerated'?
    only 1 of each dwell point?
    getting the start and end of lines to be correct
    1 of each start/end point? more?
    joining lines
    do i need to do something different when connecting visible vs blanked lines?
    do i need to do something that depends on the angle of the join?
    should the start point of the next line be skipped because its the end of the previous?
    1 of each end segment? more?
    same of different rules between segment ends and segment points?
    blanking
    should blank lined be dwelled?
    do i need blanking on the last point of a frame?
    should it be treated as any other line segment?
    dots
    anything special about drawing dots? or moving to or away from them?
    should the intensity of dots be limited if there are very few of them per frame?
    software
    how well is custom palettes supported? so far it only seems to work in quickshow, open errors in others.
    the ILDA file format datasheet mentioned no software supports 24 bit colour format, is this still true?
    Last edited by Avi; 05-27-2013 at 10:39. Reason: spelling

  2. #2
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    You're assuming way to much about what the ILDA file format is and what it can do!

    It is nothing more than about the bare minimum of information to get art out of one proprietary software system and into another. As such it is one of the possible (and likely) formats you will find supported by non-commercial software offerings or applications that don't have a proprietary DAC associated with them.

    There is absolutely no concept of "time" found anywhere in the format. It is only vectors and (sometimes) colors.

    All of that other stuff you are talking about is the fine art of optimization.

    James.
    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.

  3. #3
    Join Date
    May 2013
    Location
    Melbourne, Australia
    Posts
    9

    Default

    Well, something more than simply placing points at start and ends of lines is required, because all images i try to create come out 'drunken' in some form or other. And i am attempting to find out why, and what corrective measures need to be taken so the artwork comes out as it was drawn. Im even having difficulty getting single lines or dots to come out correctly. sometimes its a 'worm' sometimes its bent.

  4. #4
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    Could you please describe what you are using to test your results, if you are not using a real laser projector?

    James.
    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.

  5. #5
    Join Date
    May 2013
    Location
    Melbourne, Australia
    Posts
    9

    Default

    I am using QuickShow to test the files on the computer, it looks OK there, it looks weird and wrong when run on an actual laser projector (i send the files to someone who has one)

  6. #6
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    Have you tried experimenting with different optimizations settings in LaserBoy and exporting that as ILDA? If you find numbers that work that way, at least you would have some reference to examine.

    James.
    Last edited by james; 05-28-2013 at 13:22.
    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.

  7. #7
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    9,902

    Default

    The older terminology reads something like this:

    Anchor point: two or three points added at a hard stop or 90 degree turn in a image.
    Guide Point: points added to guide the galvo between long jumps in images.
    Blanking point: Points added to guide the galvo while the image is blanked. Blacked portions of the image need points too.

    Galvos have a ballistic motion component, they have inertia. This gives them a non-linear response to certain command structures. While the galvo amp has a PID loop, its also dumb. If you don't tell it what to do, it goes and does its own thing.

    They have high frequency rolloff as well. Its not a linear function, either.

    Galvos behave differently when a jump is a long distance, or a short distance. What really defines long and short is tough.
    So guide points get added to a image.

    There are conventions based the physics of the Galvo. The ILDA test pattern is a best intentions method to tune the PID loop of the galvo amplifier to allow image transfer between users. The transfer function of that is rather complex, and is not something easily defined. So the ILDA Technical Committee in its wisdom, skipped publishing the transfer function. The processors at the time could not handle computing it on the fly anyways.

    There is a hard to understand tradeoff in how the whole Standardization system works, part of it is in the hardware tuning, part of it is in the file transfer system, part of it is in the output device timing.

    What was prohibited by convention is "pulling" points to pre-distort a image when transferring the data in a ILDA file. You send what the finished image should look like, not a image pre-compensated for the quirks of a given galvo pair. It is OK to add anchor, blanking, and guide points, and to optimize the spacing of points in a line or curve, but It is not OK to predistort an image to fit a given projector.

    So most laser show software that drives a output device has sliders for adding additional anchor and blanking points when the image is projected. If the projector software is not smart enough to have those settings, like low cost SD card based projectors, you have a problem when distributing images, if you adjust the image for a given projector before you transfer the file.

    Start with sending exactly what what you want to see, and then add a few corner points at sharp turns. Remember to add black points during long jumps between separated visible segments of images. How long is long, that is a good question..

    Keep in mind that the Pangolin product is smart, it analyses an image to add corrections of its own flavor.

    When I get home Friday evening I can scan in the Standards documents that explain all this. I have the original three ring binder, printed version, not the abbreviated version that is distributed on the web.

    As James states, Point and frame timing is done by the display hardware, not the ILDA file format.

    One really annoying thing is if you try to draw a single dot for a beam effect in most systems, you need to add a few extra points at the dot's location, or the galvo just sails on by. So I urge you to find a really well tuned projector to practice on. Otherwise you will be Very frustrated during this process.

    You really need to borrow the projector and run the software with a option that is equal to "Show blanked points" and look at actually what is on the screen. Most Pangolin products can do that, I do not own Quickshow so I do not know what that function is called. Laserboy can show you the hidden points, but it will not give you as much intuition as seeing the image in laser.

    The authors of the standard had projectors present when they designed it. The characteristic of the galvo is not easy modeled,
    nor easily expressed in human terms, so there is no easy "I can do this without a projector to experience" method. Besides, your software is not handling the time domain, that is done by the final output device and some important characteristics of the galvo amp. A ILDA file is pretty much the raw data with a few mild augmentations that are often added by the creation software or by hand.

    James calls them vertices in Laserboy terminology, the standards call them points.

    I like ZILDA, for quick test views of files, its not perfect, but it is a good start:

    http://code.google.com/p/zilda/

    Ilda Search and Convert is also useful:

    http://www.laserlightshow.co.uk/lase...w.net/ilda.php


    As James states, there is both a artistic and engineering portion of this, but they are blended.

    Steve
    Last edited by mixedgas; 05-28-2013 at 14:56.
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  8. #8
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    LaserBoy can strip vector art down to its raw straight lines and then add points along straight lines to create a file that will move the scanners at a constant velocity. You can set the maximum distance between points for lit or blanked lines independently. It can also add dwell points in corners according the severity of the angle. There are settings for this too. And it can find "dots" and enhance them by adding as many points at those locations as you want.

    All of these added optimization points can be saved in an ILDA file.

    James.
    Last edited by james; 05-29-2013 at 09:49.
    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.

  9. #9
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    9,902

    Default

    Constant velocity is a starting point for graphics. But it can look horrible in beam effects.
    One should temper the amount of correction one adds to a image.

    Also there is a trade off between number of points in a frame and what the scanners will do. Some suggested limits are here:

    http://www.laserfx.com/Backstage.Las...Graphics1.html

    I would suggest Michael's table is overly generous by about 30-40% on total points on modern systems which are not FPS specific at the slower scan rates. Cheap hardware uses FPS during display. Better modern output hardware computes the image as real time vectors and fits the frame to the show timeline. . As a rule, I shoot for 700-1100 points max per image on non "vector" systems at 30K and wide angle. Vector is a term used by a few show software companies who have written image enhancement programs in internal hardware. A vectorized image is highly projector specific, and is not used for image transfer between systems.

    An SD card based projector will have a file for setting FPS for a animation. Just about every thing else on the market will not use the legacy timing of frames per sec.

    At some point your software needs the option to decide to eliminate and redistribute points if the artist adds too many. Or at least warn the user. The frame enhancement program I use (Anarchy) gives me a option to save with or without the enhancement, and the reason is simple, beam effects frames often look better as raw data. It allows for "sharp" or "hard: edges on beam effects.

    Cue discussion of the traveling salesman algorithm. If you have not came up with the idea that you are somewhat at the mercy of the output hardware designer, realize that you are.

    The simplest ILDA compatible system back then was a row of eproms containing X-Y data, and a clock incremented the eprom address at a constant point rate. Much of the conventions used are set up for that concept.

    Steve
    Last edited by mixedgas; 05-28-2013 at 15:31.
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  10. #10
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    Number of points in a frame is irrelevant, unless you now the clock rate of the DAC.

    Then you know how long it takes to scan the whole frame.

    James.
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •