Behind the builder / 23 September 2026
Thirty seconds of personality. Then UBI had to answer a question.
UBI needed thirty seconds of fluid personality and a chatbot that answered well. The UBIKITOS build connected visual ambition to cost, speed, and useful interaction.
The mascot was still waiting to move
“Let's continue with ubi, can you use blender to create and animate ubi?”
That was where the conversation resumed. The material had finally reached the right neighbourhood: glossy black, non-metallic, with crisp reflections and a transparent background. The ambition was more specific than making a black object wobble. UBI needed to feel like the company's mascot, a little presence inside the aperture logo, with the fluid character of a lava lamp.
Earlier attempts had produced a substantial collection of things I did not want. Eggs. Blurry eggs. A shape with a visible square behind it. Expressions that looked unhappy or slightly alarming. Eventually the face disappeared from the brief entirely. The movement would have to do the character work.
Today was about getting that movement out of a description and into an animation. Blender was the tool. The test would be what appeared on the screen, regardless of how impressive the explanation sounded.
Four seconds was a beginning
The first new animation was four seconds long: ninety-six frames, with a glossy blob deforming against transparency. It was integrated into the site. A concrete improvement, and something we could actually look at.
My response was: “Ok, more lava lamp action.”
That is not a very scientific specification, but it pointed to the missing quality. A lava lamp has a sense of material moving through material. Shapes stretch, gather weight, narrow, and reorganise. If a blob simply scales up and down, it can look like an icon practising breathing exercises. I wanted something with a less predictable silhouette.
The next pass grew to six seconds, with swelling and a narrower neck. Then I asked for separation and rejoining, including tiny specks. The following animation used an eight-second sequence with droplets peeling away and returning.
Those changes mattered because character did not have to mean eyes and a mouth. It could live in rhythm, hesitation, a small piece breaking away, or the way the whole shape came back together. UBI could be recognisable without wearing a smile permanently welded to its face.
Thirty seconds is not a playback speed
Then I asked for a thirty-second loop.
The first response made the existing movement slower. Technically, the playback now lasted thirty seconds. Creatively, it had missed the request.
I clarified: “i dont want the same motion looped, I want 22 additional secs of animation. Consider motion in a fluid. Lava lamp”.
This was one of those very useful corrections that makes an ambiguous requirement obvious after the fact. Duration and content are different things. Stretching an eight-second sequence changes its pace. It does not add twenty-two seconds of new behaviour. If the goal is a character that feels alive, that difference is visible even when the file's timing is perfectly correct.
The subsequent pass reported seven hundred and twenty newly rendered frames across thirty seconds, with more varied drifting, stretching, merging, separation and droplets. That was the requested direction: a longer sequence of changing motion, rather than a short gesture played in slow motion.
The lesson for my own briefs was practical. Ask for the behaviour, not just the number. “Thirty seconds” specifies a duration. “Thirty seconds of varied fluid motion” gets closer to the experience I actually wanted.
A mascot needs something to say
Once the animation was further along, the conversation moved to the reason UBI belonged on the website in the first place. I wanted a chatbot powered by the Qwen model already on my VPS, answering questions relevant to UBIKITOS.
That brought a different set of design decisions. A visitor asking what the company does should get a useful answer. A visitor trying to turn the mascot into a general-purpose assistant should not be able to steer it into unrelated work. Private implementation details did not belong in its knowledge in the first place.
The intended scope was public company information. The model would not need access to the entire internal project merely to explain the public idea. That is an important practical boundary: a company guide should be given the information needed to guide visitors.
There were also questions of speed and reliability. The larger Qwen model exceeded the local request timeout. A smaller model was then used successfully in bounded checks. This was an engineering tradeoff on the existing server, not a grand ranking of which model is best at everything.
For a website conversation, an answer that arrives in time to be read matters rather more than a specification sheet.
The corner of the website is a real product decision
“Where should it go on the webpage?”
We settled on the bottom-right corner, with the mascot and a small “Ask UBI” label. Opening it would reveal a chat panel. On mobile, the panel would have more space. Starter questions would give visitors somewhere to begin instead of greeting them with an empty box and expecting inspiration.
This part of the work was about reducing uncertainty for someone who had never heard of UBIKITOS. They should not need to know the company's internal vocabulary before asking a question. “What is UBIKITOS?” is a perfectly good opening. So is asking whether it might fit a particular workflow.
There was another distinction to get right: a working local interface was not the same thing as a published website feature. At one point I said I could not see it, and the answer was straightforward—the button had not yet been published. Later, the interface was live while the public model connection was still unavailable.
Both states are possible. Neither should be hidden behind a vague claim that the chatbot is done.
The first answer was not the final test
The public connection was subsequently configured, and the conversation recorded a real company answer and an off-topic rejection. That was useful evidence that the pieces could communicate and that the intended boundary was operating in those checks.
Then I tried different questions.
“It provides the same answe for diffremt quesions.”
A chatbot can have a beautiful entrance and still fail the most ordinary conversational test. If every question brings back the same company description, the visitor quickly discovers that the apparently responsive character has a very small repertoire.
The handling was changed to produce question-specific answers from public UBIKITOS information. Two different question types were checked and observed to receive different replies. That addressed the particular repetition I had noticed. It did not prove that every follow-up, ambiguous question or attempted misuse would behave well.
This is where design and engineering meet very directly. A mascot makes a promise of attention. The conversation has to honour it. Animation can persuade someone to click; it cannot make a repetitive answer feel relevant once they do.
What made the day feel like progress
The day's work moved through several different definitions of “working.” A rendered animation. A longer and more varied animation. A local chatbot. A published interface. A public model connection. Answers that changed when the questions changed.
Each mattered, and none automatically delivered the next. Keeping those distinctions visible made the awkward moments useful. My correction about thirty seconds improved the motion brief. “I don't see it” exposed the publication gap. The repeated-answer complaint moved attention from connectivity to usefulness.
That is a better account of building UBI than a list of successful commands. The interesting parts were the places where the implementation technically satisfied one interpretation and still missed the intended experience.
By the end of the recorded sequence, UBI had more movement and a public conversation path. There was still plenty to improve in responsiveness and answer quality. The immediate direction was clear: keep the character inviting, and make the answers earn the invitation.
A shiny blob is a surprisingly demanding colleague. Today it finally had more to do than look shiny.