Skip to content

2021.01.04

image

This release introduces proper licencing to Ragdoll.


Website

Happy New Year, the year of Ragdoll. :)

I've launched the next generation of Ragdoll's website. Something a little more flashy and intended to wet people's appetite for what lies ahead. Feel free to tell people about it, I've added a note about when it'll become a reality.

image

Also see this news coverage happening in Japan! :D

image

The old website can still be accessed, although it is a little crippled.

image

If any link fails, just make sure it's prefixed with ragdoll-web/ as the landing page, e.g. https://alanjfs.github.io/ragdoll-web/howto


Licencing

Ragdoll is growing up and now understands the "product key" which means users can now purchase a copy and register it to themselves.

Here's the short version, with a longer version below.

  • Can I use it on more than one machine? Yes
  • Can I move a licence between two machines? Yes
  • Do I need an internet connection to use Ragdoll? Yes and no
  • What if someone steals my licence key? Bummer
  • Can I have a floating licence? Soon
  • Can I activate offline? Soon
  • When exactly is internet required? See long answer
  • Can I manage my licence via Python? Yes

Now let's cover the nitty gritty details, at the time of this writing.

  • See licencing for current up-to-date information if you are reading this from the future.


What's changed?

You won't notice a change, other than a new UI.

image

Rather than Ragdoll expiring on a fixed date, it'll now expire 30 days after first launch, unless you activate.


Activation requires a product key which you get by either purchasing a licence or being really awesome.

How does it work?

On first launch, Ragdoll will try and connect to the Ragdoll Licence Server (internet connection required, offline activation coming soon) and register your trial version. This version is node-locked to the particular machine you are on. It'll stick with the machine even across re-installs of your operating system.

Once you've acquired a product key, you can either:

  1. Click the Ragdoll menu item (bottom)
  2. Click Activate
  3. Enter your product key

Or if you prefer:

from ragdoll import licence
licence.activate(key)

Can I use it on more than one machine?

Yes. You can activate and use Ragdoll on up to 3 machines. You just can't run a simulation on more than 1 at a time, that could lead to suspension of the licence.

Can I move a licence between two machines?

Yes. If you've activated 3 licences, you can hit the Deactivate button (which is same as the Activate button once you've actiavted) and the activation will be released.

Do I need an internet connection to use Ragdoll?

Yes and no.

  • Yes: To activate either the trial of purchased version of Ragdoll, the machine needs a connection to the internet.
  • No: Once activated, you won't need internet for 90 days
  • No: For special cases, get in touch.

What if someone steals my licence key?

That key is all that is required to run Ragdoll on any machine. If someone takes your key and activates 3 of their own machines, you won't be able to activate it yourself. If this happens, email us with proof of ownership (e.g. via the email used when purchasing) and you'll get a new one.

Can I have a floating licence?

Yep, get in touch with licencing@ragdolldynamics.com. Later on, these will be as trivial as node-locked licences. All I need is you.

Can I activate offline?

Yes. As soon as someone needs it, I'll add it. Get in touch with licencing@ragdolldynamics.com

Offline will be a 4-step process.

  1. Running e.g. activation_request_to_file() from you local machine
  2. Emailing generated file
  3. Receiving a licence file back
  4. Running e.g. activate_from_file(fname) on the same local machine.

Floating offline is also be possible, again get in touch.

When exactly is internet required?

A connection is made in one of two separate occasions.

  1. Calling ragdoll.licence.install()
  2. On simulating any frame

install() is typically called on Maya startup when the plug-in is loaded and menu is installed. You can disable this.

That is, Maya can open a scene with Ragdoll in it without making a connection to the internet if neither of these things happen. This means you can simulate on one machine, bake or otherwise disable the solver and send it off to a farm (e.g. local or cloud) without worrying about licences.

The alternative would be having to erase any trace of Ragdoll from a scene which would be such a pain.

Can I manage my licence via Python?

Sure can, see below.


Licence API

As a user, you'll generally use the UI. But the UI is ultimately making calls to Python (which is making calls to C++) and you can bypass the UI using these same calls.

from ragdoll import licence

# Called once before calling any other licencing function
# This is automatically called on Ragdoll Python initialisation
# and simulation start, but needs calling manually if simulation
# hasn't yet started.
licence.install()

# Retrieve the currently activated product key
licence.current_key()

# Activate using your product ket
licence.activate(key)

# Deactivate whatever key is currently activated
licence.deactivate()

# Dictionary of useful information
data = licence.data()

{
    # Same as current_key
    "key"

    # Is the current licence activated?
    "isActivated"

    # Is the current licence a trial licence?
    "isTrial"

    # Has the licence not been tampered with?
    "isGenuine"

    # Has the licence been verified with the server
    # (requires a connection to the internet)?
    "isVerified"

    # How many days until this trial expires?
    "trialDays"
}


Locked Rotate Pivot

Ragdoll doesn't support a custom rotatePivot attribute and would zero this out whenever a transform is turned dynamic. It'll provide a warning to the end user that this would happen.

But, it wasn't taking into account the rotatePivot being connected or locked. If that happened, Ragdoll would flat out refuse and print something cryptic in the Script Editor.

This has now been fixed.

  1. If the attribute is zero, nothing changes
  2. If the attribute is modified, it'll be zeroed out
  3. If the attribute is locked or connected, a warning is printed, but nothing changes.

Ragdoll still doesn't actually support a custom rotate pivot. So this fixes only the situation where..

  1. The rotatePivot is zero (default), and..
  2. The rotatePivot is locked