23 December, 2025
I guess this is just a journal entry without any particular purpose. I haven't done many posts like this, but I thought it would be nice to just check in and write about what's going on in my life. It's getting towards the end of the year and it's cold outside and I guess it's as good a time as any to be a bit self-indulgent and write about myself. Wait, that's the whole point of this website, isn't it?
I've been doing a little experimenting in Second Life with animating textures with llTextureAnim, which when used on a filmstrip-type image doesn't produce as high quality of an image as just rapidly changing the texture using llSetLinkPrimitiveParamsFast would, but it theoretically produces a smoother result due to the viewer only having to load one texture instead of many. Also, using a 2K texture for the base filmstrip image does produce a much better result than when we used to have to do the same thing using 1024 or 512px images. Less blurry GIFs, hooray! I've set up an array of screens cycling through various anime scenes in front of my cafe, drop by and see what you think. Each screen is a 2K texture, so it still takes a bit to load, but once everything loads in I think they look pretty good.
Also, I have a new face! I prefer to be not entirely human in Second Life. I had kind of an angular, low-poly crystalline face previously, but now I've replaced it with a kind of mirror-trap instead. It cycles through different faces every 30 seconds and displays them using a combination of a projector with a specific focus depth and a Blinn-Phong reflective surface to provide a very eerie look where the face is peering out from inside of my head rather than from the surface, and has some three-dimensionality even though it's only a 2D image. It's difficult to display with a picture, it looks better in motion.


If you want something similar, set specular shininess to "Use texture", Glossiness and Environment to 150, and color to white. Then the projector settings are as follows: Features->Light, reflected image goes in the projector texture, Intensity 1, Radius 0.1, Falloff 2, FOV 0.1, Focus -20 (this is the important part that gives it depth), Ambiance 0. Then just play around with the distance of the projector from the reflective surface until you get something that looks nice! Also, the size of the projector matters. I have a big fully-transparent caching mesh connected to it as well, which caches all of the face images so that there's faster loading times when it switches to a new face. It also changes faces when I type. :)
I've been playing around with Lua some more as well, I've really gotten used to the formatting of it all. Did you know that mpv can be configured using Lua? I didn't until yesterday! Just write whatever script you like with a .lua file ending and drop it in ~/.config/mpv and it'll run whenever you start the application. Mpv is my favorite video playback software (wow, I have a favorite one of those?) because it's simple, minimal, uses very few system resources, and best of all it can play videos directly on the tty, no GUI required for video watching anymore! 🎉
Hmm, what else is going on? The Steam Winter Sale is happening right now. I'm trying to buy up all of the text parser games on Steam, both because they're fun to play but also to support people who take the time to build such things. Text-based games are cool, my brain has a great GPU and typing out what you want to do is a fine UI. I also enjoy the Choice of Games style interactive fiction games, even though they're more point-and-click and read-and-type. Alright, that's probably enough babbling for one day. If you made it this far in this randomly meandering post, I salute you!