6 ms·
Ronin – A Lisp-based image processing tool
- jierenchen 6y agoThis is exceptionally cool. Thanks for sharing and building! When I'm using Sketch or Movie Maker or Logic or some other GUI-based >>x<< editing tool, the thing that keeps going through my head is: "Dammit I wish I had the abstraction tools that I have as a programmer. It would literally make this task 100x faster." To me Ronin is some strong validation that all these editing tools would be much improved by a human-readable and programmable intermediate representation of what you're doing with the GUI. The GUI is just an editor for modifying this representation. John Carmack did some work when he was at Oculus on something like this for VR: - https://www.youtube.com/watch?v=ydyztGZnbNs https://www.youtube.com/watch?v=ydyztGZnbNs These ideas are all in their infancy, but really excited to see people starting to make moves in this field. Thanks again!
- GuiA 6y agoThey complement each other. There are certain things that I’d love to pull up a command line for (e.g. quickly aligning dozens of objects using a non trivial heuristic); but on the other hand there are plenty of things where the act of visually working through it, placing multiple options side by side on the canvas, rearranging things by hand etc., helps in solving the problem itself. What would be really nice is if we had a solid set of standards for inter operation, such that I could work on the same video editing project in After Effects, through the command line, through some open source tools someone else wrote... etc. I have a project right now where I have assets generated in Sketch, some other assets generated by Python scripts, all feeding into an AE project, the output of which gets fed back into some of the Python scripts... I can do great things, but it’s super kludgy/buggy to work with, and as a software engineer see so many trivial ways in which it could all be so much faster and more pleasant to work with (e.g. After Effects natively only supports very limited JS like scripting, so I have to have duplicated Python + AE code... and if the AE motion tracker could serialize tracking data for Python...). I’m not holding my breath because this kind of computing, while more aligned in philosophy with the early composable UNIX roots, is IMO most entirely incompatible with the state of the (creative) software industry/economy (Adobe, like everyone else, would like to do as much as they can so that you do not give any of your time or money to creative software other than Adobe’s).
- jierenchen 6y ago> They complement each other. There are certain things that I’d love to pull up a command line for (e.g. quickly aligning dozens of objects using a non trivial heuristic); but on the other hand there are plenty of things where the act of visually working through it, placing multiple options side by side on the canvas, rearranging things by hand etc., helps in solving the problem itself. > What would be really nice is if we had a solid set of standards for inter operation, such that I could work on the same video editing project in After Effects, through the command line, through some open source tools someone else wrote... etc. The big challenge I see here is a two-way mapping between code/representation and GUI. Ronin here has code >> graphics, but question is how to have a clean mapping from graphics >> code? > I’m not holding my breath because this kind of computing, while more aligned in philosophy with the early composable UNIX roots, is IMO most entirely incompatible with the state of the (creative) software industry/economy (Adobe, like everyone else, would like to do as much as they can so that you do not give any of your time or money to creative software other than Adobe’s). I do wonder if this is going to be a space that gets disrupted. We're already seeing this with smaller players like Sketch and Figma going into the image space. Still GUI tools, but proves that the barrier to entry isn't quite as high. Is the technical moat for audio and video THAT insurmountable? I get that people won't be making the next hot music video on open source software right now, but I personally could use something dead simple to compose together a bunch of screen recordings into a demo video. > I have a project right now where I have assets generated in Sketch, some other assets generated by Python scripts, all feeding into an AE project, the output of which gets fed back into some of the Python scripts... I can do great things, but it’s super kludgy/buggy to work with, and as a software engineer see so many trivial ways in which it could all be so much faster and more pleasant to work with (e.g. After Effects natively only supports very limited JS like scripting, so I have to have duplicated Python + AE code... and if the AE motion tracker could serialize tracking data for Python...). Whatcha making in AE?
- disconcision 6y agore: two-way mapping: see sketch-n-sketch (https://ravichugh.github.io/sketch-n-sketch/ https://ravichugh.github.io/sketch-n-sketch/) for another effort in this vein
- sitkack 6y agoFWIW, Autocad, being written in Lisp, had a repl that was fed via the UI, so that you could basically see what the UI was generating and write your own scripts based off that. I haven't used Autocad in 25 years, so I don't know how much of this is still true.
- galfarragem 6y agoAutocad still allows all of that, and, in my opinion, a lot of its success is derived from that. Even Autocad clones have a Lisp repl.
- angleofrepose 6y agoI've been following Ronin and the author for a few years now from a distance. As I have said in other threads on hn about this work, the theme and ethos are so consistent and thorough they just slap you in the face. You know exactly what is going on with Ronin, Oscean, Orca and it is a pleasure to see such clear manifestation of intent. Ronin in particular is the most fascinating piece of this network to me. I was hooked by the (broken) version 1.0 when I first found it a couple years ago and played around a bit with fixing it. It played well with a few other key influences in my life and I've been playing around with similar--albeit prototype--systems ever since. To name one stand out feature. I have been playing around with generative design/creative coding/coding art for a while now and I seem to be on an edge of the domain. My work lately has been increasingly taking a set of starter points, so to speak. I have shapes or layouts in my head that I want to run through the generative process, but I am distinctly starting with these hard coded values. Ronin provides direct manipulation on the canvas with `$` prefixes in the code. If you type `$point`, then click on the canvas, "$point" is replaced with code representing that point. The simplicity of this interface for writing code that heavily involves numbers in context (ie on their domain) is an inspiration. There are probably a couple of names for this connectivity, but one might be bi-directional evaluation. Manipulations in code yield the canvas, and manipulations on the canvas yield code. There's a lot going on here, xxiivv.com And some fun to be learned by poking through git commits. If you know Orca, (was popular here a while back) it didn't start as a music generation system. Edit: Ronin tutorial video, 5:22. First 30s tease the original version I saw. https://www.youtube.com/watch?v=SgAWGh1s9zg https://www.youtube.com/watch?v=SgAWGh1s9zg Old version tutorial/demo 4:09 : https://www.youtube.com/watch?v=gifzjhyBwOc https://www.youtube.com/watch?v=gifzjhyBwOc
- GuiA 6y agoCheck out acme/plan9. Lots of similar cursor/content/programming synergies. There are entire parallel end user computing universes out there that we have barely scratched the surface of.
- angleofrepose 6y agoThere is a plan9 and acme demo on YouTube which is eye opening. One idea that has captured me is the idea that end users ought to be able to create custom UIs. This appears to be a foundational principle of plan9, the way all text is able to be executed. Another avenue for this idea are ZUIs as originally envisioned. Individual clipboard state can be reified as buttons in the UI, any formatting or pens or fonts can also be manifested in the interface and selected with something along the lines of the "eyedropper" tool present in many applications. edit: video here https://www.youtube.com/watch?v=dP1xVpMPn8M https://www.youtube.com/watch?v=dP1xVpMPn8M "A Tour of the Acme Editor" by Russ Cox
- snidane 6y agoThe author was recently featured in a brilliant Future of Coding pocast, providing some highly inspiring ideas. #44 - Making Your Own Tools: Devine Lu Linvega https://futureofcoding.org/episodes/044 https://futureofcoding.org/episodes/044 #45 - Orca: Devine Lu Linvega https://futureofcoding.org/episodes/045 https://futureofcoding.org/episodes/045
- gtsnexp 6y agoExcellent interviews.
- pavlov 6y agoLisp has a long history in computer graphics. It was particularly popular in the 1980s. There was Symbolics, a manufacturer of Lisp workstations (sometimes also remembered as the first company to register a .com domain). Symbolics had a Lisp-programmable 3D graphics suite that seems to have been fairly successful at the end of the decade. Here’s a video from 1989: https://youtu.be/gV5obrYaogU https://youtu.be/gV5obrYaogU The video doesn’t seem to show any Lisp though. On the 2D side, the immensely popular AutoCAD adopted Lisp as its expansion language in 1985. Autodesk founder John Walker explains the decision in this contemporary memo “Why Lisp”: https://www.fourmilab.ch/autofile/e5/ https://www.fourmilab.ch/autofile/e5/
- amelius 6y agoIsn't this just SVG but with different syntax?
- jazzyjackson 6y agois SVG more than a markup language? Ronin has trig operators, lamda functions, conditionals etc
- deleted 6y ago[deleted]
- dmix 6y agoReminds me of Symbolics S-PACKAGES from the 1980s... (also LISP) https://www.youtube.com/watch?v=gV5obrYaogU https://www.youtube.com/watch?v=gV5obrYaogU Edit: looks like someone beat me to it below
- lucioperca 6y agoCan some plz hack Emacs support for this. Lisp without paredit-mode or lispy-mode is really not my cup of tea anymore.
- jdormit 6y agoWhy not take a shot at it yourself? Both Emacs and Ronin are open source.