We now have several different layers of functionality in IMP, which are kind of jumbled together in core. For example, with rigid bodies, you can create one by
- decorating a particles
- creating a couple of score states from relatively general purpose singleton modifiers and container based score states
- adding them to the model
or
- use a create_rigid_body function to do it all for you
Having all of these together clutters the documentation and makes it harder to find out what you should be doing. That said, we need at least some of the detail bit available to users, so we can't really hide them away as internal.
One option would be to pull these into their own module (I can't think of the right name offhand, perhaps helpers), and reserve core for very general purpose things like PairsRestraint.
Not sure what other options are.