I would like to create a plugin, let's call it 'A' for Blender 3D and a software let's call it 'B' that communicates with plugin A through the network.

I know that Blender 3D has GPL license for the plugins, so the plugin 'A' MUST BE GPL license. (see this site https://www.blender.org/about/license/ )

The software 'B' does not use any GPL code from Blender, or connecting to any lib from Blender, dynamic or static. Only process the data from the message from plugin A.

For example, I want plugin A to read the scene information and send to software B in a text format through the network. Then the software B will process the data got from the network and send it back to plugin A.

The QUESTION: Is the software B affected from GPL license? I know that the plugin A has to be in GPL license. But the software B can be any license????

I raise here the question because I asked the legal team, and they are scared when they hear a GPL software! Or Am I missing something here?

  • 1
    It depends on what 'communicates with' means on a technical level. What you write reads to me like you write a plugin for a plugin with the intention to circumvent the GPL requirement for Blender plugins. Dec 1, 2022 at 23:37

1 Answer 1


A closed source proprietary software can communicate with a GPL'd software via inter-process communication, including network communication over TCP/IP, without being subject to the terms of the GPL, if it's not exchanging intimate internal data structures that is found in the source code of the GPL'd software.

In this case, the closed source proprietary software is a mere aggregate and not a derivative of the GPL'd software.

From the GPL FAQ:

What is the difference between an “aggregate” and other kinds of “modified versions”?

An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are nonfree or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

  • I'm not at all sure that correctly describes this plugin, from the descriptions given above.
    – MadHatter
    Dec 2, 2022 at 13:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.