4 ms·
Quicksand: Lightweight Probabilistic Programming Implemented in Terra (2014) [pdf]
- eggy 8y agoI am trying to see how the procedural model generation of this paper stacks up against Rosetta [1], which I intermittently use with Racket [2] to do procedural geometry generation for computational design, sculptural, architectural, game dev, and other endeavors. It seems lengthier, but more diverse in its iterations. I am hoping to leverage my early C programming with newly-found Terra, and Lua to allow me to move across legacy low-level, meta-programmable low-level, and scripting for the many things I play around with, even creating DSLs. I've used Grasshopper in Rhino, and others, but I like staying away from having an AutoCAD or Rhino license, and just use code. I need to make another backend target for Rosetta other than OpenGL. FreeCAD [3] is my current target, so I can create some type of geometry for the CAD folk, and 3D printing. I really like Lisp, so Racket and Rosetta tick a box for that, but I am now thinking I can use Terra/Lua/Fennel [4] for a toolchain. It's easy to hook into FreeCAD's API using C++ or Python, which is uses and has a terminal for in the GUI. Maybe Fennel terminal in FreeCAD? [1] http://web.ist.utl.pt/antonio.menezes.leitao/Rosetta/tutorials/introduction.html http://web.ist.utl.pt/antonio.menezes.leitao/Rosetta/tutoria... [2] racket-lang.org [3] https://www.freecadweb.org https://www.freecadweb.org [4] https://fennel-lang.org https://fennel-lang.org
- cinterloper2 8y agoI think the biggest problem with Quicksand is that its creator stopped updating it after Terra went to 'eager type-checking'. I'm not a Terra expert, but I did go through the Quicksand code a little while back, and a bunch of it seems to still compile, but one of the big things that does not work is the constructor/deconstructor system. It could be fixed, but it would take a bunch of effort. Fortunately the Terra project seems to be coming back to life recently. Its interesting you mention Fennel, I think embedding Terra in Extempore using Fennel or http://urn-lang.com/ http://urn-lang.com/ would be fairly fun, there may be a better way to go about it though; both xtlang and terra have a current stable release based on LLVM 3.8, so they should be able to trade llvm bitcode back and forth without high level language translation. I have a super prototype piece of Terra code that will spit out xtlang type declarations for Terra functions. Hit me up at grant@iowntheinter.net if your actually interested in forking quicksand and bringing it up to date with the current Terra version.