A lot of construction work this month, as well as software development,
production work on Lunatics, and professional development.
Finished up the “Timelapse” sequences, adding the animated padcrew billboard characters to the shots. Reconstructed the SR-1 shots, with the updated LaunchPad Mech.
Started work on SU-SuitingUp
This sequence is a mess and needs a lot of re-blocking and animation. I started reviewing it and correct problems. I also updated and changed the linking diagram to organize it better.
ABX/KitCAT Development – File/Name Context
Worked out a complex system for parsing filenames, directory paths, and YAML data files for understanding the structure of a project on disk, ostensibly for ABX, but probably really for KitCAT.
Decided to abandon this design in ABX, due to the complexity, long time spent on it, and relatively little payoff. This may be more worthwhile as part of KitCAT, though.
New GitHub Account for Film Freedom Project
Set up an account and repositories for Film Freedom Project development on GitHub. This is where I’ve put the official ABX source code up. I have not started any other projects there, yet, though I plan to.
Started watching video presentations from Libre Graphics Meeting and Activity Pub conferences for 2021. Both were virtual conferences this year. Also looked up schedules for conferences and film festivals for later in 2021 and early 2022.
Monthly Topical Summary Workflow
Figured out my workflow and products for monthly topical summaries, which is how I plan to handle 2021. I think it will be easier to produce these monthly and assemble in early 2022, instead of trying to make them from scratch as I did for 2020. The topical summaries give a much better summary of the month than the purely chronological versions did.
New Worklog Screencast Script
Changed from using Vokoscreen to using a custom Python script for taking my screen captures. This avoids problems with accidentally using the wrong settings and also saves the data direct to a permanent disk, avoiding the problem of losing video if the computer crashes.
Replaced batteries in old UPS units. The two larger ones appear to be working now. The small ones were still acting up after the battery change, so I stored the batteries and threw those two units away.
Installed Utility Pole for Wireless Internet
In order to get line-of-sight wireless internet for the studio, we needed a high-enough place to mount the antenna feed. We installed a utility pole adjacent to the studio/library building for this, with a lightning rod.
Delegated getting the service through Nextlink to Sylvan, who managed to set it up for early July.
Built & Used a Water Level to Mark the Shop & Library for Leveling
Constructed a water level using some garden hose hardware and two large plastic containers. The containers are connected by a regular garden hose, which allows for a very long baseline. I was then able
to use it to put level marks on all four corners of each of the storage containers for the library/shop complex. This a step towards leveling the units. I also ordered railroad ties which we’ll need for supporting the units during leveling.
ABX Data System – Almost Finished!
Around the middle of May, I slated a “couple of days” to work on the “data system” for ABX. The notion is to get the program to parse a schema provided by the “production designer” in the form of a few simple YAML files in the project sources, and use it to understand how files in the project should be named.
After a couple of weeks, it’s starting to come together, but it turns out that making things simple can be very complicated!
The lead image here is a diagram I’m working on to put in the ABX documentation, explaining the relationship between the YAML files and the project data files. It’s still incomplete, but I’m getting there (hopefully the massive blocks of text in the diagram will get smaller!).
It has the concept of “Branches” from a “Trunk” with a hierarchy of taxonomic “Ranks”. One such hierarchy would be the shot-hierarchy I currently have hard-coded in ABX: “Project”, “Series”, “Episode”, “Sequence”, “Block”, “Shot”, “Element”. However, I probably will want to override this with a different system for the library files: “Project”, “Library”, “Department”, “Category”, “Sub-Category” (for example).
This maps to the kind of organization I’ve been using for “Lunatics!” and will also segue nicely into work on KitCAT and TACTIC, since these are basically my “S-Types” for the production DAMS in TACTIC.
To do this, the Library can contain a YAML file at the top, with the alternate schema overriding the inherited one (but unable to change levels above, such as “project”).
There are other tricks, like taking advantage of the directory names, but the notion is basically the same: get the computer to read the files and make associations based on the names and where they are stored, much as a human would read them. And then use a similar system to derive related names, such as rendering targets.
So I kind of fell down a rabbit hole here, but it is starting to make sense.
I also have unit testing working inside Blender (and also outside of it, for the parts that don’t have Blender dependencies).
I’m going to try to get this buttoned down soon so I can get back to production work! But I do want to use ABX this month, including some of the new features, so I’d like to get it done first.
ABX is also on our Film Freedom GitHub now, so you can see the latest sources for yourself. I will next be learning how to make a release package for version “0.2.6”, and I’m also planning to try out Sphinx for writing the documentation.
No More Yak Shaving! Back to Production!
Well. I’m honestly a bit frustrated with development on ABX. I really did “fall down a rabbit hole”, or start “shaving yaks”, or whatever the correct metaphor is, and I feel like I spent an awful lot of time on something with little reward. So, anyway, I’m shelving the “File/Name Context” work in ABX for the time being. The new code does feature configurable Render Profiles, although it currently has a slug in place of the render base name, which is limiting.
It has occurred to me that I can get about 80-90% of the functionality by just having a “base name” text field as a Blender scene property, and handle the systematic naming manually. I plan to go back to doing “day of the week” scheduling, and Mondays are “development”, so I’ll look at it, then.
But I also was just impatient to get back to production again, as it’s already halfway through June.
The lead image is a still render from SR-1-C, with the “separate sky” and “billboards” options set in the Ink/Paint configuration (new features in ABX from last month’s sprint).
Less obviously, the indirect link to the “LaunchPad-mech” model has been replaced with a direct link and the animation copied over to it. I didn’t actually need to use my “Copy Animation” feature for this, as it was easy to do with a single NLA action strip (standard Blender features).
The “Separate Sky” compositing makes the shot a LOT brighter. I may have to tone down the lighting.
I hope to get the SR-SoyuzRollout sequence ready this week and start on fixing the blocking and animation in the SU-SuitingUp sequence next week. That’s going to be kind of tedious, as there’s a lot of fine adjustments to make, and some of the timing is really messed up.
Billboard Extras & Freestyle
Minor milestone: this is showing the correct composite of billboard extras characters with the Freestyle ink.
To illustrate what I mean, here’s the approximate same area, with just the unmasked Freestyle ink:
Were it not for the alpha-billboard masking, the Freestyle ink would obliterate some of these characters — and certainly blow the illusion.
Here’s the full frame — approximately the same as yesterday’s post, but with the extras add, now:
Obviously, billboard extras don’t hold up as well as 3D modeled extras, but they can fill people into the background of shots like this, and make it seem less desolate, and they have very little impact on rendering time.
Test Frame from Timelapse Shot (SR-1-A)
This is a test render from one of my timelapse effect shots.
The technique is working — the figures you see here are all billboard extras with animated “image sequence” textures, so they change poses in short loops, creating the effect of movement captured at periodic intervals while people are working. Of course, the mechanism and the sunrise move smoothly.
The figures are important to the shot, not just for detail, but also because they provide scale and, by flickering from pose to pose, sell the “timelapse” effect.
This also shows why it would have been very distracting for the ink lines not to be drawn correctly around the billboard figures — the compositing is working as planned (which was the main point of this test render).
I still have to do a bit of tweaking on the locations and movements of the extras, but the concept works, and I’m pretty excited about that.
Downside of a Separate Freestyle Camera
Using a separate camera (and therefore a separate scene) for rendering Freestyle ink lines is a very useful optimization, but if you need to adjust the camera pointing at all, it’s tricky to avoid the two cameras getting misaligned.
On the other hand, it’s kind of a cool effect — makes me want to think of an appropriate place to do this intentionally.
I spent the better part of a day trying to track this down. Then I finally gave up and regenerated the Freestyle render scene from scratch:
- Create new “Linked Objects” scene.
- Modify camera clipping range on the new scene.
- Set up the new scene’s “Ink” render layer.
- Reconnected the compositing to use the new scene instead of the same one for ink.
Weirdly, the problem persisted!
So, I gave up (further) and went back to using the same scene for paint and ink. I was able to get a satisfactory result that way. But I still don’t know why the problem happened. Something about the camera animation rig and the fact that it was linked into a new scene and then composited back into the original, resulted in this mismatch.
“It is a mystery.”
“Soyuz Rollout” Animated
I think I’m finished tweaking this sequence, and it’s “good enough” now.
I found I had actually made the characters at about 130% in my previous preview (I discovered that when I tried to put some on the gantry, and then realized they were about 2.5m tall!)
So, I reduced the size of the billboard extras a little. I also had various problems with particle systems, exact positioning, and what was and was not supposed to have Freestyle inking.
But it’s resolved to my satisfaction, now.
It’s pretty satisfying to see this after all this time. This was the very first sequence I did any work on for “Lunatics!”, before I was even sure I wanted to do it — over 11 years ago, now!
The original version was made from existing NASA/RosCosmos images and video, and even had different music. I posted it in association with an article about making animatics, and I think I used “Kino” to edit it, which is very primitive, compared to Kdenlive.
The current version is very different!
I originally changed the music over a licensing concern, because the original (“War Machine” by Cyril Pereira) was under the “License Art Libre” and it wasn’t compatible with CC By-SA 3.0 that I intended to use. When I contacted the author, he wanted me to assure him it would never be used for anything “immoral”, before agreeing to any license changes (bear in mind, this conversation was between a French person who barely speaks English and an American who barely speaks French, with machine assistance, and nuance tends to get lost in translation).
I didn’t really know how to answer that! I think he probably meant he didn’t want to see it used in porn? But of course, that’s not really how free-licenses work. If somebody releases the porn under FAL/LAL, they can already use his music. And of course, if I release it, then somebody else can always repurpose it under either FAL/LAL or CC-By-SA. So I couldn’t really promise NO one would do it — just not me. It seemed unlikely, but I didn’t want to be the one blamed if it happened.
It was part of the learning experience to realize that not everyone thinks about free-licensed content in the same way.
Anyway, I wound up using the current music, “Once Upon a Time” by A.K.1974, which is just the continuation from the introduction, so it kind of works as a reprise (I also used this track all together in one of my series trailers). It’s under CC By-SA, like most of the tracks in the pilot soundtrack. And it slightly changes the tone — the original was a bit more threatening (I was originally thinking of evoking the reality that the Soyuz launch vehicle is a converted early Cold War missile platform — the “R7“, which is one of many ironies about space development that I wanted to touch on in “Lunatics!”).
Since then, of course, I switched to CC By-SA 4.0, which includes the unification with the FAL/LAL licenses, so technically, I could just use the original music under those terms. But I’m so happy with “Once Upon a Time”, that I really don’t want to go back.
Next week, I plan to face the mess that is the “Suiting Up” sequence. I have to re-block it, adjust the animation timing, and probably re-animate quite a bit of it. It’s a pile of work — which is why I’ve put off working on it for so long! But I know I’ll feel a lot better when it’s done.
After that, there’s another “broken” sequence, which is the “Train” sequence at the beginning — that has scale errors, broken links, and a complex simulated reflection setup, that I will have to either fix or reconstruct.
Then I’ll need to go through the whole episode, looking for other sequences that need tweaking — parts of the “Launch” and “Soyuz Flight” are still incomplete or need editing.
Extra Production Stills from June
This month, I constructed a water level based on a couple of old dry-goods containers and a garden hose, using bulkhead fittings from the hardware store. It works! I was able to make a series of two point comparisons for all four corners of each of the ocean storage units that comprise the studio.
Water levels are an ancient technology for getting true level on large structures. The pyramids were probably leveled this way, by digging trenches and filling them with water — it gives a very good true level. With a 150-ft garden hose, this level can be used for pretty large structures. I think I spent less than $50 on parts (the bulkhead fittings are about $15 each, plus M/F hose adapters for each, then there’s the hose itself and the cereal containers, but I already had those).
This is the first step towards leveling them. The “library” (where my office is) is pretty close to level, though it is sitting directly on the soil, which has been slowly shifting over the years. More pressing, the doorway end is sinking into the soil, and will eventually become a flooding problem — it needs to be lifted up.
The “shop”, is much further off level — it’s like walking around in a beached boat in there. Needs leveling very badly, and massive remodeling, since the fire damaged it (and it was never really outfitted inside to begin with).
It would, of course, have been much easier to level these units when they were new and empty, but given that I’ve gotten a decade of use out of them in the mean time, I don’t feel too badly about not waiting to build the interior!
We erected a utility pole, just outside of the library. This is the end where my office is located, though there is no door on this side. There are access ports I can run cables through, though, so I can connect power here. The original purpose was to put up area lights to illuminate the walkways, though we had also hoped to use it to connect line-of-sight wireless internet, and (weirdly) the ISP insists on not having any electrical equipment at all on the same pole (apparently due to their engineer believing myths about electrical equipment “attracting lightning”, which is NOT how that works*), so at this point, we were planning to just install the wifi on this pole.
We also started preparing for our first concrete project, which is to put in a pier to replace the rather-makeshift column arrangement supporting the roof on our house. You can see the buckled “knees” on the existing supports. We’re replacing the alternate ones (currently unconnected) with a new “buttress” design that should be able to take some lateral thrust.
We had several UPS units which had failed and been taken out of service before 2013, which were in the shop during the fire. They had some external cosmetic damage, but it wasn’t clear whether they were damaged internally. The most likely problem was worn-out batteries. I bought a case of replacement UPS batteries and tried to refurbish the existing units. Two of the larger ones seem to be working. Two of them must have had other electrical faults, so I threw those out, after removing the old batteries — fortunately the battery shop takes the old ones for free (lead-acid batteries are hazardous waste and the lead can be recycled into new batteries).
Having established what I could recover, I then budgeted to replace the two failed units with new ones, so now we have backup power on everyone’s computers. There’s also a building-wide surge suppressor for the power going into the studio, since we do get a lot of lightning here.
*The reason you hear about lightning surges on power poles and why it is unwise to put any delicate equipment on a power pole, is because the top wires on the pole have no surge suppression or even breakers — they are directly connected to the power grid.
That’s a large array of high-capacity conductors that stretches for miles in all directions. Lightning is not particularly likely to hit the pole, but is quite likely to strike that array of conductors somewhere, and then a huge “lightning surge” gets conducted to everyone’s power poles. This could even look like lightning, because there’s often enough voltage to cause arcing. But the lightning has typically actually struck somewhere else.
As for the likelihood of the lightning striking the pole itself, that’s going to be higher for any elevated structure, and the presence or absence of ordinary electrical circuits on the pole makes no real difference. We put a lightning rod with a cable running to ground on the pole, so that if lightning does strike, most of the power will go down the conductor straight to ground, rather than through whatever equipment we put up there (or through the wet pole itself, which can cause poles (or trees) to explode and burn).