Channels

devlog-together

- I <https://mastodon....
- I’m playing with ele...
- I've been playing wi...

#devlog-together

- I've been playing with a new platform th...k
Kartik Agaram

04/13/2024, 6:18 PMI've been playing with a new platform that I hope will be quite convivial. Hosted 😬 but no Javascript and seems easy to build and self-host. Created by a single person, so decent chance of staying simple over time. It seems to be a fork of emscripten that's been made habitable. In particular, it includes raylib and some Lua bindings to it, so I'm starting to feel at home. https://www.exaequos.com I ported one of my early LÖVE apps to it, for geometric constructions. There's an app store and I've published my app there, so you should be able to run it for yourself and inspect the source code. (All apps on the app store are available right in the file system, under

!) Disclaimers. It's slow, like dialing up over a phone line. Still lots of bugs. I had to reboot the VM several times while recording this video. Commands often hang or crash, then completely stop working until I reload. It's never lost my data, though. Data is stored in local storage on the browser until you publish something to the app store.`/usr/store`

- Oh it turns out there's a way to link directly to my app: https://exaequos.com/?a=/usr/store/akkartik/geom
- I’m playing with electronics and crochet...t
Tak Tran

04/15/2024, 10:36 PMI’m playing with electronics and crocheting atm. Imagining what other ways there are to interact with a computer, other than keyboard and mouse. This is a custom made bend/pressure sensor using copper sheets, velostat as a semi-conductive layer in between, with a crochet leaf on top and felt on the bottom, for a soft, non metallic feel 🐑 **@Lu Wilson**- funny that you have a leaf thing going on too 😂- l
Lu Wilson

04/15/2024, 11:16 PMoh my god this is amazing - o
oPOKtdJ4UbTdPaZig6jg

04/16/2024, 5:25 AMI love it. Have you considered any other sensors than bend sensor? - t
Tak Tran

04/16/2024, 7:07 AMCurrently it’s actually quite versatile in being able to be a button, pressure sensor, and bend sensor, I’m thinking if I duplicate the circuitry with a matrix of them, it could be a trackpad of sorts but on non-flat surfaces. I think that kind of sensing fits textile materials best. Maybe a stretch sensor would be neat too. Did you have any sensors in mind**@Dan Groshev**? I’ve sent you this Dan, but this is a great treasure trove of ideas for etextile sensors for anyone else interested. - Images here, in case you dun wan go to Masto.
- j
Joshua Horowitz

04/17/2024, 1:58 AMNot to be a total nerd about this, but what you want sorta feels like a “homotopy equivalence”. f : X → Y and g : Y → X form a homotopy equivalence if g(f(x)) is “pretty much” like x and f(g(y)) is “pretty much” like y.* So it’s a weakening of the typical definition of inverse functions. A reason I don’t think this is a great metaphor for you: It actually says something pretty interesting about the relationship between X and Y for there to be any homotopy equivalence at all between them. (We call X and Y “homotopy equivalent” in this situation.) I think you want to be able to reverse functions between very dissimilar / arbitrary domains. So IDK. * It’s actually not that g(f(x)) is “pretty much” like x for every x; it’s that the function g ∘ f is, holistically, “pretty much” like the identity function. (Homotopic.) - i
Ivan Reese

04/17/2024, 2:05 AMYou'll have to hold my hand a bit here — I'm way beyond my comfort zone wrt properties n shit — but I'm really interested here in terminology, theory, prior art, etc. How does this homotopy equivalence work if f and/or g are non-injective, non-surjective, partial, multivalued, etc.? In other words, how close to bijective do these functions need to be for this property of homotopy equivalence to hold? Do f and g both need to be equally "close" to bijective? Or can one of them be made, say, only injective, and the other made multivalued? (Hopefully I said that correctly, or at least that you can intuit my questions) I think you want to be able to reverse functions between very dissimilar / arbitrary domains.

Yeah, this exactly. I want to largely disregard the relationship between X and Y (in either direction) if that allows me to achieve something that*feels*reversible in more situations. Like, for the cases where X and Y are 1-to-1 in f and g, then the reversibility is trivial. But what about the cases where they're not? I want to fake it, with as convincing a fake as I can manage with low-to-medium effort ;)- a
alltom

04/17/2024, 2:15 AMWhat makes this your favorite definition of reversible computing? - i
Ivan Reese

04/17/2024, 2:19 AMI'm looking for ways to make "reversible" versions of, basically, everything in JavaScript. So I'm trying to figure out what properties would enable the best-feeling version of this. - j
Joshua Horowitz

04/17/2024, 2:55 AMYeah sounds like you’re interested so I’m happy to elaborate! All this homotopy equivalence stuff is coming from topology. Hopefully you know some of the basic topology spiel: we’re talking about squishy squashy spaces where we don’t care about exact shape, just sorta the way the spaces are connected. So a doughnut is the same as a coffee mug (with a handle). The classic example of a homotopy equivalence, as far as I’m concerned, is the equivalence between a circle C (like points in the plane distance 1 from the origin) and an annulus A (like points in the plane distance 0.9 to 1.1 from the origin). These two objects are topologically different! For instance: Removing a single point from C will “cut” it, producing something that you can unwrap to turn it into a little line segment. But removing a single point from A just gives you, like, an annulus with an extra tiny extra hole in it. But there’s a looser sense in which C and A have the same structure — they’re both things with a hole in them — and that sameness is captured by the fact that there’s a homotopy equivalence connecting them. Making a map f: C → A is easy — C is already a subset of A, so you just map it in there. This is an injective function. Making a map g: A → C is less obvious, but still pretty straightforward. For instance, you can map each point of the annulus to the point of the circle at the same angle. Which is also the closest point of the circle, FWIW. This is a surjective function. Interestingly, in this situation, f and g are inverses of each other in one of the two directions. If I start on the circle, do f, and then do g, I get back to my original point. But no way are they going to be inverses of each other the other way around. You lose information going from A to C. So if I start with a point a ∈ A, do g, and do f, I’m going to (generally speaking) end up at a different place in A. But it turns out (and this is where I’m gonna get very sketchy), that f ∘ g (the map that takes a to f(g(a))) is not that far off from the identity function. In particular, it’s “homotopic” to the identity: it can be continuously deformed to the identity. So that’s what makes f & g a special homotopy equivalence pair. Now that I’ve given you the whole spiel, let me look more carefully at what you wrote there… - Ok so you were curious about how close f & g have to be to being bijective. The example I gave above was a very classic sort of example, in which neither are bijective, but one is injective and the other is surjective. The image is that you have two spaces, one of which sits inside the other, and there’s a “projection” operator that sends the larger space down onto the smaller space.
- This is related to the idea of “deformation retraction”, illustrated here.
- (That’s from Allen Hatcher’s textbook, which is free online, very good, and well-illustrated, tho it is almost certainly impenetrable without a lot more preparation: https://pi.math.cornell.edu/~hatcher/AT/AT.pdf.)
- But homotopy equivalences themselves don’t require this structure; they’re much more general. You can come up with homotopy equivalences where neither map is injective or surjective, they’re just two sloppy mappings that happen to sort of almost invert each other in this sloppy topological way.
- As for multi-valued maps: Mathematicians basically don’t fuck with multi-valued maps. Anything you’d want to represent as a multi-valued map from X to Y, mathematicians prefer to see as a single-valued map from X to P(Y) (the power set, consisting of all subsets of Y).
- Ok that’s definitely enough gotta go. 🙏
- a
alltom

04/17/2024, 3:57 AMI just lol’d working out how to sloppy-reverse

evaluating to`sin(x) > 0`

. glhf, man, this is gonna be wild.`true`

- i
Ivan Reese

04/17/2024, 4:52 AMYeah, that's a great example**@alltom**. I'd be perfectly happy if that produced, say,

when reversed — even if the original`1`

was something totally different — because`x`

gets you another`1`

when you go forward again.`true`

- a
alltom

04/17/2024, 5:00 AMDoes it matter to what you’re working on that

might be used in another expression that doesn’t have`x`

in its domain? Is rocking forward after a rock backward going to be sloppy too?`1`

- i
Ivan Reese

04/17/2024, 5:04 AMYes, potentially! In addition to non-injective, non-surjective, and multivalued, I'm also interested in a notion of "reversible function" that is loose enough to cover partial functions. But I don't have any strong examples yet to help me feel out sensibilities for how I'd like them to behave. - Like, the reverse of a non-surjective function is very likely a partial function, so I feel like one answer might be to treat a forward partial function with similar techniques (so that you can meaningfully reverse it and get something useful back).
- I’m playing with electronics and crochet...o
oPOKtdJ4UbTdPaZig6jg

04/18/2024, 6:52 AMThat's a great link. I think it would be cool if the shape (the way it's knitted) changes the behavior of the sensor. Measure electricity (static) directly? Then one could create software by knitting. Maybe it would look more like a Quipu (https://en.wikipedia.org/wiki/Quipu).. - I <https://mastodon.social/@spiralgangli...o
oPOKtdJ4UbTdPaZig6jg

04/18/2024, 7:03 AMCan't you just use matrices? I think of a matrix as basically a couple of transform (functions) put into a neat grid. Inverting them is possible, albeit costly. So couldn't you use a really high order matrix and fit your function as close as possible. Than invert it. This coming from an armchair math expert. 🙂 - I’m playing with electronics and crochet...t
Tak Tran

04/18/2024, 12:19 PMI did notice https://futureofcoding.slack.com/archives/CCL5VVBAN/p1711120929764279?thread_ts=1711120929.764279&cid=CCL5VVBAN I am looking into using conductive thread to add features more aligned with the material. Being able to digitally detect where knots are could be quite cool. Also maybe I could somehow make a material based sequencer based on weaving conductive/non conductive thread between a base sheet 🤔 - I <https://mastodon.social/@spiralgangli...i
Ivan Reese

04/18/2024, 12:49 PMI'm interested in functions on other data types too. Also, non-affine math functions. So matrices are a great example of a bijective function, but I can't see how they'd apply to, say, array.splice()