in the same vein more or less, hmm. probably not that much more of interest can be done with just having a list of x, y coordinates https://mastodon.social/media/Y24AHCBl_AfnIPBiOy4
each point in one word moves to the nearest point in the next word https://mastodon.social/media/b-32WNDAFvd9XDXbM0A
adding a bit of randomness into the distance function... https://mastodon.social/media/-frlr0-lViTLcsO6EAY
based on yesterday's code, here's the entire alphabet (uppercase and lowercase) with each letter's points a little more than halfway lerped to the next https://mastodon.social/media/WsrdYvLeDyuV7MXCTWM
perhaps not surprisingly, a little less successful with a delicate serif font https://mastodon.social/media/sh4XjS9VxO7UmLWFgME
hi-res here since mastodon downsampled it http://static.decontextualize.com/alphabet-lerp-matrix-2018-01-07.png
today: speculative letterforms made from stitching together top/bottom halves of randomly rotated letters (I have more ambitious ideas for this, just trying to do some foundation work today) https://mastodon.social/media/IqrbvTrThNYXQkt8jrs
continuing this experiment: trying to match top halves to bottom halves based on how similar the points are through their horizontal center line (also fixed the rotation here to increments of π/8 radians) https://mastodon.social/media/JTU2hQbVTvoqYYC1Szc
stringing together middle segments of letterforms based on similarity at the top and bottom of the segments https://mastodon.social/media/gvRrkTRdANymacTOuFI
trying to figure out three.js. I am really not used to working with scene graphs https://mastodon.social/media/GquowEs33Gj5qrNuKaY
I keep on posting examples that look the same, but this one was made with a completely different set of tools: opentype.js -> svg-mesh-3d -> p5.js (kind of a hassle to get working tbh but will hopefully be wayyy more versatile for these experiments moving forward) https://mastodon.social/media/Mwq4ZesNa2DTzAv2_Qo
much smoother with the webgl renderer in p5.js but I need to figure out why it's drawing these extraneous lines. tomorrow i guess https://mastodon.social/media/-eQ4kYNUiHtKXISv7Vc
tonight trying out rune.js, stretching out the font paths https://mastodon.social/media/S4qcJ-tGbr_AP-LkOhI
more rune.js, all coordinates in any path instruction that fall within the same grid square have the same elliptical motion https://mastodon.social/media/fBI-paErJelMayLrd4k
slower animation with chunkier grid and higher randomness thresholds. making myself queasy 🙃 https://mastodon.social/media/0FDPeV7ZDryHUFv63yI
going back momentarily to the letter morphing from earlier, here's the procedure applied to words from the phonetic random walk code that I posted examples of the other day... https://www.youtube.com/watch?v=ssQKONuFwvA
this one is difficult to explain but I think it actually has a lot of promise: visualizing a word's GloVe embedding by extending each point from the word center according to the value of each dimension of the embedding by dividing a circle into arcs according to the number of dimensions in the embedding https://mastodon.social/media/cZvGlIY_gC0nTg5NNOQ https://mastodon.social/media/I4dFbkuhiuqzrfEylcw (basically an adaptation of this http://static.decontextualize.com/vecviz/ but with the points of the font path instead of just a blob)
@aparrish gestalt worms
@aparrish this is wonderful. reminds me a lot of the work tomato did for underworld in the late nineties
@aparrish humble request to see the word "blep" using this animation
I feel it is an excellent candidate
@aparrish [SQUEALS OF DELIGHT]
YOU MADE MY WEEK, THANK YOU SO MUCH
@aparrish for a sec i thought this was a procedural animated captcha, its a cool effect
@chr the effect is just adding perlin noise to the coordinates of each point! just an easy way to verify that I'm drawing the triangles in the right place and that I can write code that affects the way the shapes are drawn by modifying those coordinates
@ultimape thanks for the pointers! i didn't know about two.js. ultimately i don't care about fast rendering, what i want is just intuitive access to the geometry in a way that makes it easy to play around with the glyphs procedurally... ultimately i don't think the mesh is what i want but all of the other ways of converting the shapes to xy coords make it difficult to render the glyphs as solid w/o filling in holes. probably i just need to get used to working with the path data itself 🤷🏻♀️
@ultimape thanks! i've been using licecap because it's easy for now. very familiar with node-canvas but these are just daily experiments, not trying to do anything high quality yet. just a note, i am not a beginner—i teach creative coding (with processing and p5js) at the college level and have written a book on the topic for maker media. i actually used to share an office with rune madsen (who made rune.js)!
@aparrish is p5.js your preferred framework/library? I've tried a few of the Ruby versions of processing (JrubyArt, propane) but never quite got them working right. I have tried p5.js, processing and even paperscript.js. I'm simply not too fond of working in JS.
@aparrish I like where this is going. Makes me want to laser cut things
is it possible to show a sentence as a walk through semantic space & visualize it in a way that makes explicit (say) rhetorical parallelism?
@enkiv2 that is an interesting idea, hmm
@aparrish hard for me to imagine the right way to produce a flat projection
@enkiv2 i mean, tsne is the traditional choice for something like this
@aparrish t-distributed stochastic neighbour embedding?
@enkiv2 yep! for reducing the dimensionality to 2d. unless we're conceptualizing this task completely differently!
@aparrish The dimensionality reduction for a path wouldn't look like that for a word, right? If you had the word-blobs as points and positioned the lines between them, the two coordinate systems wouldn't match up.
@enkiv2 yes, the words themselves are just n-dimensional vectors. the way that I drew them in that experiment was to find n equally spaced angles and then draw a line whose length corresponds to each dimension—a hack to make it easier to see the values for each dimension. how to make that play nicely with a 2d projection of the word vectors themselves as points is up to you (or whoever!)
@aparrish I'm curious how this would change with an embedding like Conceptnet (I'm intrigued that they edited out a lot of the gender and racial bias from the training data). Would we see big changes in traditionally-gendered words like housekeeper? I've been trying to think of a demo other than analogy for showing the effect of the de-biasing.
@janellecshane i don't know! i've been meaning to try out the conceptnet vectors for a while. i think you'd also see notable effects from the de-biasing in, e.g. clustering and other unsupervised tasks that start with pretrained vectors, right?
Follow friends and discover new ones. Publish anything you want: links, pictures, text, video. This server is run by the main developers of the Mastodon project. Everyone is welcome as long as you follow our code of conduct!