Slashdot Mirror


Tao3D: a New Open-Source Programming Language For Real-Time 3D Animations

descubes (35093) writes "Tao3D is a new open-source programming language designed for real-time 3D animations. With it, you can quickly create interactive, data-rich presentations, small applications, proofs of concept, user interface prototypes, and more. The interactivity of the language, combined with its simplicity and graphical aspects, make it ideal to teach programming.

Tao3D also demonstrates a lot of innovation in programming language design. It makes it very easy to create new control structures. Defining if-then-else is literally a couple of lines of code. The syntax to pass pass blocks of code to functions is completely transparent. And it is fully reactive, meaning that it automatically reacts as necessary to external events such as mouse movements or the passage of time.

The source code was just made available under the GNU General Public License v3 on SourceForge [as linked above], GitHub and Gitorious."

2 of 158 comments (clear)

  1. Re:Where is IF-THEN-ELSE more verbose than that? by descubes · · Score: 3, Informative

    The actual definition of if-then-else can be found here. It looks like this:

    // If-then-else statement
    if true then TrueBody else FalseBody -> do TrueBody
    if false then TrueBody else FalseBody -> do FalseBody

    if true then TrueBody -> do TrueBody
    if false then TrueBody -> false

    The definition of the 'for' loop is more convoluted and is actually found in C++ code. It looks like this:


    FORM(IntegerForLoop, tree,
              "for Var in Low:integer..High:integer loop Body",
              PARM(Var, tree, "")
              PARM(Low, integer, "")
              PARM(High, integer, "")
              PARM(Body, source, ""),
              return xl_integer_for_loop(context,self, &Var, Low, High, 1, &Body), )
    FORM(IntegerForLoopStep, tree,
              "for Var in Low:integer..High:integer by Step:integer loop Body",
              PARM(Var, tree, "")
              PARM(Low, integer, "")
              PARM(High, integer, "")
              PARM(Step, integer, "")
              PARM(Body, source, ""),
              return xl_integer_for_loop(context,self, &Var, Low,High,Step, &Body), )
    FORM(RealForLoop, tree,
              "for Var in Low:real..High:real loop Body",
              PARM(Var, tree, "")
              PARM(Low, real, "")
              PARM(High, real, "")
              PARM(Body, source, ""),
              return xl_real_for_loop(context,self, &Var, Low, High, 1.0, &Body), )

    --
    -- Did you try Tao3D? http://tao3d.sourceforge.net
  2. Things you need to fix if you want users by BitZtream · · Score: 1, Informative

    Drop GPL v3, most everyone I know isn't going to touch you with a 10 foot pole if you use GPLv3. Just like using GPL is a matter of principle, NOT using v3 is a matter of principle for many people. Yes, some people like GPLv3, most don't. Do you really want your entire user base to be composed of rabid fanboys?

    Fix your shitty website. You point people to source forge ... which is crappy by modern standards, and then link to your website ... which has basically no useful information what so ever on the front page ... and a link back to sourceforce ... wtf?

    Your website uses arrow keys to navigate? Seriously? Not sure how you could make it any less usable. This alone tells me I don't want to bother with your software any further, you clearly have no concept of staying within established design paradigms and think you can do something better than the standard when you clearly can't. I don't have to go any further to know that you are bad at designing something. You're changing things for the sake of change, not because it does something better. Have you actually used the Internet in the last 10 years? This website is a shining example of how to do it wrong ... and you're trying to push technology when you clearly don't know how to use technology? To use words that match your dated website ... epic fail.

    You're deriving your template language from XL? No point in bothering to continue this discussion, you ... like the authors of XL ... don't get it. Just stop.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager