Penrose (@usepenrose) 's Twitter Profile
Penrose

@usepenrose

create beautiful diagrams just by typing mathematical notation in plain text

ID: 1387856561004060673

linkhttps://penrose.cs.cmu.edu calendar_today29-04-2021 19:49:29

51 Tweet

1,1K Followers

14 Following

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

Little experiment with direct editing in Penrose. The beauty of Penrose is that it automatically generates diagrams for you, from simple CSS-like code. But what if you want to make some small tweaks—while respecting constraints? We're working on it… penrose.cs.cmu.edu/siggraph20

Wode "Nimo" Ni (@wodenimoni) 's Twitter Profile Photo

A pool player who works on Penrose must do Made with Penrose™ pool diagrams. Gave a talk about pool yesterday in the CMU Software and Societal Systems Department weekly seminar to show how a pool player plans their shots.

A pool player who works on <a href="/UsePenrose/">Penrose</a> must do Made with Penrose™ pool diagrams. Gave a talk about pool yesterday in the <a href="/S3DatCMU/">CMU Software and Societal Systems Department</a> weekly seminar to show how a pool player plans their shots.
Association for Computing Machinery (@theofficialacm) 's Twitter Profile Photo

Happy birthday to Don Knuth! Knuth received the 1974 #ACMTuringAward for his major contributions to the analysis of #algorithms and the design of #programming languages. Watch this video where Knuth discusses the origins & motivations of the TeX project: bit.ly/3IVls6D

Happy birthday to Don Knuth! Knuth received the 1974 #ACMTuringAward for his major contributions to the analysis of #algorithms and the design of #programming languages. Watch this video where Knuth discusses the origins &amp; motivations of the TeX project: bit.ly/3IVls6D
Keenan Crane (@keenanisalive) 's Twitter Profile Photo

[1/n] There's been a lot of hubbub lately about the best known packing of 17 unit squares into a larger square, owing to this post: x.com/KangarooPhysic… I realized this can be coded up in < 5 minutes in the browser via Penrose, and gave it a try. Pretty darn close! 🧵

[1/n] There's been a lot of hubbub lately about the best known packing of 17 unit squares into a larger square, owing to this post: x.com/KangarooPhysic…

I realized this can be coded up in &lt; 5 minutes in the browser via <a href="/UsePenrose/">Penrose</a>, and gave it a try.  Pretty darn close! đź§µ
Keenan Crane (@keenanisalive) 's Twitter Profile Photo

You can perfectly pack 16 unit squares into a larger 4x4 square. But what’s the smallest square that can contain 17 squares? Check out this thread for an interactive exploration, via Penrose!

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

What's the best way to pack N circles into a square? Using less than 20 lines of code in Penrose, we can reproduce the best-known solutions ever found: en.wikipedia.org/wiki/Circle_pa… Try it out for yourself! penrose.cs.cmu.edu/try/?gist=7587…

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

Thanks to Sam Estep, we squashed a 4+ year old bug in Penrose that makes it *asymptotically* faster! 🪲 Pro tip: if you're using L-BFGS to avoid building a dense matrix… don't build the dense matrix!! Try the new, way faster version of Penrose here: penrose.cs.cmu.edu/try/

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

The winding number of a polygon is, quite literally, the number of times a polygon "winds" around a given point x. It can be used for inside/outside tests by just summing the angles made by each (oriented) edge: zero if x is outside, ±2π if x is inside. [Made with Penrose.]

The winding number of a polygon is, quite literally, the number of times a polygon "winds" around a given point x.

It can be used for inside/outside tests by just summing the angles made by each (oriented) edge: zero if x is outside, ±2π if x is inside.

[Made with <a href="/UsePenrose/">Penrose</a>.]
Keenan Crane (@keenanisalive) 's Twitter Profile Photo

Animation of how the winding number changes as the center point x moves inside/outside a shape. Notice how the signed angle of an edge suddenly jumps from +π to -π (or vice versa) as x crosses an edge, changing the total signed angle by ±2π. [Made with Penrose]

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

Tired of making the same kind of diagrams over and over by hand (e.g., in PowerPoint)? The Penrose team has been working away on Penrose 3.0, an automated notation-to-diagram tool, finally released today! Check it out here: penrose.cs.cmu.edu/blog/v3

Tired of making the same kind of diagrams over and over by hand (e.g., in PowerPoint)?

The <a href="/UsePenrose/">Penrose</a> team has been working away on Penrose 3.0, an automated notation-to-diagram tool, finally released today!

Check it out here: penrose.cs.cmu.edu/blog/v3
apoorva.lal (@apoorva__lal) 's Twitter Profile Photo

penrose.cs.cmu.edu Penrose (now released) is promising looking domain-specific language for scientific figures that isn't bogged down by decades of tech-debt (cf Tikz/tex) Esp like the .style/.substance/.domain division, makes iteration easy (e.g. shape in 2, 'Pipe' in 3)

penrose.cs.cmu.edu 
Penrose (now released) is promising looking domain-specific language for scientific figures that isn't bogged down by decades of tech-debt (cf Tikz/tex) 
Esp like the .style/.substance/.domain division, makes iteration easy (e.g. shape in 2, 'Pipe' in 3)
Keenan Crane (@keenanisalive) 's Twitter Profile Photo

In a moment nobody was waiting for, I've released meshes from Mark Kilgard's classic OpenGL / GLUT demo "dinoshade.c": cs.cmu.edu/~kmcrane/Proje… The image below re-imagines this example as a vectorized SVG generated in Penrose—read how it was done here! github.com/penrose/penros…

In a moment nobody was waiting for, I've released meshes from Mark Kilgard's classic OpenGL / GLUT demo "dinoshade.c": cs.cmu.edu/~kmcrane/Proje…

The image below re-imagines this example as a vectorized SVG generated in <a href="/UsePenrose/">Penrose</a>—read how it was done here! github.com/penrose/penros…
Penrose (@usepenrose) 's Twitter Profile Photo

Q: How do you quickly multiply multi-digit numbers? A: Draw a diagram! Just draw a line for each 10's and 1's digit of the two factors, and count the number of crossings to get the 100's (yellow), 10's (blue), and 1's (red) digits of the product! Drawn here using Penrose.

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

A standard way to draw planar graphs is to draw nodes as dots and edges as line segments. But the Koebe–Andreev–Thurston theorem also shows that any planar graph can be visualized by drawing nodes as circular disks, which are tangent if they share an edge:

A standard way to draw planar graphs is to draw nodes as dots and edges as line segments.

But the Koebe–Andreev–Thurston theorem also shows that any planar graph can be visualized by drawing nodes as circular disks, which are tangent if they share an edge:
Keenan Crane (@keenanisalive) 's Twitter Profile Photo

Great work by the Penrose team building Bloom: a lightweight way to make interactive diagrams: penrose.cs.cmu.edu/blog/bloom All coordinates are automatically figured out by the Penrose layout engine, and diagram specifications can be re-used for different content (like HTML/CSS).

Wode "Nimo" Ni (@wodenimoni) 's Twitter Profile Photo

took the idea of “run the layout optimizer again when interacting with the diagram” pretty far this summer. Bloom is a React library for interactive diagrams. It lets you reuse the diagram styling just like Penrose, but in a general-purpose programming language.

Keenan Crane (@keenanisalive) 's Twitter Profile Photo

OpenAI's new 4o image generation is pretty amazing. It also fails on some utterly basic tasks. Maybe a good metaphor for how easily we can be misled by algorithms based largely on fitting empirical data (i.e., machine learning) rather than deductive reasoning. Penrose

<a href="/OpenAI/">OpenAI</a>'s new 4o image generation is pretty amazing.

It also fails on some utterly basic tasks.

Maybe a good metaphor for how easily we can be misled by algorithms based largely on fitting empirical data (i.e., machine learning) rather than deductive reasoning. <a href="/UsePenrose/">Penrose</a>