Digital Arts Is A NewTek Elite Partner
Serving Indiana, Ohio, Illinois, Kentucky and Michigan
1-800-692-6442


Wednesday, February 4, 2009

Lightwave Core Technical Details

NewTek has released a little more info:

LightWave CORE™ is a completely new architecture for LightWave. Over two years in design, LightWave CORE™ is the next generation, leading edge multi-processing, unified application engine created by the NewTek LightWave development group.

LightWave CORE™ is a lightweight component system, which is used to build higher level functionality, such as nodes and node graphs for various subsystems, which together build a modern scene-graph-based 3D application. Using a Meta Data layer allows for the integrated help and search system to quickly find the tools/nodes needed for the task at hand, as well as fast development and deployment of self describing components.

LightWave CORE™ is based on the scene graph data structure. Proven over the last several years, this data structure has become industry-standard. It is fast, reliable, and offers tremendous functionality. The scene graph is a node-based structure, although the data contained within the nodes can be represented to users in many different forms:

* As a node graph
* As a list
* As a tree
* Etc.

Note that some of these representations may not be capable of showing all of the possible connections that may exist; for this reason, applications which we build on the LightWave CORE™ will have the ability to present, manipulate and otherwise assist users in any number of these manners and others, without limitation.

The true power of the scene graph is the manner in which each node can communicate with any other node. As everything is represented via nodes, and inter-node communications are effectively unlimited, nodes can actually be used to drive other nodes via dependencies and inheritance. The typical use case example would be the “driver/driven” concept, whereas an attribute of one node is dependent upon the attribute of another. Simply put, using the color channel of one node to drive a lattice deformation node, which is manipulating still another node.

With regard to nodes themselves, each can have an unlimited amount of attributes applied to it, via modifiers and other devices. Each component is rather simple and straightforward, but these node building blocks can be put together to form complex systems. Limited only by the user, these systems can be easy to trace back and debug, due to the simplicity of the basic design. For example, technical directors can easily build up sophisticated character rigs with this system, either directly or via any selection of LightWave CORE™ supported languages via SWIG (Python being the system default). Yet, animators will see only what the TD wants them to see, which allows animators to focus on the performance and aesthetics of the scene.

The scene graph allows for instancing and referencing of data. As nodes are modified, the dependent section of the node tree is re-evaluated, and the changes are propagated through the structure. This evaluation is very fast, facilitating creativity by “getting out of the way” of the creative process.

So, first and foremost, LightWave CORE™ is an application framework.

LightWave CORE™ is built on objected-oriented structures implemented in C++. The SDK is also C++. This SDK is the same for internal development as it is for external development. This means that anyone can have full LightWave CORE™ access via the SDK. The architecture enforces full access to C++ SDK and scripting languages, featuring Python as the primary language, while remaining open to interface with a wide range of others. Industry-standard, Industry-proven.

As the SDK for LightWave CORE™ is the same for all, everyone using the SDK has the same access, and the same capability, as NewTek engineers do. So, what exactly does this mean?
Power

Third parties can put together plug-ins and external applications that can effectively do anything that they can imagine doing in a 3D content creation application. Developers can choose to use the tools that ship with the application, or build their own. Once they do, what they create is then available for use by other modules, leveraging the previous work. This concept should yield powerful systems that can quickly be put together by scripters or program coders.

LightWave CORE™ provides a ground-up redesigned geometry engine, using data structures optimized to ensure the highest performance on modern, multi-core CPUs, while keeping memory consumption at the lowest possible levels.
Flexibility

Any component created via the LightWave CORE™ SDK can install and become a part of the application. This can appear to be a transparent process, meaning that the component itself would operate as if it were a “factory default” if the SDK rules are followed. Don’t like a particular workflow? Replace it with one of your own. Want to extend the capabilities of products built on the LightWave CORE™ ? Go ahead; just use the SDK to do so. There are no limits to the flexibility offered by this approach.

The design philosophy from the get-go was to use industry-standard approaches wherever a proven approach existed. C++ was chosen for this reason and the SDK as well; had we gone with C instead, we would have limited access, and caused unnecessary complexity.

For user interface, the popular Qt toolkit from TrollTech/Nokia was chosen. This toolkit is powerful, flexible, and there is a large talent pool of users with experience within the toolkit. This gives NewTek access to a talent pool with previously-existing experience. Less training upfront enables potential hires to become more productive more quickly. Also, with thousands of users, this toolkit is more robust than anything that we could have developed in-house at NewTek. In addition, it is available now for development; had NewTek developed its own toolkit, as had previously been done for earlier versions of LightWave, LightWave CORE™ development would have had to wait for implementation of the UI toolkit system. This is but one example of the benefits of leveraging industry standards.

LightWave users will see the benefits of the Qt immediately: snapping palettes, flexible UI design, skins and so on are possible within this system, and NewTek has already leveraged these features to varying degrees. The wide-ranging adoption of Qt in large commercial vendors is occurring, and this trend further reinforces our choice.
Full LightWave CORE™ access for Python, via SWIG

In addition to full access via C++ and the SDK, internally-implemented languages have the same full access. Discussions for which language to support were lively during the design phase of LightWave CORE™ : several floated to the top, but Python held the most weight, especially when weighed against our industry-standard directive. That said, there are several legitimate languages which could have been included in addition. This posed quite a quandary, until the development group determined that we could implement internal languages via SWIG bindings. At the time of this writing, there are approximately 25 popular languages that have SWIG bindings, and can thus be implemented within the LightWave CORE™ SDK. Implementation does require engineering, but because of the SDK, this can easily be done by third parties. For example, Lua is popular in the game development community; via the LightWave CORE™ SDK, a game company could implement Lua into the LightWave CORE™ via SWIG. Once implemented, Lua would have the same complete access as Python, or any other implemented language.
Embedded Command-line and text editor

Given the support for SWIG languages, it makes sense to have components that allow users to leverage these languages within the environment. A built-in, context sensitive text editor and command line are available. The command line supports auto–complete, making inputting commands or writing scripts even easier.
Industry-standard file formats

The original LightWave object format, LWO, has gone through several revisions throughout its history. It is a popular format, and many assets exist in this format. Therefore, LWO is a fully-supported format within LightWave CORE™ , but it is not the default format (unless the user decides otherwise.) COLLADA is the basis format of LightWave CORE™ , with extensions added by the NewTek engineering team. In addition, FBX and other popular formats will enjoy broader support than in previous versions of LightWave, due in part to the flexibility of CORE™ vs. the classic architecture. In classic LightWave, evaluation orders are effectively fixed; this makes importing COLLADA and FBX files from other applications difficult at times, especially if rotation orders have been rearranged. The same would hold true for deformation evaluation order.

LightWave CORE™ has complete flexibility in evaluation order of any system. This will better facilitate data interchange with other applications in the pipeline. Rotation order, deformation order, etc., are completely under user control, offering the most versatility for problem solving.
Unification

Since the very beginning, LightWave has always been a two-headed application; one application for modeling, and a separate application for animation, shading, lighting and rendering. This is no longer the case, as LightWave CORE™ offers a unified environment. CORE™ does not distinguish between modeling, rendering, lighting and so on. Instead, LightWave CORE™ allows anything to be animated in any number of ways; keyframed animation, of course; procedural animation via scripts, expressions and so on; dynamically, in the form of a unified simulation environment. In short, anything can be driven by anything else: a water simulation could drive cloth or hair, for example, or anything else for that matter. Everything has access to everything else.

The capabilities of the LightWave CORE™ can be presented to users in a variety of different methods: in a survey of the user-base, it was clear that the split for a separate modeler vs. integrated modeler was 50/50. In the end, there was really no need to force a choice, as the environment will present these functions as desired by the user. Want to use LightWave CORE™ as just a modeler? Fine. Want to integrate modeling functions with animation? That’s fine, too. Users can decide how they would like there experience by a simple user preference setting – a dynamic setting that can be changed at any time.
Workflows and User Interfaces

LightWave CORE™ makes it possible to explore many different workflows, with the ultimate goal being to make workflows as simple and clear as they can possibly be. NewTek is currently hip-deep in that exploration. That said, whatever NewTek chooses to ship in terms of interface will be customizable by the user base, again using industry-standard tools. General access to most of the UI components is available via CSS, including fonts, placement of controls and widgets, down to pixel-level accuracy. The Desktop management system allows users to store their preferred layout in a per context fashion: settings for modeling, surface, rigging, animating, rendering and so on, can all bet set and stored separately.
Extensibility

Traditionally, LightWave has always benefited from a healthy array of products offered by third parties. These plug–ins have often proven to be ground-breaking; however, the vendor companies have often complained of restricted access. LightWave CORE™ offers a system wherein all plug-ins within the system are essentially components that are registered and managed by the LightWave CORE™ . We have endeavored to make it as easy as possible to either add to the system, or simply replace a previously registered component. By default, the plug-ins are multi-platform (mach-o bundle), enabling vendors to ship a single file to support Windows, Linux and Mac, in both 32 and 64 bit versions.
Technology

LightWave CORE™ is completely multi-threaded, spawning as many threads as it needs. Completely multi-processor-aware, LightWave CORE™ is truly a next-generation development environment for innovative 3D applications. The system is both 32-bit and 64-bit compliant, and is capable of leveraging GPU power where applicable.
Still Familiar…

LightWave CORE™ is completely new. However, LightWave CORE™ was designed to honor its roots. LightWave CORE™ workflows are inspired by the best workflows in LightWave. In terms of tools, if you know how to use LightWave, then LightWave CORE™ will be very familiar to you, even if the screen appearance is graphically different. The tools you like still work the same way, and while some tool locations might be better organized, you can always create a preference to match the way you work.

No comments: