Ok in order to clear the air, I have decided to post a series of threads
where ideas on how to improve Lightwave can be posted in an organized fashion.
The idea is to provide an one stop place where developers (from Newtek, or independent)can come in and get ideas.

This thread along with its sister threads:

HOW TO IMPROVE LIGHTWAVE: SDK and plug-in development
HOW TO IMPROVE LIGHTWAVE: Interoperability with other apps

…will be used to provide input on ho to move Lightwave back into the forefront of CG graphics.

But in order to keep things positive (glass half full), and make it something
worth while, there are some rules for this thread:

Please dont provide rants, just provide your ideas.
No bashing Lightwave or any other app. I mean it.
If new research is pointed out, please provide links to it.
Show us real life examples on how your idea would help you.
Please along with your comment, provide suggestions of how to
implement the concept or idea on the workflow. Workflow is one of the
things that make Lightwave what it is.
The can do attitude is what made this community once great, cynicism is
killing it. Someone once told me “Optimism is an act of defiance”.
PS Ill post the other threads later today.


cant believe no one’s posted here. :slight_smile:

it’s a bit hard to get into what i think are improvements for expressions without going through what’s behind expressions, which is the animatable parts of lightwave.

anyway, for sure, particle expressions should be looked at. although this is already possible in some degree using LScript’s Particle Object it’s still too opaque for most users. i think a direct expressions interface should be built to deal with expressions, possibly an interface in the ParticleFX system itself.

in terms of particle expressions, again, it’s not about expressions itself, but what expressions control: particle buffers should be open to expressions. at this note: i noticed that particefx does not use most of the buffers that are available to it. but that’s more of a particlefx issue.

one thing that i’d like to see, that i think relativity has, it the ability to reference the “self”, so that the expression is self-contained.

lw should also provide a “global” expression interface system complete with a multi-line editor. single line is passe, imho. :wink: when i mean “global” i mean that from within one interface, one can make direct assignments, instead of going to the graph editor. of course, i would still like a “local” expression because it’s possibly the most intuitive way to go about “self-contained” expressions as i mentioned above. but having a global way of assigning expressions to channels makes for better workflow.


What i would like to see are expressions in the way they work in houdini .
Everywhere where you can enter a value you can just enter an expression instead and you have a right click menu on numeric entry fields where you can for example copy channel so you can just do a copy channel on your bone rotation and then paste the correct channel name in your endomorph expression.


– an unique syntax for the expressions. It is very bothering to have two ways of typing expressions (the regular one and the LScript one).

– a better integrated nodal expression system or something much more convenient similar to any interpretor-programming interface (I am not a programmer myself but I really like the Visual Basic Editor in MS Windows).


[li]a command or prefix which allow expression to read ik motion, and other motion plugin[/li][li]full and complete documentation for every command[/li][li]a bunch of clear and simple example[/li][li]a autocompleter during tipying like most of code oriented section of software, like rhino command line, like visual studio, like dreamweaver, like flash and so on.[/li][li]access from expression to all (i mean all) parameter of lw.[/li][/ul]


I wish expressions could refer to object layers or object #. For example, if you have 50 balls in a scene ball(1), ball(2), etc it would be nice to be able to refer to ball(currentball + 1) or ball(current layer +1). right now you can refer to ball(2), but if you want an array of obects to interact you need to go to each object and hardcode the object you would like it to follow. If im wrong and you can already do this in LW, please someone let me know.



I would like to see the entire scripting infrastructure, which includes expressions, replaced with Python.

Python is a very robust, open source system scripting implementation and is distributed on virtually every operating system/platform. There is a ton of documentation out there for it. A huge number of packages are available for it which allow it to be extended to solve many common computing problems – and in a platform-independent manner.

This would relieve Newtek from the burden of having to maintain a custom scripting solution and provide users with a well-known, actively developed, and well documented scripting standard.

The hardest part of this process would be in the initial creation of the wrappers forming the bridge between LW’s C code and the interpreter (a one time effort, though, other than enhancements) - AND - how to handle the LScript/old expressions compatibility issue. The latter might well be the hardest one to get right. I’d be inclined to provide a one-time translation of the expressions to a Python implementation-specific format when LW9 reads the old scene file, then the result is saved (and would not be backward compatible). The LScript infrastructure could be left in for legacy support, but the default scripting support would from there on be Python-based.


I’m with Faulkermano.
Single interface for all expressions, and A SWITCH TO TURN THEM OFF, look at Messiah and Relativity for the basics :wink:



Expressions already have a switch to turn them off individually. I would like the ability to assign expressions to groups which can be turned on and off. -as well as an option to activate all groups at rendertime.

I would also like a stacking system; so some expressions can be executed after IK. The IK command itsself would appear in this list and can be moved around to change when it happens.


I’m with Carm3D here. All NT needs to do for the next version to make me happy is allow us to stack motion plugins (would be nice for diplacement plugins aswell), remake IK as a motion plugin or allow for it to be stacked aswell, and make it so every motion plugin gets a weight envelope (incl. IK) automatically assigned to allow for easy blending for native AND 3rd party plugins. These are all core changes that could boost the usefullness of existing plugins (including 3rd party), hopefully, without even touching them.


one word - RELATIVITY!!


That’s exactly what I was thinking of. That’s the easiest way for us “normal” folks to get into and really use expressions agressively and effectively.



I am pretty happy with what I can do so far in LW expressions, but there is still some things I would like!

1: some sort of integral function, a sort of sum of all the values before the previous frame. If the ouput per frame went something like 1,2,5,1,3 the result would be 12

2: A seperate window for organizing/writing expressions and the channels they effect. Sometimes I forget what is applied to what and when you have a bunch of expressions in a scene it starts to get very tricky.

3: I want to mix expressions with keyframes with an envelope

that’s all I can think of right now.


You may already know this, but you CAN reference the self in a LW expression:

I.E. To add the Pitch from GreenSquare to BlueSquare’s Keyframed pitch:
BluePitchExpression: Value + [3Squares:GreenSquare.Rotation.P]

Cold day in you-know-where if I actually showed you something about expressions (actually, Prem taught me this) :wink:



This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.


Reopned the thread…


This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.