Page 4 of 11 FirstFirst 12345678 ... LastLast
Results 31 to 40 of 102

Thread: Point optimisation: how to

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

    Default

    I think that people who take the time to write laser software, must do so for some reason.

    Some people want to make money. Some people want to get credit for doing something first or better than what came before... or both.

    It's not very typical for a laser app programmer to have a lot of enthusiasm for following someone else's well defined guidelines without any chance of personal reward.

    Extrapolate from that the idea that no one wants to put in a whole lot of effort so that someone else can come along and reap all the rewards.

    Take a look at the history of the ILDA file format.

    But then again... making and keeping industry standards and recognizing outstanding achievements within the laserist technology development community is clearly spelled out in ILDA's mission statement as their reason to exist.

    But it's not likely the mission of any of its individual members.

    Quite a conundrum, don't you think?

    James.
    Last edited by james; 01-13-2015 at 21:19.
    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.

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

    Default

    Quote Originally Posted by colouredmirrorball View Post
    Why not share your ideas and let others implement it? :P


    But then we're back to square one... 100 different programs with 100 different outputs for the same content.
    You realize I have offered two file formats other than ILDA, just in the conversation of this thread?

    Have [you] (anyone) ever worked with the LaserBoy Formatted Wave file?

    It saves end-of-frame markers and repeated frame markers in the least significant bits of the red and green color channels, so you can open it in an app that knows what to look for and get your frame set back exactly as it was.

    All of the optimization parameters that were used to make the wave are stored in the header. This is about as close to an answer to the previous request as one can get.

    There is also a block of data in the header that tells you the sample shifts between the scanner and color channels, for each channel.

    There is also an optional block of information that allows you to re-scale the color signals for non-linear modulation.

    You can invert the global polarity of all channels and any of the individual channels and that too is indicated in the header of the wave.

    You can mask off bits from the low end to the high end for each of the channels of the wave and that is also indicated in the header.

    The contents of each channel (signal identifiers) are also in a block of data in the header.

    The whole idea is an open specification to extend the utility of an open and generic, very common file format that is fully implemented in an open source application. You have a fully functional application example as a reference.

    Absolutely anything that can be saved in an ILDA file can be saved in a LB formatted wave with no loss of data what-so-ever. Plus all kinds of other meta-data can be added to that.

    There is quite a lot to work with right there!

    Plus: Since the wave file format is made of chunks with offsets, you can add anything else you think is needed to the header and it won't break it. Any wave app will be able to read the wave data.

    But it's not just a static vector art storage format. It is a ready-to-go show, that can include stereo audio and SMTPE time code!

    AND IT IS OBVIOUSLY CONNECTED TO TIME!

    So why isn't everyone using it? See my post above this one.

    James.
    Last edited by james; 01-14-2015 at 12:48.
    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. #33
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    In just the past few days, I've been doing a lot of work to improve LaserBoy's optimization methods.

    (So you see it is not all done and carved in stone.)

    I re-wrote the function that looks for and removes equivalent vectors and now that works much better.

    I also found and fixed a problem in the function that finds and removes dwell.

    Plus I created that new function that removes points based on proximity and moves points left over to better fit the curves.

    One thing that I have been thinking about for a long time is about closed shapes. Imagine if you had a circle in the middle of the frame and another circle orbiting around the center, outside of the inner circle.

    Wouldn't it be nice if there was some way to know that the two circles were closed polygons and that they could be drawn starting and ending at any point in the shape? The shortest path would be to break the circles at the points that were closest to each other.

    Not exactly sure how that would be done. But I'm thinking about it.

    I already have a function that breaks up lit segments into individual lit vectors and another function that randomizes the order of all lit segments in a frame. So, there must be some way to glue the segments back together into shapes with the absolute shortest path and least amount of blanking.

    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.

  4. #34
    Join Date
    Mar 2010
    Location
    Raleigh, NC
    Posts
    2,293

    Default

    Quote Originally Posted by james View Post
    One thing that I have been thinking about for a long time is about closed shapes. Imagine if you had a circle in the middle of the frame and another circle orbiting around the center, outside of the inner circle.

    Wouldn't it be nice if there was some way to know that the two circles were closed polygons and that they could be drawn starting and ending at any point in the shape? The shortest path would be to break the circles at the points that were closest to each other.

    Not exactly sure how that would be done. But I'm thinking about it.
    The Spaghetti Draw application does this sort of thing. It is shape based to begin with and only creates points when sending to a projector or exporting to ILDA. Anyway, with circles, they are expressed as a point and a radius. Determining the closest point on the circle to any other point just requires some math. For objects with angles (eg a square) I always start at a corner. Of course, when doing this the starting point is also the ending point, which may not be the close to the next shape to be drawn. So, is it better to start close to the first shape and end far from the last shape? Or start close to the last shape so that it ends close to the last shape? It probably doesn't really matter.

  5. #35
    swamidog's Avatar
    swamidog is online now Jr. Woodchuckington Janitor III, Esq.
    Join Date
    Nov 2006
    Location
    santa fe, nm
    Posts
    1,545,760

    Default

    Quote Originally Posted by james View Post
    Plus: Since the wave file format is made of chunks with offsets, you can add anything else you think is needed to the header and it won't break it. Any wave app will be able to read the wave data.

    But it's not just a static vector art storage format. It is a ready-to-go show, that can include stereo audio and SMTPE time code!

    AND IT IS OBVIOUSLY CONNECTED TO TIME!

    So why isn't everyone using it? See my post above this one.

    James.
    wave files through a good quality modified audio dac or dz/ek's lightpipe->ilda widget work quite well for fixed show playback. editing them and sequencing them is quite a different story. i would never want to construct a show by using wave files. there's no timeline, there's no real time feedback. the flexibility just isn't there.

    ilda frame streams are kind of annoying, but it's still fairly easy to make some frame edits/manipulations on a timeline. you can't do that with a wave.
    suppose you're thinkin' about a plate o' shrimp. Suddenly someone'll say, like, plate, or shrimp, or plate o' shrimp out of the blue, no explanation. No point in lookin' for one, either. It's all part of a cosmic unconciousness.

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

    Default

    Swamidog,

    You are correct about wave files being less than optimal for re-editing and such.

    But you are not thinking about the fact that LaserBoy wave files (although fully cooked) can be imported back into LaserBoy and stripped of all of their optimizations and other connections to time.

    You can give someone a ready-to-go-show as a wave file and they can break it back down to it's original virgin frame set and work with that as though it came from an ILDA file import.

    That is what almost all of the LaserBoy additions to the wave file format are all about!

    Gary,

    Yes there are many judgement calls to make about optimizing that would be very difficult to put into deterministic code. Your ideas about making vector art from more abstract concepts are valid, but I think you would agree that there are some times when you really need a POLYLINE (a series of vectors). How else would you represent a hand drawn cartoon? And if you are going to allow such things, then you have to include them in some sort of intelligent optimization scenario. And that should work for circles made from POLYLINEs as well.

    James.
    Last edited by james; 01-20-2015 at 11:32.
    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. #37
    swamidog's Avatar
    swamidog is online now Jr. Woodchuckington Janitor III, Esq.
    Join Date
    Nov 2006
    Location
    santa fe, nm
    Posts
    1,545,760

    Default

    Quote Originally Posted by james View Post
    Swamidog,

    You are correct about wave files being less than optimal for re-editing and such.

    But you are not thinking about the fact that LaserBoy wave files (although fully cooked) can be imported back into LaserBoy and stripped of all of their optimizations and other connections to time.

    You can give someone a ready-to-go-show as a wave file and they can break it back down to it's original virgin frame set and work with that as though it came from an ILDA file import.

    That is what almost all of the LaserBoy additions to the wave file format are all about!

    James.
    no. i am not forgetting that. it's just a really unwieldy process for show construction.
    suppose you're thinkin' about a plate o' shrimp. Suddenly someone'll say, like, plate, or shrimp, or plate o' shrimp out of the blue, no explanation. No point in lookin' for one, either. It's all part of a cosmic unconciousness.

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

    Default

    Swamidog,

    I don't see your point.

    All you do is open the wave in LB and you get a frame set. That is no different than opening an ILDA file.

    That's easier than opening a directory full of DXF files. It's already been optimized for lasers.

    Maybe the hard part for you is using LaserBoy. But that's not what this is about. It's about recognizing the utility of using LaserBoy formatted waves as a storage and transport format.

    At the time of this writing and since many years ago... the following values are stored in the header of LB waves:

    lit_dwell_overhang
    lit_delta_max
    blank_delta_max
    max_dwell_microsec
    max_wag_microsec
    insignificant_distance
    insignificant_angle
    frames_per_second

    These are parameters used in optimizing the contents of "this" wave. This is almost exactly what was asked for earlier in this thread.

    LB can show you all of the added information in the headers of its own waves.

    LB waves can be, and usually are, fully optimized for time. The parameters used to do this are stored in the file. There is absolutely no way to do any of this with an ILDA file.

    James.
    Last edited by james; 01-20-2015 at 12: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.

  9. #39
    Join Date
    Mar 2010
    Location
    Raleigh, NC
    Posts
    2,293

    Default

    Quote Originally Posted by james View Post
    Gary,

    Yes there are many judgement calls to make about optimizing that would be very difficult to put into deterministic code. Your ideas about making vector art from more abstract concepts are valid, but I think you would agree that there are some times when you really need a POLYLINE (a series of vectors). How else would you represent a hand drawn cartoon? And if you are going to allow such things, then you have to include them in some sort of intelligent optimization scenario. And that should work for circles made from POLYLINEs as well.

    James.
    Yes, of course. I wasn't ruling that out. In that case it is just a matter of finding the closest point. Business as usual.

    Well, I guess that isn't entirely true. A circle really isn't a circle, it's a line that happens to end at the same place. If you look at the Win32 paths there is the concept of closed paths. That's kind of how True Type Fonts are made. They have solved the problem there. They even have the concept of flattening to get ride of redundant points. Check it out.

  10. #40
    Join Date
    Mar 2010
    Location
    Raleigh, NC
    Posts
    2,293

    Default

    swami's point is that when creating shows you don't want to deal with a big file. You want to deal with a lot of content that can be placed or dynamically created on a timeline. Some of the content doesn't even exist until the show is running and creating it in real time. How do express an algorithm in a wave file? It's kind of like how sound engineers deal with tons of tracks, samples, etc when creating music. It doesn't get put into a wave file until it is ready for the CD.

Posting Permissions

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