It would be interesting to have a camera somewhere on the end of the phone, so you could film more or less covertly.

It would be interesting to have a camera somewhere on the end of the phone, so you could film more or less covertly.

Through the Rabbit Hole

What I did on the plane to/from vacation and sometimes in between: 3D visualization and editing volleyball schemes for Nadya (she’s a coach). This court in the attached image freely rotates, players can be placed on it, and the ball and player paths are shown – all in 3D.
The ball’s trajectory is calculated so that it does not cross the net when moving from A to B (Bezier formula). Players can take several poses – right now there are hastily made poses for serve, attack, block, pass/receive. Interestingly, in the code: I had to write a bit of “volleyball brains”. The system itself calculates the ball’s trajectory through Bezier curves so that it always passes over the net. Moreover, the height of the launch depends on the type of action: for an attack, the ball “launches” from a higher point than for a pass. I also added auto-rotation: the 3D model itself turns its face to where, according to the scheme, it needs to pass or run.
The longest and most difficult task was creating the 3D model of a female volleyball player. To generate a realistic volleyball player, I used the tripo3D service. It gave me a model in a neutral pose (for free). Theoretically, you can then use Blender and the Rigify plugin to attach an armature to it and move its arms and legs, which would recalculate the model.
However, in reality, this approach does not work well: the AI-generated model contains a large number of geometric errors, which the renderer forgives but Rigify does not. They can be roughly divided into two types — incorrect polygon normals and issues with non-manifold geometry, which are significantly more challenging to fix. Inside the body, there may be “floating” clusters of polygons or intersecting surfaces. When Rigify tries to calculate weights (which bone affects which part of the skin), this internal noise confuses the algorithm, and as a result, the weights are distributed chaotically (for example, moving the arm might start pulling the mesh on the stomach). Plus, the model is slightly asymmetrical.
Non-manifold is a geometry error where the topology of an object ceases to be correct in terms of a three-dimensional body: edges may belong to more than two polygons, polygons may only touch at vertices or edges without a common volume, and “hanging” surfaces or zero thickness may appear inside the model. Such geometry formally does not describe a closed volume, causing problems with rigging and deformations. Moreover, the model needs to be simplified because millions of polygons are not needed for rendering in real-time in a browser.
I fixed these using MashLab, additionally refining by hand (“with a file”). In the end, the model turns out slightly different from the original almost everywhere. The original model had “skin” in the form of textures – the face, shirt, and shorts had to be colored. How to transfer all this to a simplified model? For that, there’s a special operation in Blender called Baking. This also involves some tricks. In the end, it didn’t transfer perfectly, but perfection isn’t necessary yet.
Next, we attach the armature to the “joints”, and after about three hours of figuring out why everything does not work as it should, it finally worked. I made four poses, and now each circle (player) can be told which pose it is in.
I’ll also need to make dynamic changes to the uniform colors – that shouldn’t be difficult. There’s also an idea to transfer poses from photographs – this is more complicated, but generally feasible. Using MediaPipe/AlphaPose, you can detect key points in 2D, then some models like HMR/HybrIK can “lift” flat coordinates into 3D space, outputting relative joint rotation angles. The resulting data can be attempted to be projected onto a Rigify skeleton. Since the proportions of the generated volleyball player and the person in the photo may not match, that’s exactly why Inverse Kinematics (IK) is used. This part is quite complex, but overall it’s not strictly necessary – just interesting to figure out and make something functional.
Video in the comments



How did we ring in the New Year? In an empty movie theater watching Avatar IMAX 3D.
The CGI is simply stunning. Seriously, it might be the most photorealistic film in history from a computer graphics perspective. The detail in individual faces—there were times I could swear I was looking at human faces painted (and that’s a compliment). And there’s a lot going on in the background too. You really need IMAX and ideally 3D because it’s one of the few movies where IMAX 3D technology isn’t just used in certain scenes, but everywhere.
The main villain Varang is absolutely amazing. Every time she appeared on screen, she stole the spotlight. Despite the CGI, they perfectly conveyed all the complex emotions of her character. They made her truly merciless, sexy, and dangerous. It turned out cool.
The three-hour runtime is densely packed with action, with practically no scenes that make you want to yawn.

Tomorrow is the flight to Costa Rica, and here I am creating (or created) a volleyball playbook editor for Nadya. As a coach, she prepares for her sessions and leaves behind hundreds of pages of text with diagrams on each page. The text is handwritten, and theoretically, it’s simple to convert to a digital format, but converting the diagrams into high-quality vector format is exhaustive—there are so many. So, I decided to make the software yesterday. And today, the first version is ready to use. This is a diagram editor, somewhat remotely similar to a diagram editor. Also got to dig into the fabric framework.
The process looks like this. Gemini/ChatGPT through an API can convert hand-drawn diagrams into a structure that my program understands. Then we open this file in the program, and tweak a bit if necessary. Or maybe even redraw from scratch – for simple diagrams, it’s even easier. There are four types of objects – player, cone, target, text. Any can be connected with arrows, solid or dashed, labeled with text or numbers or not, in any chosen color, straight or curved. If you touch an object with the mouse, all connected arrows will follow.
The result can be saved in a file. You can open a template and based on it create something new. You can generate a Python script – yesterday it was still relevant, today generally not needed anymore – high-resolution SVG/PNGs are made directly from this app (yesterday they were made separately in Python).
It’s clear why you wouldn’t just ask Gemini/ChatGPT to do something for ready-made vector editors: firstly, they are too flexible and limiting LLM’s imagination is quite difficult. As a result, you get stylized, unusable images. Here, instead, there is a framework consisting of four objects and that’s all, LLM knows about it and only generates what can be represented with them. Secondly, this framework operates with objects, not elementary vector primitives.
Overall, this is the first step towards my idea of an automatic diagramming system based on descriptions. Where you give an LLM a diagram description, and it consistently generates what is written in the description, and if you make any corrections, they will be taken into account during regeneration.



Today I sold a refrigerator. It has a story. The essence of it is that it’s not a refrigerator, although it looks like one. It’s a freezer. And it freezes on average to minus 18 degrees. I bought it second-hand, thinking it was a refrigerator. The buyer also came today thinking it was a refrigerator.
And here I realize that minus 18 degrees is not at all what I need.
Well, I am a Solution Architect. I didn’t want to dig into it, I just drove to Lowe’s and bought a simple blinker. It turns on and off according to schedule whatever is plugged into it. I stuck a radio thermometer inside (I had one) and adjusted the blinking frequency (20 minutes) so that the internal temperature was on average +4 degrees Celsius. The radio thermometer showed that the temperature fluctuations were very small – nominally plus or minus 0.5 degrees from +4, even less. And so it worked for me for some months until I realized that I just didn’t need it.
Sold it today with the adapter. It’s gone to the people.

I kept seeing ads for an AI language tutor that I ignored, and the system forgot about me for a while before coming back with a noticeably older tutor.
But really, how soon will video advertising become personalized for us? Where in the same ad, New Yorkers will see their city, black people will see black people, in the morning the main character will be drinking coffee, and a car with the logo of their alma mater will flicker in the background?


Watch with sound. That’s when the creators’ imagination was at work. It was really boiling over
I read something interesting today. About fractals. If you take any three points that form a triangle, and then a fourth point anywhere, and subsequently throw a dice, the faces of which are assigned to the first three points. Next, you move from the current point towards the point corresponding to the result on the dice and place a new point halfway; this becomes the new current point. After many iterations, the points start to form the Sierpinski triangle – the one shown in the attached picture. Intuitively, you would think the triangle should be fully filled because it involves random movements in three directions from a randomly chosen point, but no. Moreover, it works even if the starting point is inside the future empty triangle (yes, a few points will disrupt the picture, but that’s it). If you start our experiment with five or six points instead of three, different shapes will form – see the attached picture. This graphical method is called the Chaos Game.
By the way, it may seem obvious, but in case you wondered — all the presented figures have zero area.
If you take two triangles and with a probability p move towards random vertices of the first, and with (1-p) towards random vertices of the second, you end up forming a Barnsley fern (picture №2).
I love such things because they seem like magic at first glance 🙂
(It’s a kind of problem from the same class as the synchronization of metronomes)


Friends, I am currently at the opening of Marcia Klioze’s exhibit at the Arts Club Of Washington and I am absolutely thrilled! I am so happy for my wonderful mentor, from whom I have been learning oil painting for two and a half years. Today her solo exhibition is here, and the atmosphere is simply magical.
I am proud to be learning from her invaluable experience and learning to see the world anew. Next Tuesday is another class😉 I’ve wanted to post her works for a long time, and today I finally have the opportunity to share (I asked for permission, so it’s all official)!
Almost all works are for sale, for those who are interested, do drop by
















