Author Topic: ILDA File Format On-And-On  (Read 56438 times)

0 Members and 2 Guests are viewing this topic.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
ILDA File Format On-And-On
« on: December 04, 2009, 05:40:02 pm »
Check this out:

http://www.photonlexicon.com/forums/showthread.php?t=9559

What is it about the ILDA file format that seems to allude so many seemingly good software engineers?

To be fair, the ILDA specification document is poorly written and completely lacks any insight as to how to implement or use the structures that it defines.

But if you implement it in code and work with it for many years, you'll see just how simple it is.

It is nothing more than four data types in a specific arrangement.

a. the section header
b. the 3D coordinate
c. the 2D coordinate
d. the color

Each of these structures is made of nothing but 16-bit integers and 8-bit characters.

The absolute limitations of how many things can be counted with 16-bits or 8-bits apply here, just like they do every other place a binary integers is used.

The section header is uniform. It marks the beginning of a collection of homogenous data elements. It contains the type of data and the number of elements of that type.

a. the section header (indicates section data type and quantity)

The coordinate structures contain signed short integer values that represent either 2D or 3D locations. Each of these coordinate structures also contain an 8-bit character that contains 1-bit that indicates whether this data element is lit or blank and another 8-bit character that may be used as an index into a palette of 256 colors or less.

It is quite possible to ignore the palette index and simply light or blank each coordinate according to the blanking bit. It is also possible to have a lit coordinate with a palette index that points to black.

For this individual data type to be useful, it must be stored as a series of consecutive coordinates. It is not the individual coordinate that makes a useful item of data. It is the distance between every two consecutive coordinates.

b. the 3D coordinate (indicates X, Y, Z, blanking, palette index)
c. the 2D coordinate (indicates X, Y, blanking, palette index)

The color data type is just three 8-bit characters; one for each of red, green, and blue, that make a typical 24-bit color value. A section header is followed by one or more colors to make a palette. The only other intrinsic item of information is the index of the color structure in each palette section.

d. the color (indicates index and RGB)

That's it!

There seems to be a never ending discussion and debate about the original intentions of ILDA when this was designed and how a variety of applications, old and new, deal with these structures.

WHO CARES?

This is nothing more than a simple arrangement of binary numbers! EVERY answer to EVERY question that anyone has ever had about this file format can be found in the structure itself.

It is what it is. It does what it does.

Trying to put artificial limitations or restrictions of use on this arrangement of data is meaningless, futile and wrong.

If an application can not properly read a file that follows the rules of this arrangement of data, then it is wrong.

To be more specific, there is clearly NO WAY to indicate the original intentions of the creator of an ILDA file with regard to points-per-second, frames-per-second or scanning-angle. These are only the most primitive and important things the projectionist needs to know. Furthermore, there is no way to indicate hardware requirements, placement of one or more projectors, viewing angles, geometric corrections, etc... etc... etc... etc... etc...

Since there is no way to convey any of these items of information, we must consider them to be outside of this format and unknowable by its measure.

That means the notion that an ILDA file is supposed to be pre-optimized for a specific pps and viewing angle on a specific grade of projector is WRONG.

It is senseless and impossible.

The fact that there is a 3D data type is proof of that!

There is NO WAY to properly optimize a 3D drawing for 2D scanners!

The ILDA file format has some useless appendages in its section header. So what? There is only one of those for every section and all of the data types that follow are perfectly reasonable in their design.

ANYTHING that can be stored in a manner that follows the rules of this file structure is fair game.

There is a very good reason this file format exists. It defines a very specific level of information that is intrinsically connected to 24-bit color laser vector display.

Yes there are other "true vector" file formats out there. USE THEM! If you want more flexibility to design abstract concepts like circles and splines, then use the file formats that already have those data element types.

Somewhere along the line, you will come to a point where you need to convert those abstract concepts into 16-bit and 8-bit binary numbers to clock out of a DAC. This process might never look exactly like the ILDA file format, but that DAC stream could easily be saved as an ILDA file.

Furthermore, this ILDA file could be stripped of information in various ways to reduce points or colors. Or points may be added or moved to suit the needs of further processing or display on a dissimilar projector.

Clearly, there is value in being able to store color vector art in a variety of stages between totally stripped to fully optimized or even over-optimized information. This kind of flexibility is very useful.

It is exactly what is NOT in the file format that makes it a meaningful type of information storage. It is NOT intrinsically related to time, speed, hardware, abstract concepts, etc... etc... etc...

It is a working data format.

It is literal binary information. It does not require translation or interpretation.

It can store data in various stages of process.

It follows simple rules of connect-the-dots drawing with color, in multiple sequential images within a single file.

Use it to its fullest potential with a good dose of your own applied intelligence.

James.  :)
« Last Edit: December 07, 2009, 03:47:06 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: ILDA File Format On-And-On
« Reply #1 on: December 04, 2009, 07:24:06 pm »
Meh, been there, done that.  :)

James, I was reading about Windows media today, specifically ASF files that combine audio and video as seperate streams.  It seemed like a good way to do laser display instead of putting it all into a WAV file since it allows for independent processing of each stream.  You can do the same by ripping the wav file apart I guess.  But my point is, if you created such a file you could create custom codecs that play laser streams and that would offer you a lot more flexibility that trying to hodge podge everything into a WAV file.  Yea, I know you won't like that idea but thought I would share it anyway.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: ILDA File Format On-And-On
« Reply #2 on: December 04, 2009, 08:51:49 pm »
I'm sure there are plenty of new and perhaps better ways to represent color laser animation.

What I wrote above was in response to the non-engineering nonsense and never-finished-nature of the ILDA file format.

There is another issue that absolutely seals the deal as proof of my claims as stated above.

Consider the fact that each frame in a sequence might need to be repeated an unknown number of times in order for it to appear for a specified length if time before the next frame is shown.

For this to be done correctly and without possible damage to the scanners, a small amount of data needs to be generated and added to the information that is stored in the ILDA file. The scanners need to have a defined path to get from the last point of a frame back to the first point of the same frame AND a path from the last point of one frame to the first point of the next frame.

There is no provision for this information in the ILDA file format. It MUST be calculated outside of the storage limits of the file and intelligently added to the data at some point between reading from the ILDA file and clocking points out the DAC.

In any other field of engineering, math is the answer and the absolute final word.

When someone comes forward with a statement and has a working model that proves it, that is the end of it.

I've been called a jerk, paranoid, delusional, in need of mental health care, and banned from a forum for making a statement and having a working model that proves it.

James.  :)
« Last Edit: December 07, 2009, 03:49:52 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline meandean

  • Sr. Member
  • ****
  • Posts: 466
  • Milliwatts: 13
  • It's about sight AND sound.
    • View Profile
Re: ILDA File Format On-And-On
« Reply #3 on: December 04, 2009, 09:30:13 pm »
 Quote from Zoof@PL:

Quote
The ILD file format should be just a raw data storage for direct playback.

  Good luck with that! :D

  Here's the one I appreciate from allthatwhichis:

Quote
I got nothing man; I just put frames on a timeline synched to music...
"Patience is for the dead."

Offline drlava

  • Sr. Member
  • ****
  • Posts: 314
  • Milliwatts: 18
    • View Profile
Re: ILDA File Format On-And-On
« Reply #4 on: December 04, 2009, 10:34:55 pm »
That discussion isn't really about what the ilda format should have done or could do, The ilda format is what it is. 

The thread is more about exploring the utility of using a true vector format for describing laser frames and animations.  If such a format were to be described, whether programmers would use it.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: ILDA File Format On-And-On
« Reply #5 on: December 04, 2009, 11:15:59 pm »
Yes. And my response to that question is to use the ILDA format to its fullest potential in conjunction with other file types that are better suited for different aspects necessary to achieve a completed piece of art.

James.
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: ILDA File Format On-And-On
« Reply #6 on: December 05, 2009, 12:21:40 am »
Sure they would use it if it existed.  But, it doesn't exist and it isn't going to because all of the laser show software companies are content going down their own paths.  Pangolin certainly isn't going to lead the way since they would rather create it on their own and then patent it.   And it needs to be one of the big companies to lead it or else nothing will happen.  So, ultimately, everyone just does their own thing.  Doesn't even seem worth discussing... I've been down that path several times already.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: ILDA File Format On-And-On
« Reply #7 on: December 05, 2009, 02:19:58 am »
All that we need already exists in the public domain.

ILDA, DXF, WAVE, BMP, TXT, etc... etc... etc...

All it requires is intelligent application.

James.  :)

It's math. The way to do it is already there.

And it's free.
« Last Edit: December 05, 2009, 03:19:54 am by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: ILDA File Format On-And-On
« Reply #8 on: December 05, 2009, 05:56:12 am »
No.  I don't think so.  I mean, yea, you could, but it is like driving one of the original steam powered cars where you have to operate a gazillion controls and wait forever for it to warm up just to get down the road.  People want to be able to draw and then save it into the final format that is useful in their laser applicaiton.  Or better yet, that want to be able to draw from within their laser application.  There is a huge gap between functionality and useability that needs to be bridged.  Drawing laser images using CAD or a keyboard isn't going to fly for most people.

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: ILDA File Format On-And-On
« Reply #9 on: December 05, 2009, 07:56:28 am »
Eventually I plan on using a vector based frames in my app.  But first I will need something to create those drawings.  I ideas in my head for a simple drawing app (on the lines of Paint.NET but scaled down a lot since I don't need all of those bitmap type features) and the output will be just the minimum data in the form of splines, beziers, shapes, etc.  Then I'll need an engine that converts them to points based on a scan angle and projector characteristics settings.

If anyone is interested in contributing that would be cool.  The conversion engine and file format can be open source and in whatever language is accessible.  C or C++ is fine.  As long as it has a C or COM api I'd be happy.   There would be no GUI part to this other so that makes it a lot easier.

I'll want to have the drawing app inside my application and will do it in .NET so I am not sure if I am up for much sharing there.  But, anyone else can create their own drawing app, or an open source project, and that would be helpful.  The important part to be open source is the file format and drawing engine so that there aren't a gazillion versions of it out there.

I don't have a lot of time right now to jump in and start coding but we could at least put some ideas down in print for require functionality in the fie format and drawing app.  Utimately, the requirements of the drawing app should drive the requirements of the file format.  So, use cases would be a good start.  I don't do any drawing so I am not much help there but LaserBoy is a good example of one.  What features are really nice there and how could they better be served in a more specific file format?

Mainly I want to easily be able to draw or trace shapes and then select portions of it and stretch it out, out animate it over time based on a start and end position.  Be able to select and change colors, apply color gradients to lines.  Some of these things will drive the file format.  Some of them will just make use of the file format.  (for example, a gradient color should be part of the file format but the ability to specify the colors would obviously just be a feature of the drawing app).

As James said above, all of the technology for doing this has been done.  But it is not accesible in its current form due to too many pieces.  We just need to steal the parts of each that fit our application and use those to keep down on the bloat and confusion.

Eventually I am going to do all of this but if I do it alone I'll just end up doing like all of the other companies and do it my way and not share.  I'd rather due it as part of the community so that others can create even better drawing apps that use the technology we create and also because it reduces the scope of my work. 

Another question is who would use it if we had it?  I'd definitely use it in my software but I don't know if anyone else would.  Well, at least not the current companies with the current software.  I would expect that any new starters might be interested in using something like this.

Thoughts?

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: ILDA File Format On-And-On
« Reply #10 on: December 05, 2009, 03:16:39 pm »
File formats and user interfaces are two completely different things.

A user interface and the functional code and core memory objects behind it are also two different things.

The development of LaserBoy has always been driven by its interoperability with a specific set of open standard file formats.

Also, legal additions, modifications and the exploitation of not-so-obvious features within these file formats have been discovered and developed from within LaserBoy by being able to successfully experiment, find and prove a specific set of utilities within these file formats.

LaserBoy has always been developed to be as much of a total solution as possible.

It is entirely possible to start with nothing but LaserBoy and end up with a complete, full color lasershow with a sound track.

It might not be easy or intuitive or the best way, but it's there and it works! And it's available to everyone now.

You and others might not like the user interface of LaserBoy, but it does all of the things you just posted above.

The point is, it's DONE! It already exists! It's not a plan that I will eventually get around to.

There is an outstanding model of how to do it, right there!

Make your own user interface to the core of LaserBoy.

LaserBoy is already open source generic C++ that compiles and runs in every OS. There is only one LaserBoy. The most fundamental memory objects have grown, but not changed since I started writing the code back in late 2003.

The ILDA file format is not outdated or old-fashioned.

It is the ONLY open file format that was specifically designed for laser vector art.

It meets a very important and specific set of requirements for our purposes.

It has also preserved just about every historically important piece of laser art.

It is the only true binary "common ground" developed by laserists, for laserists, that we can all stand on and benefit from.

Don't walk away from it.

It's all we've got!

James.  :)
« Last Edit: December 05, 2009, 04:20:19 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: ILDA File Format On-And-On
« Reply #11 on: December 06, 2009, 06:51:32 pm »
Guess I'll just do it alone then.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: ILDA File Format On-And-On
« Reply #12 on: December 06, 2009, 07:11:02 pm »
Yep.
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline drlava

  • Sr. Member
  • ****
  • Posts: 314
  • Milliwatts: 18
    • View Profile
Re: ILDA File Format On-And-On
« Reply #13 on: December 06, 2009, 08:44:23 pm »
Guess I'll just do it alone then.

Look into svg loading libraries, it is a pretty decent vector format that has most of the constructs that we are interested in.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: ILDA File Format On-And-On
« Reply #14 on: December 07, 2009, 04:13:03 pm »
I wrote a web server CGI environment API in C++.

It turns the whole web server application call into an associative array of variable = value pairs and every thing else necessary to get the job done; including base64 ASCII to binary translation for the file upload widget.

It's really just one class used to create another class.

The first class is directly inherited from the STL string.

My code turns that into every other kind of ordered data type it needs to be.

So it's cake to read HTML, separate the tags from the text, retrieve values from tag parameters, etc...

The only problem is that this code is something that our company has made a lot money from over the last 10 or 11 years. So I can not put it into open source!

We are making money from this code right now!

James.  :)

PS. It's WAAAAAY easier to generate a script in code than it is to read it back!

« Last Edit: December 07, 2009, 04:28:33 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

 

SMF spam blocked by CleanTalk
SimplePortal 2.3.7 © 2008-2024, SimplePortal