My nephew is a fledgling developer in HS and is really curious about pursuing computer science and eventually being a developer in a graphics-related tool. I know you guys are busy but if you ever have the time, I have a list of really scattered questions he’s asked as he’s trying to get a feel for lots of different developer experiences: Unreal engine, CAD programs, etc.
-
What are the most essential skills to have in the being able to work on Rhino’s actual 3D engine / NURBs engine / etc?
-
What mathematic fields are most crucial for it? And are traditional CS curriculums typically enough to provide the level of math expertise needed to work on a product like Rhino?
-
In your personal experiences, what are some of the most complex/challenging subsets of programming behind a tool like Rhino that an “average” student/developer might not be exposed to (like, say, developing a restaurant reservation system)? Where might a person learn more about these topics?
-
Rhino sounds like it’s extremely domain-specific technology. How much of your day-to-day software development is straight-forward business logic implementation for features (like: export file to New Format X, making a new toolbar, making a better color palette manager) versus really specialized (like: creating a better boolean operation)?
-
Does a company like McNeel typically aim to hire generalists who can gradually become more specialized over time, or for real specialists (like 100% graphics programmers) who are naturally capable of handling some traditional software / bread-and-butter feature development from time-to-time?
-
In this day and age, assuming time/money wasn’t a huge factor, would you ever even consider rebuilding core parts of Rhino in something like C or Assembly? Are the speed advantages of this even practical anymore given the state of modern hardware?
-
On the flipside, in terms of scripting / business logic: do you guys have any opinions on languages like Lua? Many game companies seem to write their core engines in C++ and then use Lua for all game scripting / logic / etc citing its easier to write in and just as performant. If you could do it all over again, would you adopt something like Lua (or something else similar to it) for building features on top of a NURBs engine?
-
This is a random one we were talking about the other day. There’s this article criticizing the SVG format: SVG: The Good, the Bad and the Ugly | Eisfunke, with lots of heated debate on it, like SVG: The Good, the Bad and the Ugly | Hacker News. If you compare what SVG ultimately does, it seems like it utterly pales in comparison to the technical power/sophistication of vectors/curves/etc in Rhino. Does McNeel have some proprietary format for storing/expressing/managing curve data? Is it even comparable to SVG format? If SVG is such a complex rabbit hole that trips up the rest of the developer community, how is Rhino effectively doing 100X more complicated things than representing curve data without so much heated debate/controversy/bottlenecking of its own processes?
Any insights of any kind that I could share on literally any of these Qs would be unbelievably appreciated. Thanks!