PDA

View Full Version : Plugin Request: Scene Checking Tool



Dirk
03-06-2007, 06:22 AM
I have this idea for some time now, and I would like to hear what plugin developers think about it.. LW is becoming more and more complex, Nodals, APS, Hypervoxels, GI, etc. Of course, this is a good thing since it gives us more options. But there are lots of interdependencies, features won't work together very well, some settings might increase rendertimes greatly, and there might be even known and forseeable bugs that will produce problems while working on a scene or while rendering.

I think it would be very helpful to have a plugin that checks a scene for problems and gives out a list of warnings and hints. This would also be very helpful for newbies.

For example: if there are transparent objects and shadowmaps in the scene, the Checking tool would give a warning: "Shadowmaps will not be rendered through transparent objects."

More examples: "Memory requirements for this Displacement settings might be too high", "Raytraced shadows on Hypervoxels might render very slow", "The subpatch display level on bone deformed Object X is very high, consider to lower the settings or use a polygonal proxy for this object while animating", "The option X does not work well in LW Version X.X, You might want to try this plugin: (link)"

The list could also contain hints and links to tutorials.

The plugin would check if several features exist in a scene at the same time. The Interdependencies would be collected in a database. The plugin would ask for permission to access the internet from time to time, to download the newest database, and LW users could participate to fill the database. Hints and Warnings could also exist in several languages, which could help to spread Lightwave.

StereoMike
03-06-2007, 09:35 AM
Cool idea Dirk. Makes much sense.

Grüße,
Micha

Lightwolf
03-06-2007, 11:42 AM
Ouch, tough design. You're talking about lots of interdependencies and rules.

As an excercise, write down all the rules you have in mind as a list. This should include when to apply them (when loading a scene, when rendering, when saving?).

Also, make it complete:
If there are transparent objects in the scene, and they are active but aren't a matte object and they are not excluded from the spotlight I'm checking against -> then warn the user.

Know what I mean? Just writing down that list will be 50% of the design, and it better be complete because people will grow lazy and rely on the tool (as is the case with all automatisms).

Mind you, I've got nothing against the idea, I just see it as being quite a complex task.

Cheers,
Mike

Dirk
03-06-2007, 04:45 PM
@Micha: Dankeschön!

I think I'll post this idea in the rendering.de forum these days, too

@Lightwolf:

sure, but the idea is to let the LW users fill the database with rules when a warning should de shown. It's not and cannot be a one man show, ihmo.

Also, there would be no rules when a check shall happen. I would just add a "check it" button, so the user can check whenever he wants to.

Obviously, it's quite possible that the plugin will produce "irrelevant" warnings: for example, if a scene requires raytraced shadows on HVs. Experienced user will simply ignore a warnig message, since they (probably) know what they are doing.

Lightwolf
03-06-2007, 04:58 PM
sure, but the idea is to let the LW users fill the database with rules when a warning should de shown. It's not and cannot be a one man show, ihmo.

Great... now tell me how you would design such a database? Artificial intelligence? ;)
This is extremely close to an expert system and to be honest, if you know how to code stuff like that you're not likely to turn it into a puny plugin - you sell it to banks for automated stock trading ;)

That is basically what I meant when I said write it down, the only way to start. Then you need to suss out how to break that down into logic, then into a way to store it in a database, then make it user editable as well (big *ouch* here) and so forth. And if you can't write a rule down in a simple sentence, then you will have a problem designing the logic, storage and UI for it.

Then again, you might be expecting less than I'm thinking, but if it is anything like the complexity of my example below... :stumped:

Cheers,
Mike

Dirk
03-07-2007, 04:18 AM
@Lightwolf: Yes, maybe You expect something too big here.

What I would like to see is something like

Spotlight(s) with shadowmaps + transparent Object(s) in a scene = warn user

I wouldn't even check if the objects or lights are excluded from each other, because, if You want it to do such a complete check, You might also want to check if transparent objects are inside of the shadow map area of spotlights, plus You would have to check the lights falloff, and You would have to check if any point on the (possibly deformed) surface of a transparent object is in the reach of a shadowmap creating light, etc. My best guess is that this would be near to impossible, regardless how good the AI is. Or maybe You would have to render the scene and check while rendering, which probably wouldn't make very much sense.

What I want to have is a plugin that takes a very preliminary look into the scene. Experienced User will check the scene and either think "I knew you would tell me this" or "Ouch! How could I forget this?", while Newbies might think "Oh, that's why it renders so slow" or "ok, let's have a look into the manual".

Now, the question is: do we need such a plugin?

My answer is "Yes". It's close to impossible to remember the the fallacies of any plugin or feature in Lightwave (or any other 3D software). Using "Ground Fog" and turned "Ray Marcher" on? Consider going to the local gym and have a workout befor Your test render is done. Having a gimbal lock when the animation is nearly done? Maybe the plugin would have told You that the rest rotation isn't 0,0,0. And so on. Even highly experienced User might have to do some R&D when they start a new project - the plugin could help.

There are even cases when features simply do not work very well, but nobody ever told You. Consider LW's HardFX. I've seen the example scene with the robots and the exploding vase, and though "Ok, seems to work" (call me naive if You want ^^). Then, I found the thread about ODEfl (I know ODE from working with Quest3D), and made some tests with HardFX. Enough to say that HardFX showed some very strange behaviours. With HardFX in the scene, the plugin might tell the user "Many LW users consider HardFX to be not very reliable. You might want to try the free ODEfl plugin instead".

Imagine how many time this could save when doing R&D? Just not trying to find the parameters that make HardFX doing the job, because a dozen experienced users already tried and found out there is no way?

Lightwolf
03-07-2007, 04:30 AM
Imagine how many time this could save when doing R&D?
You will still do the R&D though, since in most cases even the developers don't know if plugins work with other plugins.
There is also no way to read out the values set within plugins at the moment (except for parsing the scene file, and if that involves 3d party plugins you need to find out how they save their data as well). The parser would need to be a lot smarter than what LW uses to read in scenes (since LW can delegate parts to the plugins, the Scene Checker couldn't).

I just think there are better ways to invest time, and I surely hope the dev team will not waste time on this (since that would also mean chasing a moving target - something that doesn't work now may work in the future or vice versa).

Basically you're trying to replace experience with an automatism here, in the end this is just as possible as the "make nice picture" button ;)

Surprisingly, we still seem to be better at grasping complex relationships that computers are, despite all advances in computer science of the past decades.
<rant/> ;)

Cheers,
Mike

Matt
03-07-2007, 05:28 AM
I had a similar idea for scene pre-flight checking some time ago (like most DTP packages have) didn't get much response though!

Lightwolf
03-07-2007, 06:02 AM
I had a similar idea for scene pre-flight checking some time ago (like most DTP packages have) didn't get much response though!
Probably because the DTP tools are much simpler and have easier rules to follow.

Cheers,
Mike

stevecullum
03-07-2007, 06:37 AM
We could always have a new working mode, one down from beginners - 'pleb' mode!

Seriously though, I think the idea would be ok if you had a super computer that could pre-cognitively assume what you are trying to achieve.

And it would wind me up no end if the system kept asking if I was sure I wanted to do something!

(appologies for my sarcastic english humour in advance!)

StereoMike
03-07-2007, 07:12 AM
But Dirk's idea isn't what you're all talking about. He doesn't talk about the ultima ratio solution to do your homework.
Just a growing bunch of rules of thumb (like the examples Dirk already mentioned). No in-depth checking, only useful hints and tips that are given out if ther's a chance it might apply.
What the plug need is a trigger (conditions that must be true) and an according message to be output.
This doesn't sound like rocket science if you keep it at that level.
And it would be very very handy for newbies.

@steve: and it would give you advice only if you ask it to do so (by pushing the "check" button)

mike

Lightwolf
03-07-2007, 07:23 AM
But Dirk's idea isn't what you're all talking about.
In that case he needs to work on his description ;)

Stuff like this: "Memory requirements for this Displacement settings might be too high" is so vague that it is close to being useless.

What would make sense is a check list in print form, one sentence descriptions to check against.

Once that is done it _might_ make sense to put it in code (and that would be a pre-requisite for the code anyhow, but doesn't need to be done by the coder). Basically we're talking about a equirements specification here.

So, off you go, show me the list :D

Cheers,
Mike

stevecullum
03-07-2007, 07:36 AM
What if the scene was extremley complex? 4 million polys/ik/expressions/particles/dynamics etc..

I'm sure it would have a hard time figuring all these rules out against each other and cross referencing etc.. could take ages to calculate.

Its one of those ideas that sounds good on paper, but in practice is another matter...

(Lightwolf is a plugin genius tho, so I wont rule anything out ;))

StereoMike
03-07-2007, 07:37 AM
Full ack Mike, it's all about that list.

btw, if the plug could check for the amount of present RAM (or easier: a simple options menu where you can set some system specs as RAM, nr of CPU/HT etc)
then it could give you that memory message only when it makes sense.

Lightwolf
03-07-2007, 07:37 AM
(Lightwolf is a plugin genius tho, so I wont rule anything out ;))
I'll surely rule that out. Genius? I wish, not even close...

Cheers,
Mike

Lightwolf
03-07-2007, 07:39 AM
Full ack Mike, it's all about that list.

btw, if the plug could check for the amount of present RAM (or easier: a simple options menu where you can set some system specs as RAM, nr of CPU/HT etc)
then it could give you that memory message only when it makes sense.
Of course it would need to know how much RAM LW will actually use when rendering (which might vary from release to release) ... no to mention lwsn or third party RAM usage ;)

Cheers,
Mike

StereoMike
03-07-2007, 09:20 AM
And here you're leaving us again, hehehe. You seem to aim for a bullet proof and correct advice coming from the plugin. But that's too far.
You know, there was once a list with useful tips and hints for LW I read either here or at SQ. Such a list, but you will only see the things that will _maybe_ affect your stuff.
Regarding the RAM, if someone here at the forum tells his LW keeps crashing during render, then ppl give him advice that he has to look how small or big his output resolution is and if he has enough RAM (>1, >2, >4gb).
That's most of the time all advice he gets (and in most cases it's important information for solving the problem).
The plug shouldn't be able to do magic. Just put out simple tips.

mike

Lightwolf
03-07-2007, 09:29 AM
And here you're leaving us again, hehehe. You seem to aim for a bullet proof and correct advice coming from the plugin. But that's too far.
Sorry, but that's what I'd expect from such a plugin, otherwise I'd need a Check Check Scene plugin to advise me on the output of the Check Scene plugin ;)
And considering the amount of people that actually read docs (which you'd need, to understand what the Check Scene plugin reports) ... it would be a support nightmare ;)


You know, there was once a list with useful tips and hints for LW I read either here or at SQ. Such a list, but you will only see the things that will _maybe_ affect your stuff.

The same goes for the plugin though. Since it won't cater for every situation, you couldn't trust it either unless you know its limitations. And once you know those, you know plenty about LW to do without the plugin in the first place.


Regarding the RAM, if someone here at the forum tells his LW keeps crashing during render, then ppl give him advice that he has to look how small or big his output resolution is and if he has enough RAM (>1, >2, >4gb).
That's most of the time all advice he gets (and in most cases it's important information for solving the problem).

How about a plugin that opens the task manager and forces people to look at it? ;)

I mean, we are talking basic debugging or trouble solving skills here. My car doesn't run - did you check for petrol and release the handbrake? :p

Cheers,
Mike

StereoMike
03-07-2007, 09:55 AM
I mean, we are talking basic debugging or trouble solving skills here. My car doesn't run - did you check for petrol and release the handbrake?

Now you got the picture:)


But don't make the mistake and think of it as useless.
I can fix my darn Windows PC by myself, and I could laugh about some elderly woman I know, which fails on the most basic problems (e.g. forgetting saving a word doc). But I do not laugh cause I know that most ppl won't learn that stuff to an extend that they won't need any help anylonger. Or can't. Reasons differ (to old, not enough time, other interest etc).
But those with knowledge shouldn't forget, that there are many more without it.
That puts the masses from "dumb" to "average" and yourself from "average" to "smart". Humility won't serve here, cause you would think your state of knowledge is just average and all the others should be able to do the same.


Such a plugin will only give basic advice for blurred problems.
But it's a first step and ppl have a direction where to look for the solution.

mike

Lightwolf
03-07-2007, 10:02 AM
Now you got the picture:)

Yes, you are talking about a Windows Style Help wizard, just about as complex as the windows help wizard as well. ;)


[rant]
But don't make the mistake and think of it as useless.
I can fix my darn Windows PC by myself, and I could laugh about some elderly woman I know, which fails on the most basic problems (e.g. forgetting saving a word doc)
I wouldn't laugh at her, because I wouldn't expect her to know it.
I'd laugh if it was a pro (i.e. a secretary that works with tools like Word every day) - either that or shake my head.

Then again, you can refer to the 72dpi thread for more related stories ;)

Edit: I just think _education_ is more important than providing safety nets that _will_ fail to work when you most need them, and offer a false sense of security.

Cheers,
Mike

StereoMike
03-07-2007, 11:47 AM
Funny: I wanted to mention Karl Klammer as an example for this plug, but didn't come to the english name in time.
He's not more as an annoyance for experienced users, but newbs get some questions answered. And I found some helpful stuff there too.
So think of the underlying database without the dumb paperclip guy.
Btw, it never ever should be a safety net.
It's only a heads up and it would be important that ppl recognize it that way. Otherwise your point would be true and users would think of an application error everytime _they_ did something wrong and got no alert by the plugin.


because I wouldn't expect her to know it.
But you expect average Joe to know all that special cases, bugs and misbehaviours of our beloved package....??? Think of the famous transparency bug, jiggling motions when a character was too far away from the origin, plugin incompatibilities...etc?


mike

Lightwolf
03-07-2007, 12:10 PM
Funny: I wanted to mention Karl Klammer as an example for this plug, but didn't come to the english name in time.

Lol, I know what you're getting at. I was more referring to the dialogs that can pop up if you have a problem with drivers...


But you expect average Joe to know all that special cases, bugs and misbehaviours of our beloved package....???
I guess this is the difference, I don't expect average Joe to know everything, since average Joe would not use LW anyhow (that would be a Caligari, Poser or Carrara user ;) ).
I do however expect people that want to work (for money or pleasure) with a complicated piece of software to take the time to learn it. It also goes without saying that pitfalls should be (well) documented, if they aren't - blame NT or let us change that (i.e. Checklist) - but no automatism will help if the user is not willing to learn in the first place. And you might as well learn properly.

Maybe you expect less of such a plugin than I do in this context and see it as something a lot simpler... but that just makes it even more useless imho ;)

However, having said that, it would make sense to have more warnings come up in context (that can be switched off completely), such as the (now gone - see what I mean by moving target?) warning about radiosity bounces.
However, in context, because it gives direct feeback (-> Pavlovs dog, just to add another obscure LW reference ;) ).

Cheers,
Mike

Dirk
03-08-2007, 04:05 AM
You will still do the R&D though, since in most cases even the developers don't know if plugins work with other plugins.

This is my point. That' exactly why the database should be maintained by LW Users. If somebody knows that two plugins don't work together, or do not work together under certain circumstances, he can put it into the database.


There is also no way to read out the values set within plugins at the moment

That's why the advice the plugin would give is more like a rule of thumb. You expect too much.
B.t.w., Michas idea to let the plugin check some basic computer specs is great.

Lightwolf
03-08-2007, 04:12 AM
You expect too much.

I probably do. But a system that doesn't do much isn't worth spending time on designing and developing ;)

That is why a user driven checklist is imho the better choice.

Cheers,
Mike

Dirk
03-08-2007, 04:49 AM
I probably do. But a system that doesn't do much isn't worth spending time on designing and developing ;)

That is why a user driven checklist is imho the better choice.

Cheers,
Mike

So we agree to disagree ^^

If such a plugin would help new users to make the first steps in LightWave, it would be a big plus, Imho.

Lightwolf
03-08-2007, 04:55 AM
So we agree to disagree ^^

We certainly do ;)


If such a plugin would help new users to make the first steps in LightWave, it would be a big plus, Imho.
I think NT should include a 5 page booklet: "LightWave 3D for Dummies (and people that never read manuals)" - looking at the success of the series it should do well :p

Cheers,
Mike

Dirk
03-09-2007, 02:52 AM
We certainly do ;)

I think NT should include a 5 page booklet: "LightWave 3D for Dummies (and people that never read manuals)" - looking at the success of the series it should do well :p

Cheers,
Mike

The Trial Version works for 30 days, and a new user would have to read, unterstand and (to some extend) memorize three manuals with 400 to 500 pages each.

Lightwolf
03-09-2007, 05:25 AM
The Trial Version works for 30 days, and a new user would have to read, unterstand and (to some extend) memorize three manuals with 400 to 500 pages each.
If a new user expects to fully understand a package like this in 30 days it is either a genius or somebody who needs a reality check (or, did I mention that before, a potential Carrara user ;) ).

Seriously though, I don't know why you bring up the trial version unless the plugin was designed for complete newbies using the trial to begin with (which, quite frankly, rules out any third party development).

Cheers,
Mike

Sensei
03-09-2007, 07:10 AM
That' exactly why the database should be maintained by LW Users. If somebody knows that two plugins don't work together, or do not work together under certain circumstances, he can put it into the database.


Making plug-in that will include the all scene, objects, surfaces parameters etc. to pick up by user to include/exclude in database entry would be nightmare for programmer..

On the other side of things, if such plug-in has no user build database but hardcoded checking routine, it's 100 times much easier to write..

It's like flexible node system (user defined database) versus writing single shader.. Second writable in a day, first in months/year of development..

and nobody will pay for this job.. ;)

StereoMike
03-09-2007, 11:55 AM
um yeah, it depends on how much should go into it. Everyday someone finds a new bug or undocumented exception, so if one tries to keep the plug updated -yes- this scenario would be a nightmare.
In the end it boils down again to the list. A written list of tips to include (and which to exclude). It's about where you draw the line.
I for one think important are undocumented exceptions (or hidden ones - tried to use the lw9 book index recently?) and plugin incompatibilities.
btw, that's stuf that even an advanced user won't know until he finds himself in that trouble, Lightwolf ;)

mike

Lightwolf
03-09-2007, 02:01 PM
I for one think important are undocumented exceptions (or hidden ones - tried to use the lw9 book index recently?) and plugin incompatibilities.
btw, that's stuf that even an advanced user won't know until he finds himself in that trouble, Lightwolf ;)

Oh, I absolutely agree. And you already just provided a good way to solve it: If there are undocumented issues... document them. That's what documentation is for ;)

My point is just that a plugin will not solve documentation issues. :p

Other than that, problem solving skills are a part of our job (or a part of most jobs for that matter).

Cheers,
Mike