Meet the Maker: Spencer Magnusson Creator of nView - "One of the best tools necessary by far!"

Spencer’s flagship add-on is nView. It can hide or select objects outside the camera view. When building a 3D scene, sometimes it helps to know, "What exactly is visible from the camera?" nView answers that question for you.  Users can even bake an object's camera visibility throughout an animation to keyframes! 


Keyframes.gif


Among his other add-ons are B-VFX Nodes, a set of compositing nodes that have helped me as a former visual effects artist; and Color Picker Pro, which allows pixel-averaged color picking as seen in Photoshop. He also sold Shot Matcher as well on the Blender Market. But as his priorities with newer add-ons have changed and its shelf life expired, he decided to release it publicly.

What inspired you to create nView? What problem were you trying to solve?

A couple years ago, a fellow archviz Blender artist asked for my help. He wanted to animate the visibility of his 3D interior as the camera navigated. I gave him my feedback and pointed him to some scripts. After checking online afterwards for more answers, I realized this was a common problem for Blender's viewport.

As someone that has studied both computer science and animation, I also learned the formulas and algorithms behind 3D graphics. That gave me the knowledge of how video games resolve this same problem of handling occluded or off-camera objects. Putting these solutions together eventually became the nView add-on.

For this as well as the rest of my add-ons, inspiration often comes from problems I've personally faced. The best product owners and managers are customers of their own product. I try to only make products that I regularly use. And I have used nView on several of my art projects since.

How long did the initial development take and how many people were involved?

nView took a month from its inception to first sale. I code alone but always try to get feedback from real customers before publishing. Developers (and most businessmen) do not think like customers - how I may code a Blender add-on may not be how a customer would like to use it. This feedback ensures that not only my tool solves the customer's problem, but also feels accessible and usable to them.

Did you hit any snags? Feel like giving up? Any exciting enhancements along the way?

Occlusion Culling.png

My first roadblock was optimization. The first occlusion detection algorithm I had was very slow in Python - practically unusable. Blender is built for quick operations. It took a few research rabbit holes before I could thoroughly optimize my code, and wrangle with Blender's add-on interface. Optimization has always been a passion of mine - even now I regularly try to make my code faster. But there is a balance. I have to weigh performance with my ability to read the code later (I may not look at the same code for months at a time), how Blender wants to run my add-on, and my customers' ideal experience.

nView has also undergone many UI facelifts - some more painful than others. One was fully integrating the undo and redo pop-up panel built into Blender. What seems like a rearrangement of buttons for the user was a rewrite of the add-on's entire architecture.

One aspect I am most proud of for nView is my coding environment around it. My last add-on, Shot Matcher, was a pain to manually test for each change. For an add-on as mathematical as nView, I wanted to automate this. So I coded a script to open Blender, run nView, and validate that everything works as expected. It was a pain to set up. But now, preventing bugs and regression of the add-on has become a literal click of a button. Nerdy of me, I know. But we developers love seeing our code become stable and robust. And now seeing how much faster nView has become is worth the effort.

Recently, from feedback by customers, I realized a need to make video demos. Customers wanted to see nView in action. And I needed to explain it, face-to-face (virtually speaking). I get very self-conscious on camera. Even just looking into the camera lens before pressing "Record" discouraged me to ever start. I worried and procrastinated for over a month. But with the support of my lovely wife, I was able to push through and publish the necessary documentation. I am very glad that it is up, and using videos and images often makes marketing easier, which results in less confused customers.

How much time do you spend on support and updates on average?

Having a stable product and relatively small number of customers makes this easier. Currently, I spend a couple hours per week on nView. But earlier on and while adding big features, it becomes a few hours per day.

Do you have another job/responsibilities outside of your work on Blender Market? How do you balance supporting and updating your product as part of your daily life?

I work a full-time job as a pipeline engineer. That means I develop and maintain the animation studio's code and artist tools, so the artists can just focus on the art. I also am a husband in a growing family.

My balancing of products and daily life has certainly evolved. In college, I would go into a multi-day "binge" of coding. Now with my other priorities, I often code in micro-sprints - research an issue or feature and code a workable solution within a few hours. After taking a break for a day, I come back to tweak and optimize, then finally update my test script to ensure it works and does not break any other features. Again, automating testing and building my add-ons saves me lots of time here.

What is your favorite response you've gotten from a customer who used your product?

Seeing and hearing people's excitement during my live demos always warms my heart. Customer service can be its own roller coaster, but some customers pleasantly surprise me and give me a moment to look back on my work and be grateful:

  • "Love the product and it works very well, the seller is willing to help.... He went above and beyond."

  • "Stellar service."

  • "Really have to appreciate the genius, man.... When I see beauty and potential, I got to support it to the fullest!"

  • "You rock sir!"

While I do make money from selling on the Blender Market, making a living off of it was never - and still isn't - my goal (but some creators are - please support them!). I create these tools because they solve problems I know others may have. Helping others through my add-ons is one of the highest satisfactions of my career. Blender and its open source foundation is very selfless in nature. That is something I continually try to aspire to.

What's next for you? Any exciting projects on the horizon?

I just released a free add-on, Light Painter! This has been a dream tool stuck in my head for a long time, so using it now is pleasantly surreal. In the spirit of Blender, this was a project I felt I should release freely to the community instead of selling it. I have also been trying to get back to my artistic roots and create more art. But by becoming a customer again, who knows what problems I will solve next?