7 ms·
Penrose 3.0
- sestep 3y agoSam here (Penrose maintainer and one of the authors of this announcement post), AMA :)
- jahsome 3y agoSlightly off topic but I'll share my $.02 because you mentioned you authored the post. These types of announcements would be so much better if they included a brief blurb about what the project is near the beginning. I think these posts get a lot of new eyeballs, and as someone who clicks on a lot of "new major release for X" posts, it's always an annoying side quest to go and figure out what the product is before going back to the post. Congrats on the launch :)
- lgas 3y agoAt the very least, make the first mention of the product name a link to someplace with a description. It amazes me how often people skip basic things like this.
- sestep 3y agoGood point, thanks! Editing the post now, should have an updated version up soon with a blurb.
- bjornasm 3y agoAgreed. Its always "Finally we have added xyz support for our abc module, now you can just call mnb by using the cba function!!" while (I believe) 90% of the people reading that just want to know what kind of tool it is. On topic: This tool to make diagrams using plain text looks great. Definately going to see if I can utilize it in a project. Example: https://penrose.cs.cmu.edu/try/?examples=graph-domain/other-examples/hamiltonian-cycle https://penrose.cs.cmu.edu/try/?examples=graph-domain/other-...
- ComodoHacker 3y agoIt's one click away, have we power users become that lazy?
- jahsome 3y agoMaybe, but I also think it's good writing practice to lay a foundation for readers. My reference point would be "proper" press releases. There's always some very basic blurbs about the company and/or product being announced, in addition to the meat of the announcement. This blog is essentially a press release for nerds, so I think following a similar pattern is in the best interest of the writers for these announcements.
- ninepoints 3y agoI'm a long time TikZ user and have been following penrose since the initial video introduction. Really great progress! At this point, what do you think an avid TikZ/dot/pgf user might miss the most when trying Penrose?
- sestep 3y agoThanks! And great question; I'd probably say the main missing pieces would be the level of integration and the amount of general programming you can do. The former is kind of difficult for Penrose to compete with; for instance, to let people use Penrose in Overleaf, AFAIK we'd need to get it into the TeX Live distribution, which is pretty strict about what sorts of code is allowed. Specifically, our optimizer is written in Rust which we compile to WebAssembly, neither of which currently seem to be supported in the TeX Live build system. The latter is something we're working hard on. We're trying to find the right balance between simplicity and expressiveness, and starting to explore options beyond our trio-DSL approach. We don't have great docs on this yet, but we have some experiments with using Penrose as a library in combination with SolidJS: https://github.com/penrose/penrose/tree/v3.0.0/packages/solids/src https://github.com/penrose/penrose/tree/v3.0.0/packages/soli...
- ninepoints 3y agoThanks for the response and all that makes sense. These days, a lot of the LaTeX and TikZ I write is honestly embedded in web and asciidoc content (via custom extensions and a lot of shoestring interprocess scripting) so that seems perfectly fine. Ironically, I use SolidJS when I happen to do web stuff also, so I'll be sure to check that out.
- wodenimoni 3y agoNimo here, the other author of the blog post :). Another advantage of TikZ is you can use it directly in LaTeX. TeX integration is something we care deeply about, so v3 introduces an export mode compatible with the svg package (https://ctan.org/pkg/svg?lang=en https://ctan.org/pkg/svg?lang=en). Basically we export SVGs with raw <text> elements that LaTeX can style together with the rest of the document. More docs here: https://penrose.cs.cmu.edu/docs/ref/using#export https://penrose.cs.cmu.edu/docs/ref/using#export.
- enriquto 3y ago> AMA As a mathematician. I cannot get over the fact that a tool called Penrose that makes (according to its documentation) diagrams, does not, in fact, make Penrose diagrams [0]. Nor even Penrose-Carter diagrams [1] The output looks lovely, and I would like to use this for my math notes, but I cannot bear to accept such a disturbing name. Question: Why did you chose this confusing name? Could you justify it in the introduction of the documentation? [2] [0] https://en.wikipedia.org/wiki/Penrose_graphical_notation https://en.wikipedia.org/wiki/Penrose_graphical_notation [1] https://fr.wikipedia.org/wiki/Diagramme_de_Penrose-Carter https://fr.wikipedia.org/wiki/Diagramme_de_Penrose-Carter [2] https://penrose.cs.cmu.edu/docs/ref https://penrose.cs.cmu.edu/docs/ref
- cstrahan 3y agoFWIW as a non-mathematician: when I hear “Penrose” I think “Penrose Diagram”. The name association would benefit me as a sort of mnemonic: if I saw a binary called penrose on my system, I would guess it has something to do with diagrams (not necessarily Penrose diagrams). Similarly, if I forgot the name of this tool, it would be easy to recall, as there aren’t too many “____ diagram” word pairs floating around in my brain. I give libraries and executables pithy names along the same lines, where one word that isn’t already in use (“Penrose”) strongly associates with another more general word (“diagram”) in my memory. Look at the VHS tool for example — it doesn’t have anything to do with physical VHS tapes, but it does record a scripted shell invocation as a GIF for embedding in docs and demos and such. Super easy name to remember. See https://github.com/charmbracelet/vhs https://github.com/charmbracelet/vhs
- wodenimoni 3y agoWould love to hear what diagrams you'd like to make in your notes! > Why did you chose this confusing name? The main idea of the project is to generate diagrams from mathematical notations. So we want a name that people can associate with both "notations" and "diagrams." In addition to this, some of us also liked the fact that the name can be broken down into "pen" + "rose" :D. We're really open to suggestions on names if a new name can help us spread the words on our core idea and the tool. "Escher" was one of the early candidates, too. Let us know! > Could you justify it in the introduction of the documentation? Great suggestion! Will do. > As a mathematician. I cannot get over the fact that a tool called Penrose that makes (according to its documentation) diagrams, does not, in fact, make Penrose diagrams [0]. Nor even Penrose-Carter diagrams [1] We never got around to make some Penrose diagrams in Penrose, but Penrose is an extensible platform! If you make a lot of them and want to make them in Penrose, join the discord (https://discord.com/invite/a7VXJU4dfR https://discord.com/invite/a7VXJU4dfR) to chat with us. I'd love to have some Penrose diagrams in our gallery too ;).
- tunesmith 3y agoIn the examples I saw graphs but I'm not sure I saw directed acyclic graphs... does this do graphs that respect layered algorithms like sugiyama and elkjs?
- sestep 3y agoGood question! The graph styles you see in those examples can definitely be used to draw directed acyclic graphs (try opening one in the online editor and modifying the Substance file!), but it sounds like you may specifically be asking whether those graph layout algorithms are available in Penrose? In that case the answer is no, but you could write a Style program that does layered graph layout if you want. Unless I misunderstood your question?
- redsparrow 3y agoThank you for putting a brief description of the product at the top of the post. There are often posts on HN for new versions of software that I haven't heard of. I click on them out of curiosity only to find a post that only talks about the new version. I have to go looking to find out what the product/project actually is. (And often the post is on a blog that doesn't have a link back to the main product/project site!)
- btreecat 3y ago>We are excited to announce Penrose 3.0! We've added many exciting diagrams to our collection, reworked our core API, and improved support for more complex geometric queries... among many other things! Cool! What is Penrose?
- PaulHoule 3y agoSystem for drawing diagrams, particularly focused on entities and relationships.
- capableweb 3y agoFor the future, here is how you can find out yourself: Click on the element in the top-left corner and it usually brings you to the landing page. That's the introduction page for most visitors so probably contains useful information if you visit a change log/release page but don't know what the project is.
- wodenokoto 3y agoNo, that usually brings you to the front of the blog / forum / help page (depending on where you already are) It can be surprisingly difficult to move from blog to product page.
- tsuujin 3y agoThanks for confirming that I’m not crazy. I click on a lot of these version announcements and I always feel like getting to the “what even is this” is surprisingly hard.
- PaulHoule 3y agoThat separation of domain, substance and style is genius.
- deleted 3y ago[deleted]
- pbhjpbhj 3y agoI'm a bit lost looking at the examples, <snip> ... turns out that with uBlock on the examples partially break, the other files update but the .substance one does not ... which was very confusing to me!
- wodenimoni 3y agoGood catch! Opened an issue to investigate this https://github.com/penrose/penrose/issues/1553 https://github.com/penrose/penrose/issues/1553.
- kzrdude 3y agoAre you sure it's uBlock related? I disabled uBlock origin for the whole site but it still has that behaviour.
- pbhjpbhj 3y agoYes, pretty sure, I bypassed uBlock for the page, reloaded and then the examples made sense!
- kzrdude 3y agoFor me, using Firefox, following the tutorial produces blank output. Not sure why. Clarification: Following the instructions in the Basics chapter in the online workspace.
- wodenimoni 3y agoTesting the tutorial link (https://penrose.cs.cmu.edu/docs/tutorial/welcome https://penrose.cs.cmu.edu/docs/tutorial/welcome) locally with Firefox 115.0.2 seems okay. If this problem persists, can you file an issue about it in our repo: (https://github.com/penrose/penrose/issues https://github.com/penrose/penrose/issues)?