Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Penrose logo #1605

Merged
merged 18 commits into from Aug 8, 2023
Merged

feat: Penrose logo #1605

merged 18 commits into from Aug 8, 2023

Conversation

keenancrane
Copy link
Collaborator

image

This PR adds a function Penrose() that generates the Penrose logo as a single compound path. In addition to the default logo, the function is parameterized to generate "impossible" n-gons for any n ≥ 3, with several additional parameters that control shape and size. The PR also includes an example (shown above), and diagrams that document these parameters (see examples/impossible-ngon/README.md).

@cloudflare-pages
Copy link

cloudflare-pages bot commented Aug 6, 2023

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: 218ade0
Status: ✅  Deploy successful!
Preview URL: https://ac5ebe23.penrose-72l.pages.dev
Branch Preview URL: https://penrose-logo.penrose-72l.pages.dev

View logs

@github-actions
Copy link

github-actions bot commented Aug 6, 2023

± Registry diff

A	impossible-ngon/ngon.svg
A	impossible-ngon/nsides-chirality.svg
A	impossible-ngon/parameters.svg

📊 Performance

Key

Note that each bar component rounds up to the nearest 100ms, so each full bar is an overestimate by up to 400ms.

     0s   1s   2s   3s   4s   5s   6s
     |    |    |    |    |    |    |
name ▝▀▀▀▀▀▀▀▀▀▚▄▄▄▄▄▄▄▄▄▄▞▀▀▀▀▀▀▀▀▀▘
      compiling optimizing rendering

If a row has only one bar instead of four, that means it's not a trio and the bar just shows the total time spent for that example, again rounded up to the nearest 100ms.

Data

                                                          0s   1s   2s   3s   4s   5s   6s   7s
                                                          |    |    |    |    |    |    |    |
set-theory-domain/tree-venn                               ▝▀▀▞
set-theory-domain/tree-tree                               ▝▚▘
group-theory/quaternion-multiplication-table              ▝▀▀▀▚▀▀
walk-on-spheres/SignedAngleOutside                        ▝▀▀▀▞▘
spectral-graphs/examples/hypercube                        ▝▀▀▞
group-theory/quaternion-cayley-graph                      ▝▀▞▘
set-theory-domain/tree-venn-3d                            ▝▚▘
atoms-and-bonds/one-water-molecule                        ▝▞
structural-formula/molecules/caffeine                     ▝▀▀▀▚▄▀▘
walk-on-spheres/walk-on-stars                             ▝▀▀▀▚▀▀▘
set-theory-domain/continuousmap                           ▝▚▘
mobius/mobius                                             ▝▚▘
linear-algebra-domain/two-vectors-perp                    ▝▚▘
tutorials/tutorial1                                       ▝▞
tutorials/tutorial2                                       ▝▞
tutorials/tutorial3                                       ▝▞
molecules/nitricacid-lewis                                ▝▀▀▞
exterior-algebra/vector-wedge                             ▝▚▘
shape-spec/all-shapes                                     ▝▀▞▀
shape-spec/arrowheads                                     ▝▞
graph-domain/textbook/sec1/fig1                           ▝▀▀▄▞
graph-domain/textbook/sec1/fig2                           ▝▀▀▚▄▞
graph-domain/textbook/sec1/fig3                           ▝▀▀▀▄▄▞
graph-domain/textbook/sec1/fig4                           ▝▀▀▀▄▄▘
spectral-graphs/examples/hexagonal-lattice                ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▚▄▀▀
dinoshade/dinoshade                                       ▝▀▀▀▀▀▀▞▀
spectral-graphs/examples/grid                             ▝▀▀▀▀▀▀▀▀▀▀▚▄▀
spectral-graphs/examples/box                              ▝▀▀▀▀▀▀▀▀▀▞▘
graph-domain/textbook/sec1/fig5                           ▝▀▀▀▚▄▄▞
graph-domain/textbook/sec1/fig6                           ▝▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄▄▄▄▘
graph-domain/textbook/sec1/fig7                           ▝▀▚▘
graph-domain/textbook/sec1/fig8a                          ▝▀▀▀▚▄▄▘
graph-domain/textbook/sec1/fig8b                          ▝▀▀▚▄▄▘
graph-domain/textbook/sec1/fig9                           ▝▀▀▄▀
graph-domain/textbook/sec1/fig10                          ▝▀▀▞▘
graph-domain/textbook/sec1/fig11                          ▝▀▀▀▚▞▘
graph-domain/textbook/sec1/fig12                          ▝▀▀▀▚▄▞
graph-domain/textbook/sec1/fig13                          ▝▀▀▚▄▞
graph-domain/textbook/sec2/fig3                           ▝▀▀▀▀▀▀▄▄▄▄▞
graph-domain/textbook/sec2/fig4                           ▝▀▀▀▀▀▄▄▄▘
graph-domain/textbook/sec2/fig5                           ▝▀▀▀▀▀▀▚▄▄▄▞
graph-domain/textbook/sec2/fig6                           ▝▀▀▀▀▀▀▚▄▄▄▄▘
graph-domain/textbook/sec2/fig9                           ▝▀▀▀▀▀▀▀▀▀▀▀▚▄▄▄▄▄▄▞
graph-domain/textbook/sec2/fig10a                         ▝▀▀▄▄▘
graph-domain/textbook/sec2/fig10b                         ▝▀▀▄▀
graph-domain/textbook/sec2/fig11a                         ▝▀▚▘
graph-domain/textbook/sec2/fig11b                         ▝▀▞
graph-domain/textbook/sec2/fig11c                         ▝▀▚▘
graph-domain/textbook/sec2/fig12                          ▝▀▞
graph-domain/textbook/sec2/fig13                          ▝▀▀▀▀▀▀▀▀▀▚▄▄▄▄▄▄▄▄▄▘
graph-domain/textbook/sec2/fig14                          ▝▀▀▀▚▄▞
graph-domain/textbook/sec2/fig16b                         ▝▀▚▀
geometry-domain/textbook_problems/c05p13                  ▝▀▚▘
geometry-domain/textbook_problems/c01p01                  ▝▀▚▘
geometry-domain/textbook_problems/c03p01                  ▝▀▞
geometry-domain/textbook_problems/c05p01                  ▝▀▞
geometry-domain/textbook_problems/ex                      ▝▀▀▄▘
triangle-mesh-3d/two-triangles                            ▝▀▚▘
random-sampling/test                                      ▝▀▀▚▘
geometry-domain/textbook_problems/c11p12                  ▝▀▚▘
curve-examples/catmull-rom/catmull-rom                    ▝▚▘
word-cloud/example                                        ▝▀▀▄▄▘
geometry-domain/siggraph-teaser                           ▝▀▀▄▘
minkowski-tests/maze/non-convex                           ▝▚▘
lagrange-bases/lagrange-bases                             ▝▚▘
hypergraph/hypergraph                                     ▝▀▀▀▄▄▄▄▄▄▄▄▄▄▄▄▄▘
persistent-homology/persistent-homology                   ▝▀▚▄▄▞▘
walk-on-spheres/laplace-estimator                         ▝▀▚▘
walk-on-spheres/poisson-estimator                         ▝▀▚▘
walk-on-spheres/nested-estimator                          ▝▀▀▀▞
walk-on-spheres/offcenter-estimator                       ▝▀▚▘
shape-distance/points-around-star                         ▝▀▀▞▘
shape-distance/points-around-polyline                     ▝▀▞
shape-distance/points-around-line                         ▝▀▞
shape-distance/lines-around-rect                          ▝▚▘
fake-3d-linear-algebra/projection                         ▝▞
animation/center-shrink-circle                            ▝▞
graph-domain/other-examples/hamiltonian-cycle             ▝▀▀▚▞▘
structural-formula/reactions/methane-combustion           ▝▀▀▀▄▄▄▄▄▄▘
molecules/glutamine                                       ▝▀▚▘
matrix-ops/tests/matrix-matrix-addition                   ▝▚▘
matrix-ops/tests/matrix-matrix-division-elementwise       ▝▚▘
matrix-ops/tests/matrix-matrix-multiplication-elementwise ▝▚▘
matrix-ops/tests/matrix-matrix-multiplication             ▝▚▘
matrix-ops/tests/matrix-matrix-subtraction                ▝▚▘
matrix-ops/tests/matrix-transpose                         ▝▚▘
matrix-ops/tests/matrix-vector-left-multiplication        ▝▚▘
matrix-ops/tests/matrix-vector-right-multiplication       ▝▚▘
matrix-ops/tests/scalar-vector-division                   ▝▚▘
matrix-ops/tests/scalar-vector-left-multiplication        ▝▚▘
matrix-ops/tests/scalar-vector-right-multiplication       ▝▚▘
matrix-ops/tests/vector-vector-addition                   ▝▚▘
matrix-ops/tests/vector-vector-division-elementwise       ▝▚▘
matrix-ops/tests/vector-vector-multiplication-elementwise ▝▚▘
matrix-ops/tests/vector-vector-outerproduct               ▝▚▘
matrix-ops/tests/vector-vector-subtraction                ▝▚▘
logic-circuit-domain/half-adder                           ▝▀▞
curve-examples/cubic-bezier                               ▝▀▄▄▘
triangle-mesh-2d/diagrams/cotan-formula                   ▝▀▞
triangle-mesh-2d/diagrams/concyclic-pair                  ▝▀▞
triangle-mesh-2d/diagrams/halfedge-mesh                   ▝▀▞
triangle-mesh-2d/diagrams/relative-orientation            ▝▀▞
triangle-mesh-2d/diagrams/triangle-centers                ▝▚▘
triangle-mesh-2d/diagrams/angle-equivalence               ▝▀▚▄▞
timeline/penrose                                          ▝▀▀▀▀▄▘
graph-domain/textbook/sec5/ex32                           ▝▀▀▀▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄▄▘
curve-examples/open-elastic-curve                         ▝▀▚▞
curve-examples/closed-elastic-curve                       ▝▀▄▘
graph-domain/other-examples/arpanet                       ▝▀▀▀▀▀▀▚▄▄▄▄▄▄▄▞
graph-domain/other-examples/nyc-subway                    ▝▀▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▘
fancy-text/fancy-text                                     ▝▀▚▄▘
curve-examples/blobs                                      ▝▀▀▀▀▀▚▄▄▄▄▄▄▄▄▄▄▄▄▘
curve-examples/space-curves                               ▝▀▀▀▀▄▄▘
geometric-queries/ray-intersect/test-group                ▝▀▀▀▀▀▀▚▀
ray-tracing/path-trace                                    ▝▀▚▘
ray-tracing/bidirectional                                 ▝▀▚▘
ray-tracing/next-event-estimation                         ▝▀▚▘
geometric-queries/test                                    ▝▀▞
geometric-queries/closest-point/test-group                ▝▀▞
geometric-queries/closest-point/test                      ▝▚▘
geometric-queries/closest-silhouette-point/test           ▝▚▘
geometric-queries/ray-intersect/test                      ▝▀▀▀▀▀▀▞▀
box-arrow-diagram/computer-architecture                   ▝▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▘
stochastic-process/stochastic-process                     ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▞▀▀
stochastic-process/epsilon-shell/AbsorbingBoundary        ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▚▀▀▀▀▀▀▀
solid/eigenspace                                          ▐█▌
solid/triangles                                           ▐█
solid/vectors                                             ▐▌
tsne/tsne                                                 ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▞
spectral-graphs/examples/4x4-sudoku-graph                 ▝▀▀▞▘
spectral-graphs/examples/dodecahedral-graph               ▝▀▞
matrix-library/crossProductMatrix                         ▝▞
matrix-library/diagonal2d                                 ▝▞
matrix-library/diagonal3d                                 ▝▞
matrix-library/identity2d                                 ▝▞
matrix-library/identity3d                                 ▝▞
matrix-library/inverse2d                                  ▝▞
matrix-library/inverse3d                                  ▝▞
matrix-library/matrix2d                                   ▝▞
matrix-library/matrix3d                                   ▝▞
matrix-library/outerProduct2d                             ▝▞
matrix-library/outerProduct3d                             ▝▞
matrix-library/rotate                                     ▝▞
matrix-library/rotate2d                                   ▝▞
matrix-library/rotate3d                                   ▝▞
matrix-library/rotate3dh                                  ▝▞
matrix-library/scale2d                                    ▝▞
matrix-library/scale3d                                    ▝▞
matrix-library/shear2d                                    ▝▞
matrix-library/shear3d                                    ▝▞
matrix-library/skew2d                                     ▝▞
matrix-library/translate2d                                ▝▞
matrix-library/translate3dh                               ▝▞
atoms-and-bonds/wet-floor                                 ▝▚▞
curve-examples/offset                                     ▝▚▞
curve-examples/frenet-frame                               ▝▚▘
curve-examples/osculating-circle                          ▝▞
curve-examples/evolute-of-cardioid                        ▝▀▀▞
spectral-graphs/examples/truncated-cube-graph             ▝▀▞
spectral-graphs/examples/torus                            ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▄▀▘
spectral-graphs/examples/mobius                           ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▄▞▘
impossible-ngon/ngon                                      ▝▀▀▀▀▚▀
impossible-ngon/parameters                                ▝▚▘
impossible-ngon/nsides-chirality                          ▝▀▀▚▀▘
spectral-graphs/examples/periodic-hexagonal-lattice       ▝▀▀▀▀▀▄▞
alloy-models/dining-philosophers                          ▝▚▘
alloy-models/message-passing                              ▝▀▀▄▄▄▄▘
alloy-models/ring-leader-election                         ▝▚▘
alloy-models/river-crossing                               ▝▞▀▀
alloy-models/workstations                                 ▝▚▞
alloy-models/generic                                      ▝▀▀▀▀▀▚▄▄▄▞

@wodeni wodeni linked an issue Aug 8, 2023 that may be closed by this pull request
Copy link
Member

@wodeni wodeni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beautiful polygons and excellent example of dogfooding!! Excited to generate logos for our site very soon :D.

@wodeni wodeni merged commit f3e7369 into main Aug 8, 2023
10 checks passed
@wodeni wodeni deleted the penrose-logo branch August 8, 2023 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: Penrose logo library function
3 participants