Skip to content
gadfly16 edited this page Feb 22, 2013 · 7 revisions

The main goal of qLib is to provide a collection of reusable assets that makes the everyday work of the Houdini artist easier. While there are other initiatives towards this same basic goal, we felt that our approach is different, and there is need for an actively maintained and coherently designed library.

We also hope that our library might become a valuable learning material about reusable tool building and problem solving in general.

Contents

Sections

Summary

In rough order of reliability and backward-compatibility:

  • base:
  • General-purpose tools, similar to native Houdini OPs (smaller building block-style)
  • Tested extensively in productions, interoperate well with other OPs, has good usability, bugs ironed out
  • Considered final in terms of both function and parameters. Neither will change (except for bug fixes) to provide 100% backward compatibility, which considered to be a key factor.
  • spec:
  • Tools useful for certain, spec-ific situations (as opposed to general-purpose, see above)
  • Might be a bit more monolithic in nature than the other, regular tools
  • Backward-compatible (but with not as much emphasis as the base section)
  • future:
  • Tools that are in the progress of being developed and tested until they reach their mature form
  • Functionality and UI might slightly change (but with a good chance of being backward-compatible already)
  • Once a future asset is tested enough and found ready, it goes to base (or spec).
  • experimental:
  • Testing ground, the place for prototypes and ideas
  • No rules, no guarantees, no constraints: assets, functionality, parameter UIs change, come and go
  • Assets that users like or find useful will be moved to future
  • graveyard:
  • Obsoleted tools which will be completely removed on next release.

Detailed description

The library consists of two main sections. The base section provides general tools with similar purpose that of Houdini's native operators. These eliminate the need of recreating common setups time after time. These tools are designed to work together with each other and with Houdini's native toolset seamlessly. In the base section we are trying to create small and simple, interoperable tools, instead of complicated and/or monolithic assets.

In contrast the spec section contains tools that we found useful only in certain situations. It's a good idea to run through these, just to have the basic idea how they can be of use, or how they can save you some time.

In addition to these two main sections there are three helper sections that can contain assets before and after they are appropriate to be in one of the two main sections. Prototypes and idea sketches are placed into the experimental section. If it is agreed that an asset is indeed useful, it's moved into the future section. Once the implementation feels mature and the interface is stable enough, we move the asset into one of the main sections.

If it turns out that there is no need for a tool anymore it gets buried in the graveyard section. We keep them there until next release.

This whole sections thing might sound a bit awkward at first but it's there for the best interest of the users. The sections allow you to fine tune the way you use the library. If you only interested in the most useful and stable set of tools you can only include base. If it doesn't bother you to have some rarely used tools in your menus, you can install spec. If you like to live on the bleeding edge and don't mind to adapt your scenes to occasional changes you can include future. If you want to help us and test our new ideas you can even install the experimental section. And if we so decide to remove an asset the graveyard section is there for give you some time to adapt your scenes for the change.

Examples and documentation

Every asset in the main section has proper -- if sometimes minimalist -- documentation, in the same manner as Houdini's standard toolset. We also provide some example scenes that can make the understanding of the intended usage of the tools easier and more fun.

Availability

qLib is an open source project covered with the BSD licence. This -- besides other things -- means there's no company whose existence would jeopardize the availability of the library: qLib is here to stay. We hope it will also pick up some traction and will evolve with a fast pace, but even if it won't the distribution archives and the repository will be downloadable in the foreseeable future.

Clone this wiki locally