Alchemy
Generate any a-by-( b + c ) finite rectangle SVG containing potentially Infinitely many a-by-( 2 * b ) finite rectangles animated along a number line of ( ( c - b ) / a )^n scale symmetry.
Install / Use
/learn @bestape/AlchemyREADME
for MozFest, 2021
During the workshop, we'll have fun with:
We'll discuss (c - b)/a as well as a*(x^0) = 2*b*(x^1) + a*(x^2).
-
https://www.reddit.com/r/powerlawgeometry/comments/lzkrg9/cba_compared_to_ax0_2bx1_ax2/
-
slides: https://drive.google.com/file/d/1h5_yIxx6-2i6cFSzdyoftcfK8xBxfYKJ/view?usp=sharing
- For instance, https://www.instagram.com/p/B6MDtg9AJqH/
-
PBS SpaceTime about Vera's Metallic Means: https://youtu.be/MIxvZ6jwTuA
-
Mathologer about visual Infinite descent: https://youtu.be/ubHVK71F01M
-
Numberphile about Golden ratio irrationality: https://youtu.be/sj8Sg8qnjOg
Above: a from iteration, to recursion photograph-stack stereogram use case.
alchemy
an animated SVG printer using a PythagoreanMetal engine
!!! TIP JAR !!!
!!! MERCH !!!
<img src="https://github.com/bestape/alchemy/blob/master/images/24hourStopwatch.svg?raw=true" width="100%">Above: a stopwatch that uses 75% of the remaining parent area to count in loops of 60 seconds, 60 minutes and 24 hours.
!!! TIP JAR !!!
0. contents
<details> <summary>contents</summary>1. what
Create vanishing point cellular automata moving images like the famous Golden Ratio:
<img src="https://github.com/bestape/alchemy/blob/master/images/100by50-1.svg?raw=true" width="50%" >These images can be used, among other things, as a box of Infinite objects with every object observable from above.
Make Infinite copies of yourself. Super selfies!
selfie
<img src="https://github.com/bestape/alchemy/blob/master/images/fergus.svg?raw=true" width="50%"> <img src="https://github.com/bestape/alchemy/blob/master/images/toby.svg?raw=true" width="50%"> <img src="https://github.com/bestape/alchemy/blob/master/images/catman.svg?raw=true" width="50%">!!! TIP JAR !!!
2. use
<details> <summary>details</summary>-
Have
node.jsinstalled on your machine; -
download the
app.jsandapp.jsonfiles; ensureapp.jsis executable; -
change the values in
app.jsonto your preference; -
run
./app.jsin your terminal; and -
enjoy the SVG printout!
3. options
<details> <summary>options</summary>Please read app.js.
The app.json file lists the options.
Change its values to the choices you want then run app.js in a terminal with Node.js installed.
| option | type | description | | ---------------- | ------- | ---------------------------------------- | | a | number | repeating rectangle's horizontal measure | | author | string | the person who made the program | | b2 | number | repeating rectangle's vertical measure | | background | string | parent rectangle's colour; can be null | | borderColour | string | parent rectangle's border colour | | borderSize | number | parent rectangle's border size >= 0 | | cellBorderColour | string | repeating rectangle's border colour | | cellBorderSize | number | repeating rectangle's border size >= 0 | | clickStart | boolean | false = auto; true = manual | | colours | array | repeats if too short; [0] only for start | | cork | string | remainder rectangle included if colour | | drawPath1 | boolean | path shown if true | | drawPath2 | boolean | path shown if true | | drawPath3 | boolean | path shown if true | | drawPath4 | boolean | path shown if true | | embed | boolean | use to copy/paste code into an SVG file | | file | string | file name and relative path | | id | string | combine with other code; use with embed | | images | array | repeats if too short; [0] only for start | | lead | boolean | false = a repeat begins from the top | | loop | boolean | animation auto restarts when finished | | offset | object | use with embed and id to add to SVG file | | opacity | number | between 1 (opaque) and 0 (transparent) | | pause | string | delay until next animation starts | | png | boolean | false = jpg | | repeat | number | number of repeating rectangles >= 1 | | speed | string | the time it takes to move by 1 exponent | | vertical | boolean | repeating rectangle starts vertical | | viewBoxAdd | object | the width and height axis canvas size |
If you need to calculate a number option:
-
open and edit
app.js; -
mute the option in the
App(){ ... }constructor function with//; and -
write the modified option below the muted option.
Please see the this.a option in App(){ ... } for an example.
4. example tiles
<details> <summary>example tiles</summary>To run the following animations:
-
click on the image, it'll open in a new tab; and
-
within the new tab, click on the repeating rectangle at the top of the parent rectangle.
Vera's Metallic Means can be SVG printed by app.js:
-
set the
avalue inapp.jsonto 100; and -
set the
b2value inapp.jsonto 100, then 200, then 300 and so on.
As a continuum rather than a natural count, the Metallic Means are SVG printed by app.js whenever a <= b2 ( a is less than or equal to b2 ) in app.json.
Here's the first Metallic Mean natural count, the Golden Ratio:
<img src="https://github.com/bestape/alchemy/blob/master/images/goldenRatio.svg?raw=true" width="25%" >Here's the fifth Metallic Mean natural count:
<img src="https://github.com/bestape/alchemy/blob/master/images/fifth.svg?raw=true" width="25%" >As b2 tends toward Infinity, the repeating rectangles quickly become invisible to the naked eye.
Here's the tenth Metallic Mean natural count, with a = 100; b2 = 1000 in app.json:
However, if b2 <= a ( b2 is less than or equal to a ) in app.json, the repeating rectangle takes much longer to become invisible to the naked eye, and not because of x scale exponentiation.
Here's the second natural count in the b2 <= a direction:
Here's b2 <= a when x = 99 / 100, in other words no irrational parts but still non-halting, using this formula:
As b2 approaches a magnitude Infinitely larger than a, the automation approaches a more accurate non-halting definition of 2^( 1 / 2 ). Compare the anthyphairesis of 2^( 1 / 2 ).
A natural PythagoreanMetal order measures ax with b2 unity or b2x with a unity.
ax = b2 is ISO 216, using this WolframAlpha calculation:
2ax = b2:
ax/2 = b2:
ax/3 = b2:
<img src="
Related Skills
feishu-drive
349.7k|
things-mac
349.7kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
349.7kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
postkit
PostgreSQL-native identity, configuration, metering, and job queues. SQL functions that work with any language or driver
