POV-Ray : Newsgroups : povray.general : --- Server Time
31 Jul 2024 18:25:01 EDT (-0400)
  --- (Message 1 to 10 of 10)  
From: Tim Attwood
Subject: Re: Liscense
Date: 10 Dec 2006 04:09:55
Message: <457bcee3$1@news.povray.org>
> Can a programmer distribute this product (povray)
> with a seperate project that explains it uses povray to generate pictures
> (like logo) and not make money off it?
> Is it legal?
>
> JohnnyL

Basically, yes.

All that is required is a statement that POV is in your distribution (at 
install)
and that POV is free, and available from www.povray.org

There is no requirement that your software be free.


Post a reply to this message

From: Chris B
Subject: Re: Liscense
Date: 10 Dec 2006 04:58:05
Message: <457bda2d$1@news.povray.org>
"JohnnyL" <lut### [at] operamailcom> wrote in message 
news:web.457b747521612df63b3f2090@news.povray.org...
> Can a programmer distribute this product (povray)
> with a seperate project that explains it uses povray to generate pictures
> (like logo) and not make money off it?
> Is it legal?
>
> JohnnyL
>

Hi Johnny,

The license covering the distribution of POV-Ray softare is at 
http://www.povray.org/distribution-license.html.
I think you'd need to read clause 3 to answer your question.
Unless your plans come under any of the specific terms of that clause (e.g. 
3.1c - educational institutions), then I believe you would need to get 
written permission.

Regards,
Chris B.


Post a reply to this message

From: Christoph Hormann
Subject: Re: Liscense
Date: 10 Dec 2006 05:35:03
Message: <elgnme$uu5$1@chho.imagico.de>
JohnnyL wrote:
> Can a programmer distribute this product (povray)
> with a seperate project that explains it uses povray to generate pictures
> (like logo) and not make money off it?
> Is it legal?

Unless POV-Ray is just an optional inclosure to your product (see 
distribution license 4.1.d.i-ii) you need to obtain a written permission 
by the POV-Team.  You can use the email address given in the license 
text to make such an inquiry.

The purpose of these regulation is to ensure the users of such a product 
are prominently made aware that POV-Ray is included with the product, 
provides parts of its functionality and is available for free.

Christoph

-- 
POV-Ray tutorials, include files, Landscape of the week:
http://www.imagico.de/ (Last updated 15 Oct. 2006)
MegaPOV with mechanics simulation: http://megapov.inetart.net/


Post a reply to this message

From: Patrick Elliott
Subject: Re: Liscense
Date: 11 Dec 2006 16:54:06
Message: <MPG.1fe77c771a4a95e989fbc@news.povray.org>
In article <elgnme$uu5$1@chho.imagico.de>, chr### [at] gmxde says...
> JohnnyL wrote:
> > Can a programmer distribute this product (povray)
> > with a seperate project that explains it uses povray to generate pictur
es
> > (like logo) and not make money off it?
> > Is it legal?
> 
> Unless POV-Ray is just an optional inclosure to your product (see 
> distribution license 4.1.d.i-ii) you need to obtain a written permission
 
> by the POV-Team.  You can use the email address given in the license 
> text to make such an inquiry.
> 
> The purpose of these regulation is to ensure the users of such a product
 
> are prominently made aware that POV-Ray is included with the product, 
> provides parts of its functionality and is available for free.
> 
> Christoph
> 
This one does bug me a tad. If you completely redid POV-Ray to make it 
an includable library, which had its "own" render window that "must" be 
used as the installed component, "can't" be hidden by the developer and 
which, as part of its initialization, automatically displayed a test 
render and a scrollable disclaimer, including a statement that this is 
not an original, etc., etc., would that "cover" the requirement?

The limitations of the current implementation make integration iffy, use 
frustrating and the results less than exciting. Its probably actually 
easier, if you know the math, to code a look alike product, than use 
POV-Ray as part of any sort of package, optional or not. And its 
certainly not too helpful in cases where removing it "would" break the 
product. Then again, trying to use Moray with "anything" other than POV-
Ray would break that too. Its only "how" they integrate that is the 
issue and how easily some change in the interface that "does" exist can 
break it that effects the rules. And, given how easy it was to break 
compatibility between Moray and the latest POV-Ray version, this is 
hardly a crowning achievement of POV-Ray development. lol

I mean, why "can't" you adjust the design for a specific task, making 
clear that this is "not" the original, as long as it still does what is 
needed to comply with all the notices. Is it only the presumption that 
any closer integration *can't* comply? All that's needed is something in 
the dialog function that makes it "ignore" or "reset" any attempt to 
change its "visible" property, until "after" a certain amount of time 
has passed or someone has scrolled through the disclaimers and clicked 
"OK". Same result as having it 100% external and throwing yet another 
application window over the top of everything when it starts. And again, 
if the point is to prevent people making POV-Ray a "dependent" part of 
their own application that is manditory, Moray is already basically 
breaking that rule as would any GUI modeler that only exports to and 
uses POV-Ray as its target renderer.

Point is, does the anti-library issue make sense, if sufficient 
requirements exist, to make sure that the "rest" is adhered to? Last 
time I sort of asked this the answer was an unsatisfactory, "No you 
can't do that because it 'would' somehow break the disclaimer 
requirements..." I don't get why that "must" be true at all. Non-
conformity is non-conformity, regardless of if some clown creates a 
library version then doesn't show any of that or they code some hacks 
into their own application like to do it:

run "povray"
a= findwindow "povray"
setwindowposition "a",nonvisible & minimized

They are still breaking the rules, no matter "how" they hide it. Why is 
hiding the whole thing with a hack "less" egregious than making it more 
integratable and failing to include a way to show the needed information 
in their own application? The argument against library design is just 
one of, "Its easier for someone to cheat.", not one of, "This way people 
can't cheat.", so I just don't get why its more of a problem. Hell, if 
anything, I could create the above hack in five minutes and have it 
working, compared to the days it would take to do what a lot of people 
would like to be able to.

Anyway. Hope you really think about what I am saying here and don't just 
come back with the usual, "You just can't do it 'period'.", argument. :p

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}

<A HREF='http://www.daz3d.com/index.php?refid=16130551'>Get 3D Models,
 
3D Content, and 3D Software at DAZ3D!</A>


Post a reply to this message

From: Christoph Hormann
Subject: Re: Liscense
Date: 12 Dec 2006 02:54:22
Message: <457e602e$1@news.povray.org>
Patrick Elliott schrieb:
> 
> This one does bug me a tad. If you completely redid POV-Ray to make it 
> an includable library, which had its "own" render window that "must" be 
> used as the installed component, "can't" be hidden by the developer and 
> which, as part of its initialization, automatically displayed a test 
> render and a scrollable disclaimer, including a statement that this is 
> not an original, etc., etc., would that "cover" the requirement?

I don't really see your point here.  The POV-Ray license requires a 
custom version to be a fully functional version of POV-Ray.  The reason 
for this is to prevent anyone from crippling POV-Ray to just perform a 
certain limited task.  The user who gets a custom version of POV-Ray 
should always be able to do everything possible with the official 
version as well.  For the same reason the license does not allow to 
disguise the fact that POV-Ray is used in a program system.

As far as practical problems of using POV-Ray in combination with other 
programs is concerned - you seem to be very focussed on the GUI versions 
of POV-Ray.  The license no way requires a distributed POV-Ray 
executable to have a GUI and in the Unix frontend the GUI/render window 
has always been optional.

-- Christoph


Post a reply to this message

From: Patrick Elliott
Subject: Re: Liscense
Date: 13 Dec 2006 22:41:18
Message: <MPG.1fea759662807bb1989fbe@news.povray.org>
In article <457e602e$1@news.povray.org>, chr### [at] gmxde says...
> Patrick Elliott schrieb:
> > 
> > This one does bug me a tad. If you completely redid POV-Ray to make it
 
> > an includable library, which had its "own" render window that "must" be
 
> > used as the installed component, "can't" be hidden by the developer and
 
> > which, as part of its initialization, automatically displayed a test 
> > render and a scrollable disclaimer, including a statement that this is
 
> > not an original, etc., etc., would that "cover" the requirement?
> 
> I don't really see your point here.  The POV-Ray license requires a 
> custom version to be a fully functional version of POV-Ray.  The reason
 
> for this is to prevent anyone from crippling POV-Ray to just perform a 
> certain limited task.  The user who gets a custom version of POV-Ray 
> should always be able to do everything possible with the official 
> version as well.  For the same reason the license does not allow to 
> disguise the fact that POV-Ray is used in a program system.
> 
> As far as practical problems of using POV-Ray in combination with other
 
> programs is concerned - you seem to be very focussed on the GUI versions
 
> of POV-Ray.  The license no way requires a distributed POV-Ray 
> executable to have a GUI and in the Unix frontend the GUI/render window
 
> has always been optional.
> 
Well, there was some level of confusion at one point when either I or 
someone else mentioned it. So.. If someone made an ActiveX enabled one, 
which can run stand alone or as a library, then as long as some method, 
like I mentioned, is employed to make sure people know its POV-Ray, then 
that is OK?

In other words, if it functioned exactly as it does now under Windows, 
but you could also call it with:

a = createobject("application.povray")
b = a.renderwindow
b.parent = me.frame
b.render ("myscene.pov")

Then, and this is where I am suggesting the means of compliance, you 
code the interface so that:

1. "renderwindow" cannot be resized smaller than needed to display the 
required licencing elements.

2. "renderwindow" connot be "hidden" until after those are displayed.

3. "a.render" will not operate at all, unless you have at least one 
instance of "renderwindow" in operation.

4. Possibly set of the initial license info display as something you 
have to do an "decline" or "accept" type thing on, so they have to at 
least look at it.

See, the idea is to both comply with the requirements, but also 
integrate the engine closely enough with what is going to use it that it 
is nearly invisible. Currently the only method to do that tends to be a 
tad flaky and became broken between versions. The idea is to provide an 
alternate wrapper, that provides complience, less obtrusive operation 
and better integration.

I would also, for my use, consider an additional optional "sandbox.ini" 
file, which would let you disable certain features, like radiosity, 
which might create excessive render times if used, so that, for my use, 
the engine **seems** to be limited to faster operations that allow 
closer to real time operation. I.e., scenes that take a minute or less 
to generate, not 30 minutes to 30 days, etc. However, editing the 
sandbox or even deleting it would "re-enable" anything disabled. Using 
it in "stand alone" mode would simply ignore the sandbox settings.

Point is, finding a way to comply with the requirements without breaking 
the rendering engine (and the rules) or recoding it, while "still" 
getting what you want out of it for the specific task you need it for.

The last few times anyone even suggested some sort of closer integration 
the answer wasn't, "If you make sure they know what it is and it does 
everything it normally would.", it was, "No you absolutely cannot." I 
want to know how flexible the rules really are and if you can comply, 
how ever convoluted the solution, without throwing the whole thing out 
as totally unworkable and starting from scratch. What I propose above 
would "seem" to me to make sense. I want to know if it does to the 
people that coded it.

NOTE: In case you are wondering, the idea is to, maybe, allow small 
scene files, dependent on local libraries of some pre-made stuff, to be 
sent by text based games, so that some level of 3D stills or simple 
animations would be possible. This mandates a sandbox that can 
"disable" things which, while nice for real renders, are time hogs 
otherwise. It also mandates some level of usable integration, which is 
barely possible when it works with the current method and not entirely 
practical for some uses. At the least it has serious issues with initial 
startup of the engine, which causes different problems depending on 
which starts first, as well as issues with multiple copies, either of 
the engine or of applications trying to talk to it. The existing method 
to solve it only partly addresses the issue imho, while real instancing 
of it as an object solves most of the problems, except the memory issue 
that then crops up.. But, its possible to allow one "stand alone" 
instance and one "object" instance or other permutations too, just not 
with it as it stands.

Mind you, I am buried in doing some other things at the moment, so the 
issue is mostly mute, for right now, but eventually I am going to have 
to either find out "if" the idea of viable or start trying to figure out 
how the heck to code one myself, should I start working on it again in 
the future. lol

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}

<A HREF='http://www.daz3d.com/index.php?refid=16130551'>Get 3D Models,
 
3D Content, and 3D Software at DAZ3D!</A>


Post a reply to this message

From: Christoph Hormann
Subject: Re: Liscense
Date: 14 Dec 2006 03:10:49
Message: <45810709@news.povray.org>
Patrick Elliott schrieb:
> 
> Well, there was some level of confusion at one point when either I or 
> someone else mentioned it. So.. If someone made an ActiveX enabled one, 
> which can run stand alone or as a library, then as long as some method, 
> like I mentioned, is employed to make sure people know its POV-Ray, then 
> that is OK?

The source license is absolutely clear that it is not allowed to link 
POV-Ray (or parts of it) to another program (linking referring to the 
programming meaning of having another program directly call functions 
from the POV-Ray code).  You are free to extend the existing means of 
POV-Ray to communicate with other programs though as long as these 
extensions don't contradict the intent of the license.

> In other words, if it functioned exactly as it does now under Windows, 
> but you could also call it with:
> 
> a = createobject("application.povray")
> b = a.renderwindow
> b.parent = me.frame
> b.render ("myscene.pov")

I don't know the programming language this is written in but it pretty 
much looks like this functionality (i.e. starting a render and 
displaying the results) is supported by existing communication means of 
all official POV-Ray versions.  And if you for some reason don't like 
the existing means of doing this you can modify them to better suit your 
needs (you could for example add a feature to have the render results 
sent via some network protocol *).

I didn't really understand the rest of your posting (the 'sandbox' stuff 
etc.) - it seems to me you are talking about limitations of the POV-Ray 
rendering engine and not about the License.

*) note this is neither a legal advise not an official statement of the 
POV-Team, just my personal interpretation based on the fact that this is 
already possible indirectly via operating system mechanisms or separate 
tools.

-- Christoph


Post a reply to this message

From: Patrick Elliott
Subject: Re: Liscense
Date: 16 Dec 2006 19:36:28
Message: <MPG.1fee3ea6a1c1566a989fc2@news.povray.org>
In article <45810709@news.povray.org>, chr### [at] gmxde says...
> Patrick Elliott schrieb:
> > In other words, if it functioned exactly as it does now under Windows,
 
> > but you could also call it with:
> > 
> > a = createobject("application.povray")
> > b = a.renderwindow
> > b.parent = me.frame
> > b.render ("myscene.pov")
> 
> I don't know the programming language this is written in but it pretty 
> much looks like this functionality (i.e. starting a render and 
> displaying the results) is supported by existing communication means of
 
> all official POV-Ray versions.  And if you for some reason don't like 
> the existing means of doing this you can modify them to better suit your
 
> needs (you could for example add a feature to have the render results 
> sent via some network protocol *).
> 
Well, its not "quite" the same. ActiveX has advantages that static 
methods don't. But, its nice to know this is allowed, though it gets a 
bit more complicated. Technically an ActiveX wraps the whole 
application, not just an extension loaded into it, which is what the 
current system does. Still, its nice to clear up how and if that was 
acceptable. Now, some others may have "intended" something like this, 
but described it wrong, thus creating confusion that led to them being 
told "No, you can't do that." Needless to say, this confused me a bit, 
since I didn't see how a more stable method (at least more stable on 
Windows) was a "bad" thing.

> I didn't really understand the rest of your posting (the 'sandbox' stuff
 
> etc.) - it seems to me you are talking about limitations of the POV-Ray
 
> rendering engine and not about the License.
> 
Well, in some ways it "is" about the license. The license says clearly 
that you can't provide an incomplete and partially functional version. 
This idea is intended to side step that.

Let me explain. A client application I use also uses Lua and a 
"sandbox". This is done to limit and safeguard the machine from code 
that "might" be dangerous. Since the scripts are created by the clients 
users and tied to a set of plugins, someone could add dangerous code to 
a plugin, which the other users would never know about, while thinking 
they got something that provides beneficial features. For example, the 
IO library functions. In Lua you can declare your own functions that 
override the "existing" ones, so the solution to preventing something 
from adding code like this:

io.run "del c:\windows"

is to place, in the "sandbox" a function like:

def function io.run {
}

When anyone tries to execute the io.run function in a script the 
"sandbox" version is called, which doesn't do anything.

Now, the idea for POV-Ray would be a bit different. Lets say I dont' 
want anyone using Isosufaces at all and I want to "restrict" the use of 
reflection with refraction, since those things tend to cause serious lag 
in scene generation. And maybe also limit mesh sizes to reduce render 
times. The sandbox.ini might look like:

[forbid]
isosurface
[limit]
mesh:10000
[restrict]
reflection:ior

When run normally the sandox it ignored entirely. When used from the 
activeX connection it would look at the sandbox and a scene that 
contained these would generate errors and refuse to produce the scene if 
you violated any of those rules. The engine and the normal environment 
would still be 100% functional, but limits could be placed on what could 
be done through the activeX connections.

The reason this is a licensing issue is that it technically allows you 
to provide an partially disabled version, within the limits of how you 
are using it, while *still* providing a complete version, when used as 
though it was just the stand alone version. Think of it like a more 
complex version of the render level commands, which let you decide what 
things the engine should "not" render, when doing test renders. Though, 
I suppose, since that already exists, this is just a more specific form 
of the same thing.

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}

<A HREF='http://www.daz3d.com/index.php?refid=16130551'>Get 3D Models,
 
3D Content, and 3D Software at DAZ3D!</A>


Post a reply to this message

From: Christoph Hormann
Subject: Re: Liscense
Date: 17 Dec 2006 05:25:03
Message: <em35ps$uuv$1@chho.imagico.de>
Patrick Elliott wrote:
>
> Well, its not "quite" the same. ActiveX has advantages that static 
> methods don't.

Well - since you don't give any concrete example here this is difficult 
to comment on.  Note however that apart from license issues any such 
non-portable approach would be

> [...]
> 
> The reason this is a licensing issue is that it technically allows you 
> to provide an partially disabled version, 

No, see 2.2-f of the source license:

"If that directive is not present, the Modified Version must work in the 
same way as the Licensed Version."

Any unofficial version should by default work exactly like the official one.

Now what you described is just an extension of the quality switch in 
POV-Ray.  Nothing prevents you from implementing this *inside POV-Ray* 
(if it is turned off by default).  You can also pre-process a scene with 
a separate program to disable certain parts.   But having an external 
hook to switch POV-Ray into an incompatible, crippled mode would violate 
the above part of the license as well as section 1.6:

"[...] Modification to these APIs or other officially supported 
communication mechanisms (or the addition of any new code or feature) 
for the purpose of avoidance (or to assist others to avoid) the intent 
of this or any other POV license is expressly prohibited."

Once central purpose of the POV-Ray source license is to avoid 
modifications of POV-Ray to impose limits to the users concerning their 
use of POV-Ray.

Christoph

-- 
POV-Ray tutorials, include files, Landscape of the week:
http://www.imagico.de/ (Last updated 15 Oct. 2006)
MegaPOV with mechanics simulation: http://megapov.inetart.net/


Post a reply to this message

From: Patrick Elliott
Subject: Re: Liscense
Date: 17 Dec 2006 21:25:46
Message: <MPG.1fefa9ed1f4a230e989fcb@news.povray.org>
In article <em35ps$uuv$1@chho.imagico.de>, chr### [at] gmxde says...
> Patrick Elliott wrote:
> >
> > Well, its not "quite" the same. ActiveX has advantages that static 
> > methods don't.
> 
> Well - since you don't give any concrete example here this is difficult
 
> to comment on.  Note however that apart from license issues any such 
> non-portable approach would be
> 
> > [...]
> > 
> > The reason this is a licensing issue is that it technically allows you
 
> > to provide an partially disabled version, 
> 
> No, see 2.2-f of the source license:
> 
> "If that directive is not present, the Modified Version must work in the
 
> same way as the Licensed Version."
> 
> Any unofficial version should by default work exactly like the official o
ne.
> 
> Now what you described is just an extension of the quality switch in 
> POV-Ray.  Nothing prevents you from implementing this *inside POV-Ray* 
> (if it is turned off by default).  You can also pre-process a scene with
 
> a separate program to disable certain parts.   But having an external 
> hook to switch POV-Ray into an incompatible, crippled mode would violate
 
> the above part of the license as well as section 1.6:
> 
> "[...] Modification to these APIs or other officially supported 
> communication mechanisms (or the addition of any new code or feature) 
> for the purpose of avoidance (or to assist others to avoid) the intent 
> of this or any other POV license is expressly prohibited."
> 
> Once central purpose of the POV-Ray source license is to avoid 
> modifications of POV-Ray to impose limits to the users concerning their
 
> use of POV-Ray.
> 
Hmm. Well, its a bit of  gray line in this case. The purpose of 
implementing such a limit is to "hopefully" automatically apply limits 
that prevent parse times or render times that would exceed any 
reasonable time limit. If you are looking at a game that incorporates 
this as a rendering system, but you don't *absolutely* need "real time", 
which isn't practical, as in, 30 seconds to "at most" a minute thirty. 
Allowing things that in combination are "certain" to produce longer 
times is not a great idea. Mind you, one could simply leave it entirely 
open and let the scene maker deal with how to decrease the render and 
parse times.

In principle the sandbox is just another ini. Its one "specific" to the 
this implementation as a inlined rendering engine, but not "required" by 
the program in any other context. Ironically, your argument seems to 
imply that adding it as something that works in "all" contexts is more 
acceptable, since it becomes a "rendering setting", than when limited to 
one specific use?

Ok, how about this. Allow the sandbox to act like that, but instead make 
the ActiveX command have two forms:

pov.render ("myscene.ini") - Functions just like the "existing" 
interface.

or

pov.render ("myscene.ini", False) - Functions as above.
pov.render ("myscene.ini", True) - Uses the sandbox limits.

Its just extending the capabilities then, even in the interface, since 
the default behavior is "indistinguishable" from the normal one, right?

****

In principle, one option going to the issue with ActiveX vs. other 
methods, you can do with ActiveX one thing you "can't" with the existing 
method, even if it is platform independent. With ActiveX I could have 
open (presuming I didn't mind the lag and memory issues):

1. Regular copy, rendering a big file.
2. ActiveX instance that is generating an image with low render 
settings.
3. ActiveX instance that is generating a longer render time version of 
2, along with other queued images, with higher quality settings.

and, I don't have the "keep single instance because the program running 
both version 2 and 3 can't tell who they hell they are talking to. I 
understand that "is" an issue with the current system, which is why 
Moray requires you run it only in "single instance" version. There is no 
way for the OS, the program making the calls, etc. to "know" which one 
it is dealing with. ActiveX has one big advantage in that each instance 
is uniquely identified in the OS. And, just to be clear, while this may 
not "technically" be cross platform, there are implementations of things 
like Mono that "are" available under Linux and support the same sort of 
unique identification and instancing systems. While it may have been 
true in the past that there was no "better" option, this isn't exactly 
true now.

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}

<A HREF='http://www.daz3d.com/index.php?refid=16130551'>Get 3D Models,
 
3D Content, and 3D Software at DAZ3D!</A>


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.