Live data from Hacker News

Ao is a tool for programmatic computer-aided design using Scheme

mattkeeter.com

21–30 of 47 posts

Re: Ao is a tool for programmatic computer-aided design using Scheme

#21
post #17

Earlier quoted context omitted.

The Scheme functions go through a JIT-ish pass into a representation that's efficient for rendering. Details are at http://www.mattkeeter.com/projects/ao/jit.html Rendering is done with pixel-perfect rasterization of the function. Models are only gets converted into a mesh when you're exporting. This may change in the future, as it's much easier to spin around a mesh – the right strategy is probably a low-res mesh fo…

I wonder if using a generic procedure would work better than redefining + outright. If you opened up Ao and typed (+ 1 1) at the REPL, would you see 2 as the result or a token object?

The redefined + only behaves differently when one or more of its arguments is a token object, so normal math works fine.

Generic procedures may be a cleaner way to do this, but I only discovered GOOPS after this implementation was already working.

Re: Ao is a tool for programmatic computer-aided design using Scheme

#22
post #21

Earlier quoted context omitted.

I wonder if using a generic procedure would work better than redefining + outright. If you opened up Ao and typed (+ 1 1) at the REPL, would you see 2 as the result or a token object?

The redefined + only behaves differently when one or more of its arguments is a token object, so normal math works fine. Generic procedures may be a cleaner way to do this, but I only discovered GOOPS after this implementation was already working.

>The redefined + only behaves differently when one or more of its arguments is a token object, so normal math works fine.

Ah yes, I'm just blind and missed the implementation in your article. Thanks for explaining!

Re: Ao is a tool for programmatic computer-aided design using Scheme

#23
post #15

Earlier quoted context omitted.

What separates this from Antimony? Would you use one over the other in certain contexts? Why?

Antimony [1] is stable and user-friendly. You can get started without knowing about the underpinnings, just by connecting predefined shape nodes into a graph – basic modeling is possible with just the mouse, as shapes can define handles in the UI. Using Python for scripts is also a bit more accessible than Scheme. The downside is that hacking raw shapes is less pleasant, because they're defined as strings implementin…

I think it'd be killer if you could combine the user interface of Antimony with the same inspectability Ao. What would it take to achieve an Antimony-like UI on top of Ao?

Re: Ao is a tool for programmatic computer-aided design using Scheme

#24
Apropos of nothing, whenever I see blue and red fonts close together, as in the first image or my recent Spacemacs configuration, my brain tries to interpret it as a 3-D image.

It's been years since I've seen a blue/red 3-D image, but the effect is still there. Is it just me?

Re: Ao is a tool for programmatic computer-aided design using Scheme

#26
post #5

Finally something that looks like it could replace the horribleness that is openscad.

Shameless self promotion, but you might be interested in scad-clj [0]: a DSL to write OpenSCAD with Clojure. You can get a decent interactive environment combining an editor with an OpenSCAD window set to only show the render [1].

[0] https://github.com/farrellm/scad-clj

[1] https://adereth.github.io/blog/2014/04/09/3d-printing-with-c...

Re: Ao is a tool for programmatic computer-aided design using Scheme

#27
post #23
post #15

Earlier quoted context omitted.

Antimony [1] is stable and user-friendly. You can get started without knowing about the underpinnings, just by connecting predefined shape nodes into a graph – basic modeling is possible with just the mouse, as shapes can define handles in the UI. Using Python for scripts is also a bit more accessible than Scheme. The downside is that hacking raw shapes is less pleasant, because they're defined as strings implementin…

I think it'd be killer if you could combine the user interface of Antimony with the same inspectability Ao. What would it take to achieve an Antimony-like UI on top of Ao?

I'm currently writing a toy library to play with hierarchical graphs – if Ao is a minimal implementation of Antimony's CAD, this will be a minimal implementation of the graph engine.

Beyond that, it's a small matter of programming – I'd want to find a UI paradigm / library that's less cumbersome that Antimony's, as the UI programming adds a lot of impedance to development.

Post reply on HN