clover-moe / mm3d

Maverick Model 3D is a 3D model editor and animator for games.
https://clover.moe/mm3d
GNU General Public License v2.0
118 stars 24 forks source link

Hello/Sorry/Q: Progress from MM3D code? And do you mind if I copy/rewrite to begin other project? #41

Closed m-7761 closed 5 years ago

m-7761 commented 5 years ago

Hey umm, this may sound like a weird question, however, I made plans to maybe use the old MM3D code as a basis to develop a new model software. I'm curious if you mind or recommend using your code to do this instead. Just on the basis that yours (here) may be better, or have bug fixes, and so on.

Background: I have some game software that lacks modeling software that can meet its basic feature set. So I'm in a bind to come up with something. Also I need to be able to recommend something user-friendly. My software is a game-maker originally made by a Japanese company called From Software. We really need support for morph-target animation. It was designed to work with Microsoft's X format, but really it was developed for PlayStation formats.

I am also trying to bring COLLADA back to life. At the same time. Because I don't want to invent any new 3D formats. That's kind of the problem. I'm just trying to locate the best open-source code bases and Frankenstein something together, that I want to offer up as a serious alternative to Blender. The software will use COLLADA native, and it is called Daedalus based on its DAE file extension. I've rewritten the original COLLADA-DOM project. It's really a big project. Low-poly/open-source/morph-target software is really hard to come by right now.

I just came across your Maverick editor. I am just looking for a scaffolding to start my own work from. So I can work unencumbered. I've also rewritten the Assimp code base and am planning to use it as a fast import/export layer. I've modified it so its very flexible and easy to program loaders for, because I want to encourage converting everything into COLLADA more or less, for archival purposes, including old proprietary formats that might only be used by one or two games or other kinds of software. I'm trying to encourage/embolden a healthier noncommercial ecosystem. Even if COLLADA is not perfect now, it is a reasonable place to start.

zturtleman commented 5 years ago

As long as you follow the GPLv2 license you are free to use the code. Yes, Maverick has some bug fixes for issues in Misfit Model 3D.

m-7761 commented 5 years ago

You don't seem too talkative? Here is the contents of the letter I received from kworces (Misfit author) below:

"I am not a lawyer, so I'd suggest you read the preamble to the GPL. It is a mostly plain-English explanation. If you're re-using any code from Misfit Model 3D, even in a modified form, the GPL applies.

In retrospect I might have chosen a different license. However, I accepted patches from others under the terms of the GPL and I have no means of contact for some of those individuals now. So even if I wanted to re-release it under another license, I could not do so."

I don't know anything about licensing. And I'm fine with extending any benefits of GNU licenses that overlap with public-domain code. I just don't know what it means in terms of restricting use of code. I don't believe licenses apply to thoroughly rewritten code. But perhaps people think it does. Kworces seems to think so. But I don't know how you make the distinction other than on the author's word.

My code will not be copy-protected in any form, because I can't afford to hire lawyers, and I don't care what anyone does with my code. As I understand GNU licenses they are anti-competitive. That's why "MIT" and so on exist; if I'm not mistaken.

If you're interested we could try to find ways to collaborate? I am usually unhappy with coding style, but MM3D's style is fine (easy to read) to me. I am interested in switching it over to wxWidgets to begin, and CMake I think. If that sounds like an improvement to you, I can contribute that code, if it doesn't get in the way. I usually don't do open-source collaboration because it's so unproductive. If we can collaborate at faster than a (dead) snail's pace, I can provide some value, and we can talk about abstracting parts of the code to see if collaboration can somehow continue after. It's just an offer.

m-7761 commented 5 years ago

FWIW here is what your program's Help->License has to say:

  1. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

I think this is straightforwardly blessing any scenario where the program is used as a study for another program. The license seems to endorse this. It's just up to the author(s) however that is defined by the project owner(s). I don't see the point in gradually straight-jacketing source code this way. I think it runs counter to the objectives of free-software in the current environment.

zturtleman commented 5 years ago

If you modify the code it's a derivative work and must still be licensed under the GPL. Reformatting the code or rewriting it in a different language doesn't change that it's a derivative work. The only way to get rid of the GPL license is to remove all the GPL covered code and write new code not based on existing GPL code. Which is to say you must write a completely new 3D model editor from scratch on your own.

If you study a GPL program to make another program, it becomes a derivative work of the first and must be licensed under the GPL.

GPLv2 overview: https://choosealicense.com/licenses/gpl-2.0/ GPLv2 FAQ: https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.en.html

I'm not interested in switching from Qt 5 to wxWidgets or maintaining a separate wxWidgets GUI. CMake support could be added. I don't have a computer right now so my collaboration ability is limited. I'm not looking to do a lot of work on Maverick this year. My general plan for Maverick is fixing bugs, adding support for a few model formats, and providing releases compatible with current operating systems.

m-7761 commented 5 years ago

Thank you. Excuse me while I rewrite this:

Does GPL2 just effectively boil down to must put a copy of its text somewhere? And it means derivative code has to remain open-source? That's it?

(I'm only going to use the code--if I do at all--as a scaffolding, because it makes work move faster than starting with a blank slate.)

zturtleman commented 5 years ago

Yeah, include the GPL license in downloads and provide exact source code to anyone with the released binary (or just make the code public on Github or something and tag releases).