Skip to content

2023.10.18 - Building a Business

Prelude

I want more artists making tools for other artists, so I'll share the answers to what is normally sensitive information with everyone here and on the web in the interest of encouraging that. Let's go!

  1. What are the legal requirements for distributing software such as Ragdoll?
  2. Do I need a legal entity, i.e. a company?
  3. How do I keep the pirates out?
  4. Was it worth it?


From a legal standpoint, what [do] the original software vendor (Autodesk / Foundry / SideFX) think about someone selling a plugin that uses their API. Are there any legal issues connected with it?

In short, anything you write is yours and can be distributed freely in any way you choose.

The part about "using their API" is interesting; the thing to keep in mind here is that law and licencing mostly applies to distributing other people's code. And by "using" their API, you are not distributing their API.

For example:

my_software.py

print("Hello World")

Here, I'm "using" the Python API to emit messages to the console of anyone running my software. You may argue that I do not own the right to Python's source code and thus cannot distribute this file, but the Python source code is not included in what I distribute. Only my own characters, written on my own keyboard. It is the user, running my_software.py, who has Python on their machine and who is the one who agreed to whatever licence was involved when installing Python such that they can run my software.

Let's take a look at another example.

my_other_software.py

import maya
print(maya)

Now I'm "using" the Maya Python API. But again, this file contains only characters written on my own keyboard which means I can distribute this freely with absolutely no restrictions. In fact, what does "maya" refer to in this case? Is it the Python API of Autodesk Maya, or is it this Python package?

Or maybe this file is part of a Python package you've written, in which there is a maya.py that my_other_software.py is calling on. At the end of the day, it cannot be known and doesn't matter. These written characters are mine, I wrote them.


Distributing Other People's Code

If you only ever distribute code you write, you can stop reading here and live a merry life.

Where licencing does become relevant however, is when you do distribute other people's code. For example, in Ragdoll, we use several open source libraries, like this one.

When it comes to distributing other people's code, there are usually two categories.

  • Distributing source code
  • Distributing compiled binaries

Most projects are specific about what you can do with both of these. For example, you are able to freely download and use an LGPL licenced project, but if you distribute it you must also distribute the source code; Qt is a good example, Autodesk has made modifications to it for Maya which is why Autodesk then also distributes it alongside every other project is uses for its software projects.

The prevalent reason for GPL-style licencing is for making additions to a library; the author wants those additions to be free like the original, so as to benefit the project and everyone using it. Other common licence types are MIT and BSD which you may distribute, both in source and compiled form, so long as you include their licence. As a form of credit.

The RapidJSON licence is here, which includes mention of this obligation.

For Ragdoll, we include this with each release of Ragdoll, and looks something like this.


How are you handling taxes as part of your sale? This question may sound silly, but does it require you to open some legal business to handle the tax of selling plugins from your website?

This would depend on country and state but in general whenever you have income, you need to declare it to the government. In the UK, you can have income as an individual, that's called a sole trader - for example:

  • If you rent out a room in your house on AirBnb, that is income.
  • If you mow people's lawn on weekends (for cash), that's income.
  • If you sell software, that's income.

Whenever you declare income to the government, they will want a slice of that income in the form of taxes, and there comes a point when opening a separate business will yield more money for you and less for them. If you operate a £100/year business, you are likely better off as a sole trader. The tax you pay will become part of your personal tax declaration (i.e. self assessment). Depending on how much that is, you're looking at roughly 30% of your income to taxes. 30% of £100 is nothing to lose sleep over, it's the cost of doing business. If you operate a £1mil/year business however, it won't be 30% but 60% and above, and suddenly taxes are no joke. Somewhere between £100/year and £1mil/year will it become sensible for you to open a separate business - probably around the £10,000 and £100,000 mark. In the UK that would/should be a "limited" company.

A company is like a person. It will earn income just like a person, except taxes are slightly different. A company can earn income and spend it before paying any taxes; in fact most companies spend all of their income for the sole purpose of not having to pay any tax. Any percentage of tax on £0 is still £0. And that's good for the economy as well, it means more money in circulation. For example, if you charge customers £10/licence and you sell 100 licences over the course of a year, your company will have £1,000 in the bank. By the end of the year, the tax man will stop by and ask for 30% in what's called "corporation tax". 30% of £1,000 is £300. The rest you get to keep, the tax man is now done and will return next year to take another 30% of whatever you make that year. If instead you sell 100 licences, get £1,000 and then spend that £1,000 on e.g. a new computer, then the tax man will stop by and find you have £0 in the bank, and promptly leave without asking for any payment. So now you (or your company, rather) have a brand new computer worth £1,000 in your belongings.

And I say "your company" because that's important to remember. Again, a company is like a person, and all that you are to your company is a director. A director is like an employee, and like any employee you would have responsibilities towards this company, primarily in doing what is essentially a self-assessment but for the company, called a corporation tax return.

For developers in our field, there are other ways in which to lower that 30% number, such as government grants and paying for your home office through the company and things such as:

Which is one of the many ways in which a limited company is different from being a sole trader, and your main consideration for whether to start one comes down to that yearly revenue figure.


Payment Processor

You can take cash, and you can have people transfer money to you via bank transfer. But for online businesses (and offline, for that matter) card payments are more common and you can't do these yourself. For that, you need some service capable of facilitating the transfer of money from customer to yourself.

For that, we use Stripe.

There's a bunch of options here too, like PayPal and Square. What it comes down to is cost; they all want a slice of your sale. Stripe is rather expensive, but makes up for it in convenience and features. For example, handling subscriptions is no small task.

  1. Onboarding a user for recurring payments
  2. Automating recurring payments
  3. Making cancellation and edits to a subscription
  4. When they subscribe, automate licence generation
  5. When they cancel, automate licence cancellation too

There are even services that combine the payment processor and licence management; we initially used https://www.sendowl.com but found that (1) their method of bundling licencing and downloads were limiting and (2) their UI for payments is lacking and (3) they are basically a wrapper on-top of Stripe and Stripe has a really nice API so we opted to simply use that directly.


Software Licencing vs Pirates

How are you handling the licensing of your tools? I mean the piracy part. It is an issue, and running some RLM servers is not an option when discussing some relatively small plugins for Maya.

It's great question with many answers; some subjective others strategical.

For Ragdoll, we use LimeLM by WyDay.

It's based on a DLL file (SO file on Linux) that ships alongside Ragdoll, and this DLL file has already been cracked. Meaning if you get hold of this cracked DLL and replace the file shipped with Ragdoll, Ragdoll will believe you are a legit commercial user.

We're able to spot the when, where and who of this happening on our end and do keep an eye on it in case we need to take action, but so far it's under control.

At the end of the day, we don't use LimeLM to keep pirates out, we do it to keep honest people honest. Not everyone agrees with this approach, and that's okay. I personally believe that if someone wants to use your software illegally, they will. If there isn't a way to do it, they will find a way to do it. I also believe that if someone wants to use your software legally, they will. What they won't do is jump through too many hoops to get there. If using it legally becomes more difficult than using it illegally, you'll turn honest users dishonest because what matters in the end is getting their job done. So, Ragdoll was cracked weeks after the release of 1.0 and we are aware of it (flattered, you might say!). Are we losing sales because of it, probably. Are we gaining sales from keeping licencing simple? Most definitely. So given that you cannot completely eliminate piracy, it becomes a matter of figuring out the balance which I today believe we've found. But again, this is subjective and will vary based on person and product.


Was it Worth it?

Was it beneficial for you? I mean developing and selling those plugins from your website commercially. I mean, understand me correctly, I'm not interested in any numbers - that's out of the question and not my business, I mean overall.

Without numbers, no answer I could give would mean anything to anyone, because whether it is beneficial will depend on your personal goals. Some want wealth, others want freedom.

I've now spent 10 years down this path; from prototyping with nCloth in Maya with my limited skills as an animator to realising it wasn't enough and having taught myself programming and how to run a business and manage a team of developers; if we look at the total figure in 10 years of earning income working for someone else, then I only recently reached the point where I have earned as much via Ragdoll as I would have as an employee.

image.png

Which, as you can see from my fancy graph, involves a large up-front cost. In my case, I never had to dip below 0, which many do in the form of taking on investment or loan.

As an aside, let's have a look at some other ways in which this graph can and often do go:

Bad idea, bad execution, or both

You use up all of your savings/investment but never manage to sell any copies.

image.png

Not worth it

You manage to sell product, but would have made more money as an employee. This may still be a win, if all you want is freedom and don't care about money.

image.png

No savings, no investment

This was me 4 times in a row for 7 years; restarting can be easy (like it was for me) but heavily depends on life circumstances (e.g. kids).

image.png

In my case and the first graph, what happens after today is obviously highly optimistic, but you'll need a lot of optimism if you are to run a business. 😊

Moving on, I was earning £40-70k/year as an animator in 2006-2013, which I expect would have increased with those 10 years of experience and perhaps change of role into something more technical, so let's be generous and say on average I would have made £100k/year and that I worked full-time for 10 years, that's £1,000,000. On average, companies take 5 years to become profitable. As in, 5 years until you've covered the cost of developing the first version and reached plus/minus 0 and can start saving again, so add another couple of years to reach the point you would have been at if you had just taken those initial 5 years and saved money along the way.

I heard this exact thing 10 years ago but never believed it could take this long, and here I am 10 years later repeating it to you. 😊

In my case, I never made £70k in a year, but rather spent 2-4 months each year on freelance earning roughly £20k followed by 8-9 months of living off of that (in London, i.e. very frugally) to try and develop what is today known as Ragdoll. Once cash ran out, rinse and repeat and 7 years later I had developed the first version of Ragdoll.

Early Website

It was a bug-ridden mess with very few features. But, it solved a real problem, for real customers. There is a lot more to say on the topic of how to develop and launch, so feel free to ask if that's interesting. I publicly launched Ragdoll in 2021 and generated £200k in the first 3 months of trading, far exceeding my expectation and more than covering the cost of development up until that point. Since then revenue has ebbed and flowed; there are a few key players out there more willing to take risks on startups (the early adopters) and once you've crossed that threshold you are left with the realists; the bulk of the market with higher demands and less patience. This is where the real work begins.

Overall I feel the timing was just right; for me personally, given that I get to utilise every skill and experience I've had as an artist and programmer, from modeling to animating for showcase material, to pipeline development and Python tooling, to web design and development for our landing page, to writing documentation via my work in open source (e.g. Pyblish and Allzpark), to managing people as a lead and co-founder in previous companies, to devops and setting up build servers, to making music for announcement trailers, to having enough of a network that I could rather easily find my first set of customers. The timing was right commercially and technically as well; hardware is more than capable of doing what Ragdoll requires in real-time and realism in film and animation is in dire need of tooling; it is simply too expensive and challenging to match the expectations of our audience and to follow the leads of rendering and modeling and texturing, which have gotten so far ahead of where character animation is today. There is a lot more to say on that too, so feel free to ask. 😊

With this in mind, was developing and selling software beneficial to me? I enjoy working with others and not having to think about what to do next; being given a task and executing it to the best of my abilities. I know studios enjoy hiring me, I do a good job. But oh man, it does not compare to having built your own thing and seeing it help others. Putting all of my experience, and lately the experience of my staff, together into single .zip file to be distributed to peers in the industry I know and love; there is nothing more rewarding.

I take it you didn't expect a reply like this, but believe you me; founders are happy to share. I speak to some of them myself on a regular basis (shoutout to JangaFX, Polygonflow and Inbibo!) and reached out to many more before starting Ragdoll, including Ziva and Pixologic (shoutout to James and Ofer!), they love talking about their experiences too. Running a company can be a lonely endeavour; there are far more employees than employers, so you'll naturally find more conversations about being an employee but at the end of the day we're all human.

One of the reasons I chose to get into detail here is because one of the things that bothers me about starting a business is how black box it is. In your case, the legal aspect alone can understandably drive you away from even trying. In others, the financial aspect such as "do I need investment?" - which seems really common but does not have to be! - can drive someone away. I also had these questions. For the first year or two of Ragdoll, I stood prepared for the UK government to come crashing through my door due to having forgotten some obligation for running a business - some missed tax payment or missing bit on our website. Or for Autodesk to require I only sell software on their their own app store and demand compensation for not having done so already. And there are still threats out there, things that can cripple any business in an instant for things not already done in the past - especially for things related to law which is why your questions are so important.

It is necessary to read licence agreements, like the MIT and GPL walls of text, and the Autodesk EULA when developing for Autodesk software. Some of those texts are trivial and clearly a non-issue, others will be challenging to understand which is when you do need an accountant and/or lawyer. But these people are out there for you, so when that time comes it really is as simple as reaching out to ask. It is unlikely you will need any of that before you generate any revenue, and by the time you do you also have money to spend which turns it not into a question of "can I afford it" but rather "how much more will I earn by having an accountant? By hiring this lawyer for a couple of hours?". When everything you spend can and often does make you more money, that's when you know you've got a successful business. At the end of they day, nobody is expected to know everything; mistakes can and will be made. Even law is built around this, because law is built around us being human. What matters is not that you know everything up-front, but how you deal with mistakes. If a payment is due, you will be reminded. If some law is broken, you will be notified. At no point will you be punished before being given a chance to remedy the mistake.

Bottom line is, you can do it. Aside from an idea, all you need is perseverance. Where there's a will there's a way, true in life as it is in business.


Podcast

Finally, in the interest of completeness, there's a podcast between me and Miguel Campos from a few months back talking about many of these things and more at depth.

https://www.youtube.com/watch?v=PMWvM9-vbgA&list=PL9LaIDCCDjfhZa-a_rT74cFDAk2R0Sf4S&index=3

Hope it helps, and feel free to continue asking questions here!