Improving the operability of 3D models
The Problem of Selecting Thin Stems
Once the app had taken shape to some extent, I took the time to test it thoroughly myself. I also asked the modeling team to give it a try, and the first feedback I received was, “I can’t select the thin stems at all.”
At first, I thought, “Well, if we zoom in and tap carefully, it should work somehow,” but in practice, it didn’t work at all. Even the tester said, “This is a bit too tricky,” and I realized this was something I really couldn’t leave as is.
The first improvement I made was to expand the tap area. I added a slightly larger bounding box around each object so that even when the actual geometry is thin, tapping anywhere inside that box would still register as a selection. This made it much easier to pick delicate stems and branches.
Next, I introduced the Hierarchical Selection Button. This allows users to first select a larger branch and then drill down into smaller parts, as well as move to adjacent elements within the same level. By switching to a “step-by-step navigation” approach that doesn’t rely solely on tap precision, I think the app has finally reached a much more usable state.
Trial and Error with Multiple Selection and Batch Operations
This issue was related to the previous one, but the next request was: “We want to move multiple child nodes together.” When creating art, moments where you think “I want to move these together” naturally arise.
For example, suppose you want to move only Flower 1 and Stems 1 and 2 within a specific flower arrangement. With the original implementation, you’d have to select Flower 1, move it, then select Stem 1, move it, and so on. This made precise movement difficult, often resulting in misalignment, and required repeating the same movement for each child node.
This usability was problematic.
So, I first implemented straightforward “multiple simultaneous selection.” Users could check multiple boxes and move them all at once.
However, when people started using it, complaints arose: “It’s hard to tell which nodes are selected” and “It’s not intuitive.” I thought adding functionality would solve the problem, but it actually caused more confusion.
Ultimately, I settled on the approach of “establishing parent-child relationships from the modeling stage to enable operations on meaningful groups.” Instead of moving individual branches or leaves, I move them as units of grouped parts. This simplifies operations and prevents user confusion.
To achieve this, I had to review all floral material models and readjust their parent-child relationships. I recognize this was necessary work.
Rotation and Scaling — The Origin Trap
Another headache was the problem of “rotation and scaling not working as intended.” While interacting with the models, situations arose where “I wanted to rotate this part, but it kept rotating in some weird direction instead.”
The cause was simple. Since the origin of every model was set at 0,0,0, scaling and rotation were moving relative to the center of the entire scene.
So I changed the spec to “treat the center of the selected part as the origin.” By moving things relative to the part I was interacting with, I finally achieved a natural feel where rotation and scaling worked as intended.
Changing this origin also required writing a script in Blender to handle it, which meant another tweak was needed.
Reflections on the UI Becoming Too “Pro-Oriented”
The difficulty in operation was directly tied to the UI design. Initially, I just crammed in features, resulting in tabs on the sides, panels below… before I knew it, the interface resembled professional design tools like Photoshop or Illustrator.
When I first showed it to an external tester, their feedback was, “Isn’t this a bit too advanced for beginners?” Personally, I aimed for an “app beginners could enjoy,” so this feedback surprised me. But upon reflection, terms like ‘nodes’ and “components” were used directly in the UI, and the workflow was overly complex—it was definitely confusing for beginners.
Aiming for “Child-Friendly” Operation
What stuck with me was the comment: “It needs to be simple enough for kids to play with.” At first, I thought, “But I’m not targeting only kids!” But looking back, when I started learning ikebana myself, I struggled at first with all the specialized terms and lengthy explanations.
That’s precisely why I realized such intuitive, easy-to-understand controls are essential for beginners to naturally engage with the app. Now, I use “Can an elementary school student use it to create something?” as one benchmark for reviewing the UI.
How a Single Delete Button Changes Perception
One particularly clear lesson in UI improvement was about the “delete button.” I assumed, “It’s in the menu, so people will find it,” but users don’t search that thoroughly.
The frustration of “I want to delete this, but I can’t find the button” is surprisingly stressful. A simple delete function can completely change the app’s overall impression. I learned that making these basic operations clear and accessible is far more important than adding flashy new features.
Never-Ending Improvement
Looking back, it seems there’s no end to the usability issues.
“How to select thin stems,” “How to move multiple items,” “Where to set the rotation reference point,” “How to make the UI more intuitive.” Solve one problem, and another pops up, leaving me scratching my head. It’s a never-ending cycle.
Honestly, receiving feedback isn’t easy. When people say things like “It’s confusing,” or “It’s hard to use,” it’s disheartening.
But in reality, users are pointing out problems I couldn’t see myself, and that’s incredibly valuable. Even if the criticism stings, I have no choice but to keep building on what I learn from it.
I want users to feel, “I was using it naturally as I played around with it,” rather than “It was too hard to use, so I gave up.” To achieve that, I intend to keep making these small improvements, striving to make the app a little easier to use, bit by bit.