Results 1 to 8 of 8

Thread: Ether Dream for Go

  1. #1
    Join Date
    Oct 2016
    Location
    Eugene, OR
    Posts
    31

    Default Ether Dream for Go

    Ether Dream drivers for Go are now ready for testing.

    https://github.com/tgreiser/etherdream

    I need to do some path optimization, but there is already a nice Go library for rendering 3D vector art. Early days, but very promising results so far.

  2. #2
    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,890

    Default

    After doing some digging through three websites to find two libraries and a link to the GoDOCs page, the above post is a library to interface the Etherdream to a Vector art library for the "GO" programing language.

    Sir, In the future please introduce yourself in your first posts, fill out a profile, and take some time to explain what your post is about.

    Steve
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  3. #3
    Join Date
    Oct 2016
    Location
    Eugene, OR
    Posts
    31

    Default

    Hey, I'm Tim - sorry for the brief post. I have been working on laser software in TouchDesigner platform and Go programming language. I also have a laser A/V project called scnlns. The tgreiser/etherdream link above is a new driver for the Ether Dream laser DAC that I have just released. If anyone else is interested in using Go for laser programming I would love to get in touch.

  4. #4
    Join Date
    Apr 2012
    Location
    Atlanta, Georgia, US
    Posts
    37

    Default

    This is actually really nice and idiomatic Go code. I'm hoping my Rust bindings look as good when I'm done.

    Great work, scnlns!
    lasers.iobrand.io • bt at brand dot io • echelon at github (has some laser projector codes in Python and Rust)

  5. #5
    Join Date
    Sep 2016
    Posts
    7

    Default

    Quote Originally Posted by scnlns View Post
    Ether Dream drivers for Go are now ready for testing.

    https://github.com/tgreiser/etherdream

    I need to do some path optimization, but there is already a nice Go library for rendering 3D vector art. Early days, but very promising results so far.
    Hi Tim,

    I am interested in using Go for laser programming. Maybe we should touch base sometime.

    Best, Josh

  6. #6
    Join Date
    Oct 2016
    Location
    Eugene, OR
    Posts
    31

    Default

    Hey Josh, feel free to shoot over any questions.

    Update - after a little break I am making good progress again. I think we are approaching a stable release. I recently updated the driver to use a frame based approach instead of just sending points as quickly as possible. It is now possible to render an interactive scene based on 2D or 3D geometry.



    The other big change is now there are command line flags that can be used by any go etherdream program to set scan rate, blank count, etc. On any program you can add:

    go run examples/circle/circle.go -blank-count 18 -scan-rate 30000
    go run examples/ln1/ln1.go -help

    If you don't know about Go, think about it like C with garbage collection and concurrency primitives. It is fully cross platform and cross architecture so I expect all this code will run on Windows, Linux, Mac, BSD, Solaris and possibly Plan 9 and Android. You can compile cross platform binary executables that do not require an additional runtime. Performance wise it is a bit below languages like C or Rust, but it tries to make it easier for developers to write correct and performant code by having a low level of language complexity.

  7. #7
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Quote Originally Posted by scnlns View Post
    If you don't know about Go, think about it like C with garbage collection and concurrency primitives. It is fully cross platform and cross architecture so I expect all this code will run on Windows, Linux, Mac, BSD, Solaris and possibly Plan 9 and Android. You can compile cross platform binary executables that do not require an additional runtime. Performance wise it is a bit below languages like C or Rust, but it tries to make it easier for developers to write correct and performant code by having a low level of language complexity.
    No objects/classes?

  8. #8
    Join Date
    Oct 2016
    Location
    Eugene, OR
    Posts
    31

    Default

    Quote Originally Posted by colouredmirrorball View Post
    No objects/classes?
    No, it is not technically object oriented, but it is object-like. You can define interfaces and methods, but there is no real inheritance. It uses embedded types to represent relationships.

    https://tour.golang.org/methods/1

    The other unusual restriction is there are no exceptions. Error handling is strongly encouraged at every step of execution. At first it seems like a burden, but in the long run you realize you never have to deal with nulls or unexpected conditions because you would have handled the error already.

    https://tour.golang.org/methods/19

Posting Permissions

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