Live data from Hacker News

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

mattkeeter.com

11–20 of 47 posts

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

#11
This is a CAD tool truly worthy of the association with scheme. And I'm not just saying that: It provides minimal primitives for maximum power and flexibility. That's scheme in a nutshell.

It's also, not by coincedence, really, really cool.

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

#15
post #7

Ao's author here – I'd be glad to answer questions.

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 implementing a DSL. Developing on Antimony is also slower – much of the code is UI and glue to attach the geometry + graph engines.

Ao is more experimental and unstable. It's much lower-impedance for folks that want to work directly with f-reps, but doesn't have a click-and-drag UI with which to get started. The geometry kernel is also newer than Antimony's, and has slightly better performance. From a development perspective, I can play more easily with new algorithms without a cumbersome UI.

For folks that aren't as comfortable with coding, Antimony is the right choice. For f-rep development, Ao is the right choice. Otherwise, it's a matter of personal preference.

[1] https://github.com/mkeeter/antimony

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

#16
post #8
post #7

Ao's author here – I'd be glad to answer questions.

Having looked through some of your other projects there is some really amazing work you have done. I was wondering the graph node code you wrote. What does it use for library to render them to the screen?

I assume you're talking about Antimony. Its graph UI is done in Qt, using the QGraphicsView framework. That section of the code is at https://github.com/mkeeter/antimony/tree/develop/app/canvas

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

#17

Does Ao compute a mesh from scheme instructionz? or it is a trick? Basically can you dump the code that generates the things in a format that is efficient for a real time application? Oh! And thanks for using GNU Guile Scheme :)

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 for interactivity, which gets replaced with a pixel-perfect rendering (running in the background until complete).

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

#18
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 wouldn't say Python is more accessible. Considering this will be used by first time programmers who just want to design to print, and given that Scheme has less semantic baggage than Python, I'd wager that it's a better choice. Also, the data-driven nature of things is more natural to manage in a Lisp dialect.

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

#19
post #17

Does Ao compute a mesh from scheme instructionz? or it is a trick? Basically can you dump the code that generates the things in a format that is efficient for a real time application? Oh! And thanks for using GNU Guile Scheme :)

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?
Post reply on HN