Open Source Plugin Projects


#1

Here’s a little thought for all the coders who frequent this forum, and that’s been bubbling around at the back of my mind for a little while.

With Cinema there are a number of plugins that should be there, but simply aren’t, because maybe they’re things that you can’t sell, or would take too much effort to make for free (but wouldn’t sell enough to make it worthwhile if they weren’t free) etc, but would still be incredibly useful to have.

So, why don’t we opensource them and run the project via this board?

Here are two prospective opensource plugin project suggestions:

  1. MA (Maya Ascii) Import/Export
  2. Integrated web browser (e.g. taking mozilla and trying to integrate that).

#2

i am no coder. but i think that this is a brilliant idea!

cheers
marcom


#3

No code here–but this would be great! A browser ala XSI would work well with the reference image manager idea I had posted a few weeks ago.


#4

Coder here. :wink:

Definitely an excellent idea there.

What would be the criteria? Open to XPresso, COFFEE, and C++ or just stick to C++? Windows only or cross-platform? I, of course, opt for the latter. Is this going to be done under a GPL, from SourceForge (for version tracking, etc.)? Just throwing out some queries to get an idea of what your conception is and get you thinking. :slight_smile:

Not that I could participate any time soon. My current plugin project basically precludes any form of extra-curricular activity. When I’m not developing, I’m sleeping, eating, or taking care of all other mundane tasks.


#5

Project A, first priority, job 1, before all, list-topper…an open-source cooperative effort to get that d*mn monkey into the app, that monkey we’ve been promised since before v8 but which has never been delivered!


#6

What monkey?


#7

You mean to say you didnt get your monkey?


#8

This seems more like something that the OEM should support in their product rather than a third-party, open source add-on. It might be a good stopgap measure, but wouldn’t it de-motivate Maxon from ultimately ensuring a supported version in the product? (Sort of the same way that Riptide seems to have eliminated desire for more sophisticated .obj support.)

In principle, I’d take the support wherever I could get it, but I think studio pipelines would expected a supported version from Maxon. (That way SDK revs or Product revs wouldn’t necessarily limit or reduce functionality.)

Now if Maxon was willing to absorb open-source developed solutions into future revs (something like what mySQL AB does with developed features) and ultimately make them a supported part of the code-base that would be a different story.

Perhaps we should lobby Maxon first to endorse these open-source projects?

just thinking aloud here–shoot when ready

-K


#9

well… maxon offer a pretty superb sdk/api, and great support for that, i don’t think they’re going to say “hey guys, nooo, you mustn’t add new features!” :smiley:

on the aspect of impetus for them to do their own versions, well to be honest, i think it comes down to time and value. to maxon i just don’t see these things as being priorities, nor adding massively to the sales of cinema itself, though they would take quite a while to code.

i think that a cumulative community effort has the potential to be updated more frequently than maxon could/would update.

after all these are the sorts of things that if maxon had wanted to do they would have done by now. but if they do still want to do them, then the fact that there is a plugin there isn’t going to stop them (it’s never stopped them in the past).


#10

Kuryoyume0161 - I think we’d have to find out who was up for it first. importaers/exporters can be made in COFFEE, the nice thing there is that you don’t need a compiler to make that happen. But other stuff, e.g. the browser would definitely be a C++ sort of project.

The C4D api is a very cross platform api, we can get a hook into the windows via GeDialog and CDialog, i’m not sure how cross platform the code behind a browser like mozilla is, and how feasible it would be to bring that into cinema, or if it would be more sensible to just offer a window into any browser of the users choice, a sort of wrapper inside of cinema, similar to XSI.


#11

On a side note, I’m about 2 weeks into a 6 week C++ course
I’m still covering much of the basics along with some trial and error experiments.
How much experience would a guy require for compiling C4D plugins?


#12

exelent idea, sooo… when we start? =)


#13

ThePriest - virtually none, you just need the compiler (either VC++ on Windows or Codewarrior on the Mac), simply open the project file and hit compile.

]angelus[ - whenever we want to really. the first thing will be deciding what to use (COFFEE/C++) and who wants to do what, the second thing will be making a basic framework with seperate files for each class/function so people can edit each bit. e.g. an importer/exporter will require a main file, the importer class, a parsing system, possibly a parsing library system (so it’s easy to add definitions of different commands, and then choose what to do with it) etc. so all of that has to be sorted out, probably in seperate threads here, one per opensource project would seem sensible.


#14

I’d be very interested in the idea of the project and helping. I have some c++ experience… I have years of programming experience, most of it just isn’t in the c++ realm. But I’m learning coffee pretty quickly and would love to help out on a big project.

I think MA import/export would be a good thing to have in Cinema. I’m not so sure about the integrated web browser… I don’t see the benefit of having it in there, and I think trying to integrate mozilla would be a nightmare. The codebase for that thing is just beyond enormous.

Speaking of integrating existing projects, though… Anyone ever heard of the Open Dynamics Engine? From their website: “ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API. It has advanced joint types and integrated collision detection with friction. ODE is useful for simulating vehicles, objects in virtual reality environments and virtual creatures. It is currently used in many computer games, 3D authoring tools and simulation tools.”[font=Verdana] And right below that on their website, they let us know: “[/font][font=Verdana]SoftImage XSI 4.0 ships with ODE” which I guess is possible because the ODE is under the BSD license. I know, sorry for all the acronyms. :slight_smile: But I also know a lot of people have expressed a desire for a better dynamics engine in c4d… however, integrating any existing package would require fairly strong c++ people, I do believe. I don’t know anything more about ODE than this, but it sounds a bit intriguing, to say the least.

People like myself with some (and not extensive) experience in programming would probably be better suited towards import/export stuff, I would think. Which leads me to the other idea I’d been kicking around but would probably be too time consuming for me to write… Anybody ever hear of Yafray? It’s an open source (LGPL) raytracer with quite a few features including DOF, caustics, HDRI, GI, multithreaded and distributed rendering… I wouldn’t say it’s “better than AR 2.5” – but it certainly could bear some consideration. It might be a nice alternative. It’s free, runs on Linux, OS X and Windows. The file format is currently XML, which like the MA format (maya ascii) probably wouldn’t be “difficult” as much as “time consuming” – but when you throw a lot of people at something that’s time consuming but not particularly difficult, you can get some nice results. Maybe a starting place for Yafray export would be getting the file format down… maybe some of the more advanced c++ people could look into further c4d integration.

But hey, I'll help how I can with what I can.      

[/font]


#15

Yes, of course. And of course on the other two points. :slight_smile:

The C4D api is a very cross platform api, we can get a hook into the windows via GeDialog and CDialog, i’m not sure how cross platform the code behind a browser like mozilla is, and how feasible it would be to bring that into cinema, or if it would be more sensible to just offer a window into any browser of the users choice, a sort of wrapper inside of cinema, similar to XSI.

Oh, I agree. The hardest part of porting interPoser to MacOS was Mac Resources used by Poser files, otherwise nearly all of the Cinema SDK facilities remained unchanged. I agree that bringing something like Mozilla into Cinema would be difficult.


#16

Yes, I’ve heard of it. Actually, I have version 0.5 sitting here on my computer. It was an idea for a backup solution to Poser joints and IK in Cinema (not really looking at the ‘Dynamics’ part of it) ;). If it is anywhere near or better than Cinema 4D’s dynamics, this is good candidate for an alternative!


#17

One more thing to add:

I have this COFFEE plugin called ‘Drop It!’ which is used to drop objects along the Y-axis either to the ‘ground’ or onto other target objects. Very basic design and has some flubs due to COFFEE (6.3) limitations when using procedural objects.

Three things would be great for this plugin -

  1. Porting to C++ so that these flubs are removed.

  2. People have been pleading for a way to drop a selection of objects individually (currently, it does all together for calculations) onto a target object. My C++ plugins have occupied all my time, so no plans in the near future to pursue this.

  3. Maybe some added functionality, such as drop in a particular axial direction, angularly, or radially.

It is a free plugin, but I only distribute a compiled COFFEE plugin. If at any time this open source project takes flight, I’d be willing to offer the source up to the project for expansion.


#18

I don’t qualify as a coder, but I think Maya file import would be really great.

Super community effort!!!:beer:


#19

No coding for me, but why don’t you guys code a VRay connection? :ducks for cover:


#20

That would be great indeed.

Peace,
Rich-Art. :thumbsup: