Where to start with BIG projects?


#21

If you check out Verse, you might also want to play around with his Sub-D modeling program, Loq Airou, which uses the Verse protocol(You need SDL to run it).
It’s fairly buggy, but it runs, and has the same ideas you have in terms of gui design in that there are no floating panels. Its just a canvas with pop up menus. Very minimalist. Very trippy.


#22

No body can force you to, GPL the thing ( though if you go with the BSD licensing scheme, your app can be open source and then later on you can change it to a commercial one or something like that) However it has always been my dream to have a fully professional “maya-like” 3d app come out of the GNU/GPL free for all users without restrictions or stunted functionality ( PLE and EXP). This to me is the future of 3d. If companies out there like discreet and alias keep taking out marginal upgrades with tacked on plugins, then the 3d community along with the gnu community will have to take charge.

I’m not advocating GPL, or trying to force you to make this an open source project. However the open source community can really help you in your cause and it is only fair if you are going to use open source software to develope you app.

Now let me explain what i mean by maya like. I don’t mean a maya clone what I mean is a robust professional 3d program that can actually be used in production. Something that can be used to make the matrix or lord of the rings with results.

Oh and when you start the particle and dynamics system call me I have some ideas.


#23

Originally posted by Apoclypse
No body can force you to, GPL the thing ( though if you go with the BSD licensing scheme, your app can be open source and then later on you can change it to a commercial one or something like that) However it has always been my dream to have a fully professional “maya-like” 3d app come out of the GNU/GPL free for all users without restrictions or stunted functionality ( PLE and EXP). This to me is the future of 3d. If companies out there like discreet and alias keep taking out marginal upgrades with tacked on plugins, then the 3d community along with the gnu community will have to take charge.

Yep, this is exactly what I intend on doing. Oasis Animator is going to be a free (most likely GPL or something like that) 3D Animation program for professional use. The part that I mentioned about some day selling the software is based on the idea I have to make an Oasis “Complete” version much latter in it’s life. As stated before, Oasis Animator will have no modeler but instead rely on the Obj and Lwo model formats and, it will have no built in renderer but instead rely on the renderman standard (of which there are already 4 free ones) renderers as well as some other potentials. This is actually more of a professional approach to production since most effects and animation studios take a pipeline approach to projects where data is pushed through custom and off the shelf software and usually ends up in PRRenderMan in the end anyway.
The “Complete” version will most likely have
-A modeler based on some wacky ideas I have about SubD’s and spline modelers (That’s all I can say for now). Major highbred.

  • A huge, very high quality renderer that’s optimized for film production.
    -A rewritten optimized core. This is because you can expect the first version of Oasis to be a bit clunky. But, by the time I’m ready to make “Complete”, I’ll hopfully have learned a thing or two. :wink:
    By the way, you mentioned taking on plugins for releases. Well, that’s exactly what Oasis will be doing. You see, Oasis is just the core application. Just about all of the major features are going to be built into plugin DLLs/SOs called Nodes. Hope that doesn’t piss anyone off or make them feel like they are being cheated. The upside to this is that it makes Oasis much more open to custom development. You’ll be able to modify, creat or simply customize features to you hearts content.

I’m not advocating GPL, or trying to force you to make this an open source project. However the open source community can really help you in your cause and it is only fair if you are going to use open source software to develope you app.

Yep, and that’s exactly the reason I’m having trouble deciding.

Now let me explain what i mean by maya like. I don’t mean a maya clone what I mean is a robust professional 3d program that can actually be used in production. Something that can be used to make the matrix or lord of the rings with results.
Heay, you read my mind… Or posts. :wink:

Oh and when you start the particle and dynamics system call me I have some ideas.
I believe (and correct me if I’m wrong) that Oasis will be the first 3D animation program to have real-time dynamics and collision detection. The will be active during animation so as your animating you can push objects around or they can push you character around and stuff like that. It’s going to be really cool and pretty easy to program because it just uses simple game engine type collision detection. This is going to be one of the main features and I believe that if I do it right, you’ll see it in other 3D programs as well. But yeah, I’ll contact you when I start.

Thanks for the comments and suggestions! Keep them coming,

-=GB=-


Galen Beals,
Animator/Technical Director,
Bent Image Lab


#24

Dude, if you can make it work on a Mac OSX I am happy … ^v^ :D:beer: :beer: :beer:


#25

Yes. A good friend who is an excellent programmer has already offered to do the porting. So, yes there will definitely be an OSX version. And, even if that doesn’t work out for whatever reason, I plan on using a cross platform library that supports OSX.

-=GB=-


#26

Originally posted by ngrava
[B]Yes. A good friend who is an excellent programmer has already offered to do the porting. So, yes there will definitely be an OSX version. And, even if that doesn’t work out for whatever reason, I plan on using a cross platform library that supports OSX.

-=GB=- [/B]

Sweet ! Can’t wait … ^v^


#27

I would have liked this to be Linux only ( linux needs more software, well not really but it needs more software that works) But I guess being open to more platforms will make your app more viable.


#28

If you could please post the references that you are using I can better understand what you are doing. In other words what books and sites are you using and where can I find them. This is a subject I’m very interested in so expect me to post here frequently.

I will keep this thread alive.


#29

OK, here’s a sampling of the information that I’ve been culling from the net.

I’ve found that a lot of the game development sites seem to have a lot of really great tutorials and code chunks that have been
increadibly helpful. The funny thing is, a lot of this stuff is more relevent to an animation program. :wink:



http://www.flipcode.com
http://www.gametutorials.com/

http://panoramix.ift.uni.wroc.pl/~maq/eng/index.php
http://www.brockeng.com/VMech/IK/IKSG.htm
http://freespace.virgin.net/hugo.elias/models/m_main.htm
http://www.darwin3d.com./gdm1998.htm#3DIKSTUFF

I’ll post some more latter

-=GB=-


#30

Thanks man, what about books?


#31

Here’s how I started a big 3D project …

“Put one foot in front of the other … and soon you’ll be walking out the doooooo ooo oor.”

I’ve got a very large and very contemporary 3D API that includes both a user interface sufficient to eliciting any typicial inputs from a 3D user and a very good API for manipulating a subclass of 3D objects … that are Manifolds. I mean … it’s like Nendo and Wings3D … but written in Java.

Go to www.ggaliens.com and follow the links. I need a partner on this project, someone to eventually succeed me as thae care-taker.

I’m suprised that no programmers have jumped in to stake a claim. It’s a very RICH API. And the program does some very cool things.

There is also a forum that I have paid for.

Download the code and have a look around and ask me questions.


#32

Ok, I was thinking about the whole idea of a bi-directional hierarchy. I’ve been looking at all sorts of different IK algorithms and none of them really support this idea. In fact, most of them are very hierarchy dependent. Then I came across something interesting. Spring systems. The idea is that you use particles connected by rods that can be ridged or flexible (the rods could even be splines!). The particles are the nodes at the joints and have physical properties. So essentially, when you grab a node you use a dynamic simulation to pull the other nodes around with it creating an IK like effect. Springs can be pretty uncontrollable so there’s going to have to be some very explicit constrains involved but I think it’s a very workable solution that offers some new things that regular IK doesn’t. For instance, skeletons constructed of springs have built in dynamics, motion can be dynamically distributed along a chain to the rest of the skeleton to simulate secondary motion, chains could be made to stretch without to much effort, and nodes can more easily be “pinned/un-pinned” or constrained over time. All, in all it looks like a very interesting solution. Best of all, it works really well into this whole idea I have about real-time collision detection and dynamics that are active while your animating.

The issue I have at the moment is figuring out how to transform a mesh based on the positions of the nodes.

What do you guys think of this? Any foreseeable issues?

-=GB=-

P.S. markyjerky, I downloaded the project files. It does look very interesting. Unfortunatly, I ruled out Java a while ago. Thanks for the heads up though.


#33

Originally posted by ngrava
[B]Ok, I was thinking about the whole idea of a bi-directional hierarchy. I’ve been looking at all sorts of different IK algorithms and none of them really support this idea. In fact, most of them are very hierarchy dependent. Then I came across something interesting. Spring systems. The idea is that you use particles connected by rods that can be ridged or flexible (the rods could even be splines!). The particles are the nodes at the joints and have physical properties. So essentially, when you grab a node you use a dynamic simulation to pull the other nodes around with it creating an IK like effect. Springs can be pretty uncontrollable so there’s going to have to be some very explicit constrains involved but I think it’s a very workable solution that offers some new things that regular IK doesn’t. For instance, skeletons constructed of springs have built in dynamics, motion can be dynamically distributed along a chain to the rest of the skeleton to simulate secondary motion, chains could be made to stretch without to much effort, and nodes can more easily be “pinned/un-pinned” or constrained over time. All, in all it looks like a very interesting solution. Best of all, it works really well into this whole idea I have about real-time collision detection and dynamics that are active while your animating.

The issue I have at the moment is figuring out how to transform a mesh based on the positions of the nodes.

What do you guys think of this? Any foreseeable issues?

-=GB=-

P.S. markyjerky, I downloaded the project files. It does look very interesting. Unfortunatly, I ruled out Java a while ago. Thanks for the heads up though. [/B]

ANYTHING I mean ANYTHING dynamic and new for IK chains is a welcome change. Just pull the hand and the entire body gets pulled would be soooo nice !

Please release test builds as soon as you can .


#34

Originally posted by markyjerky
[B]Here’s how I started a big 3D project …

“Put one foot in front of the other … and soon you’ll be walking out the doooooo ooo oor.”

I’ve got a very large and very contemporary 3D API that includes both a user interface sufficient to eliciting any typicial inputs from a 3D user and a very good API for manipulating a subclass of 3D objects … that are Manifolds. I mean … it’s like Nendo and Wings3D … but written in Java.

Go to www.ggaliens.com and follow the links. I need a partner on this project, someone to eventually succeed me as thae care-taker.

I’m suprised that no programmers have jumped in to stake a claim. It’s a very RICH API. And the program does some very cool things.

There is also a forum that I have paid for.

Download the code and have a look around and ask me questions. [/B]

And markyjerky the ONLY problem with nobody helping you with your stuff is because of your site. It looks to much like you did not put effort into it. That is all. I will gladly test it though and report back, but java is eeeeeeeviiiil

:stuck_out_tongue:


#35

Well … if Java is evil , doesn’t that …

Rule you out ?

I’ve been programming in many computer languages since 1980. That’s a long time. I was not child programmer. I’m 38 years old.
I won’t sugar coat stuff and try to toe a political line(s). I just tell it like it is … as I’ve seen it. Java is not so great in its fundementals … that’s not what it’s about … it’s about the Java tools as much as the language itself. C++ if fine by me too. I prototyped this app in C++ and then moved it to Java for portablity.

PCs are just too darn fast these days to be quibbling about anything less than an order of magnitude of performance difference between languages. Why ? Because the order of magnitude speed ups can be plucked like fruit from a tree in the realm of the virtual machine … (and I don’t mean JVM) … I mean just in the software algorithms. They are not all written yet.

Java is PLENTY FAST ENOUGH for 3D.

If you guys need help … let me know. Anc stop squabbling about what tools to use … just get friggin’ busy.

If anyone wants to help my pretty up my site … that’s a possibility too.

Good luck with you projects.


#36

Originally posted by markyjerky
[B] I’ve been programming in many computer languages since 1980. That’s a long time. I was not child programmer. I’m 38 years old.[/I]
well, I’m 35. I haven’t been programming that long at all. Started in 95 with C as a hobby and it’s grown since then. Mainly LightWave’s LScript and Python lately but I’m using C++ for Oasis. I’ve had to crack open a all the C++ books I had just to get started. :wink:

[i] PCs are just too darn fast these days to be quibbling about anything less than an order of magnitude of performance difference between languages. Why ? Because the order of magnitude speed ups can be plucked like fruit from a tree in the realm of the virtual machine … (and I don’t mean JVM) … I mean just in the software algorithms. They are not all written yet.

Java is PLENTY FAST ENOUGH for 3D.[/i]

Easy there… To tell you the honest truth, and I’m not trying to be offencive here but, I’ve never seen Java be plenty fast enough for 3D. All the examples I’ve seen have been very weak. Maybe you’re right though that it’s got more to do with the algorithms used then the language.

To me, as far as speed is concerned, PC’s are still not fast enough for what I want to do. I should point out that this is comming from a production oriented perspective where you have to through in everything you can to get the job done and still get more work afterwords. I want to be able to use Global Illumination, hyper-textures, high Stochastic sampling for Motion blur, depth of field, and anti-aliasing, real-time physics, collision detection etc, etc. I’ve been working in CG since 93 (as a professional animator and TD) and I’ve always had to settle for “Just OK”. Maybe my standards are set to high but I feel like it’s time to move forward and push the technology to the next level. I can totally understand wanting to use Java. I don’t have any problem with Java. It’s just that I need every little ounce of power I can get my hands on. One of the reasons for this is that I don’t have time to try out every algorithm in the book. Using C++ will allow me a little slop when I neeed it.

If you guys need help … let me know. Anc stop squabbling about what tools to use … just get friggin’ busy.

I am busy and I do need help. Here are some things I’d like to know:

  • Do you see any issues with the spring system mentioned above?

  • I’m trying to roll my own widgets and GUI in OpenGL. Any advice/ideas on how to do this effectively would be great.

  • I need a good hit test algorithm for selection that has to run all the time. The UI is going to be very dynamic and highlight just about everything under the mouse. I tried the stencil buffer trick but it had issues with the way I’m drawing a perspective window and then a ortho view over the top of that. I’d like to use a ray-caster but I can’t seem to find any info on building one. Any help would be greatly appreciated !

Thanks!

-=GB=-


#37

Originally posted by markyjerky
Java is PLENTY FAST ENOUGH for 3D.

I also took my first programming steps in 1980 but a lot has changed since then. Enough has changed that there’s hardly any parallel anymore given the overall increased complexity of software development.

If you’re saying that managed code (either based on a VM or a CLR) can run just as fast, or faster, than lower level C++ code you’re right… but it depends on the assumption of how well or how bad the lower level unmanaged code was crafted. Managed code can outperform badly written unmanaged code quite easily. But whether Java is fast enough for 3D is different yet again and seems universally not accepted as such when looking at how many commercial and how many in-house projects at various places do not make use of Java. There has been a substantial amount of interest in various aspects of 3D development using managed code but Java has clearly not been considered as an option.

I’m just telling it like it is… other than you I’ve seen nobody put Java to any practical use (yet). The conclusion that remains is that those doing development are not considering it as a viable technology at this time.


#38

ngrava:

just wondering which libraries do you use? opengl + ?. GLUT? GLT? CPW?

or just do you program just for windows?

I’m also at the beginning of my project and I’m not sure yet what do use.


#39

Originally posted by iC4-
[B]ngrava:

just wondering which libraries do you use? opengl + ?. GLUT? GLT? CPW?

or just do you program just for windows?

I’m also at the beginning of my project and I’m not sure yet what do use. [/B]

I’m just using windows API right now. I’ll probably switch to GLUT eventually (or a C++ derivative) when I have some time to learn that. Since I’m making my own GUI in GL I don’t need to worry as much about the cross platform issues just yet.

I was up in arms about where to start about two weeks ago. FLTK, wxWindows, others? I didn’t know what to do. Then a friend (who will be doing the Mac port by the way) just laid it out for me a said, “You just need to get a GL window up and loading geometry in it for now.” That’s absolutely right. I just need to get started and quit deliberating. On top of that I realized that I’m not going to be needing any of the UI elements like Dialog Boxes and widgets that a kit would provide so the rest is all about event handling and file IO. Those issues can be dealt with a bit latter. For now, I’m just using the win API to build a window and the rest (so far) is all GL.

This isn’t going to make things easer in the least bit. I have several daunting tasks ahead of me. I just need to stay focused and break everything down into manageable parts.

I’m not sure if that helps you at all but that’s what I’ve been up to. :wink:

Good luck,

-=GB=-


#40

I know you are set on doing the GUI in OpenGL, but I really don’t see it as a viable solution. What Happens to those user ( since your software will be free this will be more than likeley) who don’t happen to have a graphics card or are using an old ATI Rage Pro for their graphics card ( which if I’m not mistaken only does DirectX) how will they be able to use the program. Performance on these machines will probably already be slow, so having the gui ( which in this case will be handled through the software) will be way too slow.

You have to realize that when a program like yours is free odds are there is some guy with a 233 mhz computer and a 6 gig hardrive who wants to run your program becuase it is in his price range ( free).