Where to start with BIG projects?


#81

I got a mail the other day but was not able to reply due to some silly limit so I’m just doing it here in the hopes that Eliot sees it.

emack wrote on 01-16-2004 07:05 PM:
You might want to email Ton Roosendal about the upcoming Blender 3.0 project . . . there is probably a lot of overlap and you might find lots in common as well as people to help. Here’s the link about their 2004 plans.

Eliot

http://www.blender.org/modules.php?op=modload&name=News&file=article&sid=105&mode=thread&order=0&thold=0

Hey! Sorry about not getting back to you in a timely manner. I just discovered the cgtalk mail. :slight_smile: Thanks for that link. I’ll do some research.

From looking at past versions of Blender I have to say, that’s exactly why I want to make a 3D program. If you ask me (and I realize that this is just ‘my opinion’ and that most people who use it are happy with it) Blender has many great features… Excellent features even, trapped under one of the worst interfaces I’m had the misfortune of using (sorry). Just simple navigation can be painful for me. So, this is exactly why I want to make Oasis. To me, the interface of human and computer needs some polishing up and much more thought put into how people or animators in this case, interact with digital characters.

To me, all of the great technologies for 3D animation have just about been created. But they just need to be combined in the right way. Thus Oasis will be a merging of technologies that would otherwise exists in separate places. For example, I have an idea that I’ve been working on called the “Physical Animation Environment”. It’s really quite simple, as an animator drags objects around on the set, they’ll calculate for collision detection in real-time (or as close to it as possible). When something collides, it can either push that thing around or be stopped dead. Feet won’t dip into the floor because Oasis sees this as an actual physical object. Characters can’t put they’re hands through they’re faces and so on. The math behind this is simple game physics. Very well documented and many of the problems already worked out. The Skeletal system is based on a “Interconnected Masses” system which is very similar to a spring system in that it uses particles with mass and velocity and so on. They will pull each other around very easily. This makes a very cool dynamic IK-like system that doesn’t have the overhead of angle calculation. Just vectors. Plus, you can grab and pull from either end of the chain. It’s really cool and lots of fun. Again, this is simple math but has yet to be used like this. At least as far as I’ve seen. :wink:

Now, there’s nothing new about computer simulation at all. In fact, what I’m currently using is quite rudimentary. But, it’s never been used in quite the same way as this. So, it’s going to be more about the interface and ease of use then the actual hard core algorithms. I know that seems contrary to how most programmers think but I feel it’s a fresh look at the issues that currently exists.

Thanks again,

-=GB=-


#82

all of it sounds great, just keep us up to date and post some movs and screenshots when you can :smiley: ^v^


#83

I was just wondering how all of this was going - have you made any progress on it?

Would love to get an update…


#84

if i were you, i’d license proven, open-source implementations for your scene graph, rendering, interface, etc. i wouldn’t waste time trying to re-invent the wheel. i have a lot of experience doing this sort of thing and it’s nearly always better than trying to design something that’s outside your specialty. for example try openscenegraph.org for your scene graph. (i am not associated with them in any way.)


#85

Hi Folks,

Just a little update. Oasis has been sitting on the back burner for about a year now but I haven’t given up on it at all. In fact, recently I’ve been looking at some interesting developments with Python. Have any of you seen Psycho? I’ve been running little tests and it seems to work really well. If all works out I could be picking up Oasis Development pretty soon.

About Open scene graph: Yes! This is an excellent suggestion and exactly the direction I’ve been headed. Actually, what you’re suggesting is exactly the reason I decided the start working on Oasis. It’s funny because I find that the hardest thing is downloading all the different options and testing them out. I have a lot of junk on my hard drive now. :wink:

-=GB=-


#86

Woah! I’d forgotten all about this!

Glad to hear it’s still moving - looking forward to more updates…


#87

If you’re going to embark on a large dev project then regardless of what it is I would recommend you use some kind of source code control system (SCCS). If you’re using Visual Studio then you could use Visual Source Safe if you’re really desperate. My first choice would be Perforce. You can actually download a feature complete, two user licence, version of Perforce for free. Perforce is by far the best SCCS system I’ve used.Just my 2p / 2c (delete as applicable) worth.


#88

Yeah, I’ve looked into this before. I use Komodo for my Python stuff and it supports CVS, Perforce and Subversion. I have to confess that I’ve never used any kind of source control before so I don’t have any idea how to go about setting that up at the moment. I’ll probably get to that a bit latter when I actually have some stuff that needs tracking in that capacity. Thanks for the tip though. :slight_smile:

-=GB=-


#89

Using an SCCS is not just for volume, I use it on relatively small bits of code (circa a few 100 to a few 1000 lines), it just lets you “roll back” bad engineering decisions and also lets you annotate the reasons for your changes. So even in a single user environment its a good idea. Heck, I throw my Maya models into my local Perforce DB (saves having all those Foo00027.mb on disk). Wouldn’t it be ace if Avid did a reasonably priced 1 or 2 user max version of Alienbrain.

No disrespect to your project, but what I’d love to see rather than another modeller is a decent Open Source SCCS/asset management system aimed at the DCC market specifically. There’s a lot of creative development talent out there and speaking personally I kind of feel that between Maya, ZBrush and Modo modelling is fast approaching the status of “solved problem” (unless or until someone implements the mythical “artistic talent” button). There are other parts of the creation pipeline that could do with some serious lovin’ up in terms of attention from the dev community.


#90

Yep, I’ll have to look further into SCCS. I’m sure there will come a time very soon that I’ll need to use it. Right now, I’m still experimenting and planing. But your point is well taken about the versioning aspects of it. I can definitely see that becoming very useful.

I should mention that this project isn’t actually a modeler. In fact, that’s exactly what it won’t be for. There are a number of really great free or very cheap modeling and rendering tools out there but nothing really for animation. I’m not talking about just moving one object from point a to point b. I’m talking about a complete and extensible architecture for character animation from rigging on down to point level animation.

Two things got me onto this: 1.) A total lack of good, free, 3d animation tools under Linux and 2.) the availability of relatively fast, pre-made librarys for doing a lot of this in the form of game API’s and scene graphs. Basically, I’ve been seeing a lot of free game API’s become more and more sophisticated over the years. To a point where I’m seeing an overlap into Highend 3D graphics use. Using Game libs and other readily available tools, programmers can implement things like real-time physics, mesh deformation, skeletal motion, IK, etc., etc. into a real-time animation environment without having to write that code themselves. This is basically what I’m up to. If you look back to the first few pages, you can read more about it.

It’s a pretty huge task at the moment but I have some ideas about how to make it so insanely cool that someone just needs to do it.

-=GB=-


#91

GB,

excellent work so far-- I just read every post.

I love the UI still-- it looks fantastic.

I agree that there is a real need for a great free 3d animation program under Linux, and I believe the same is true for compositing and editing. Once you have Oasis to the .9 stages, it may be interesting to take your UI core and adapt it to an editor and compositor. Perhaps include the same particle system from Oasis into the 3d compositing module, possibly integrate Cinepaint as a paint module (modified for 3d), and add an editing module (timeline and tools plus access to compositing effects). The whole app could run in OpenGL. Many of the processors are built-out already as source-code at sourceforge, like the motion-tracker and such.


#92

Hey cool! Thanks! I hadn’t thought about video editing. That’s a funny one though. Lot’s of device control crap that I know nothing about. Not to mention all the fireWire communication stuff… I’ll let someone else write that. :smiley: Ok, It’s actually really great that you bring this up because this is just the sort of thing I need to be thinking about. The core needs to be able not only be open but very forward thinking in design. It’s kind of mind boggling when you think about it. The core at this point, is the most important part of the whole program. It needs to be Sub-modular or modular within modular. :slight_smile: I need to make it flexible enough to extend in ways I can’t even imagine… Ugh!

I’ve been thinking about the interface lately. Particularly the graph editor. The more I animate at work, the more I’m beginning to think that the Pixar way of having a huge muti-track curve editor is not such a bad idea. And, that the way I had envisioned it as a little pop up view/window above the time line isn’t going to cut it.

But now I have a problem, If I make the graph editor larger, then there goes your screen realestate. The way they do it at Pixar is to have most of the screen showing the this huge window with little floating windows for the 3D views. This is actually counter to one of the main things that makes Oasis special in my mind. Keep the buttons and numbers out of peoples faces and just bring them in when you need them but never totally obscuring the main window… Does that make sense? So, how I’m going to solve this is a real challenge if I may say so. The problem would be null if we all had dual monitors though. :wink:

-=GB=-


#93
  yes, it seems kindof analogous to painting; the core is the palette and the processing modules are the paint.   
  You don't have to start by reinventing the wheel--  it's a process.  

I actually love the curve editor in the UI shot-- very streamlined and efficient. To me, it really shows that Oasis is designed to assist an artist to make animations rather than to work on an animation program. Hope I’m saying that correctly.

My advice would be to start with the one you have and see what reaction you get from other artists. Then perhaps add another window as an option later. I think you have an excellent concept for the UI and flow of the app, and would be very interested in beta testing for you.


#94

double post:eek:


#95

Yep this is true. Unfortunately or fortunately, I plane on doing a lot of reinventing of the wheel. Along with a healthy dose of not reinventing the wheel… Uhh did that make any sense? I guess what I’m trying to say is that I really want to challenge a lot of the ideas that people have about CG animation. There are things that are done in 3D programing that people don’t even question. Is that really the best way to do it?

Take the notion of hierarchys for example. While it’s true that they exist in the real world, they don’t always work for what we need them to do. When your foot touches the ground, it suddenly becomes a potential point of rotation for the whole body. whenever an object touches another object, that point of contact becomes a center of rotation. This totally destroys the concept of hierarchys. Is there some other way of defining connections between entities thats less constrictive? something maybe, bi-directional or force based? I don’t know just yet but you can bet that I’ve been racking my brain over it.

Here's another one that I'm very interested in: Vector based rotations = no gimble.

And another: a lot of people have issues with seeing separate X,Y, Z channels in a graph editor and understanding how they translate into 3D space. Why not just let them manipulate the curve in 3D space? What about rotations? Well, since we would be dealing with vectors, you now have a 3D path you can see and manipulate as well.

Vector rotations aren't exactly earth shattering but it's a start that opens up a whole new path of options.

I don’t want to fix what’s not broken. If the way it’s done now is working then why change it. But, There’s a lot of stuff that I’ve been thinking about lately that I do think is broken or at least needs to be further looked into. All of those things point to the main reason why I feel I have to make Oasis. It’s not that I want to make a program that’s almost or just as good as Maya, XSI, Max, etc., etc. Oasis has to be something special. Otherwise, why do it? Right? :wink:

I actually love the curve editor in the UI shot-- very streamlined and efficient. To me, it really shows that Oasis is designed to assist an artist to make animations rather than to work on an animation program. Hope I’m saying that correctly.

Thanks so much for the positive feedback. :) And yes, that's totally my aim. I'm really glad you like it.

My advice would be to start with the one you have and see what reaction you get from other artists. Then perhaps add another window as an option later. I think you have an excellent concept for the UI and flow of the app, and would be very interested in beta testing for you.

Excellent! Again, thanks for the feedback. I think you are right. I'll keep it the way it is for now.

#96

Galen, any update?


#97

could not resist to bump it up - really interesting what’s going on with this project


#98

Yep, still working on the core in my spare time. I’m also working a regular job so it goes a little slower then most projects. One thing I’m working on is getting Cairo (http://cairographics.org/) to render on top of OpenGL. I thought it was possible but maybe not. Writing the user interface is basically where I’m at. There are so many different ways I could do it and since I’m not that great of a coder, it’s even more difficult for me. :slight_smile: My main issue is just drawing windows inside a GL or GLUT window. No so much of a big deal but when you consider that I want to use Antialiased fonts and transparent panels I’m finding that I have to write a whole interface based on OGL. So, I’ve been looking at different vector graphics and GL libs to see if I can use a ready made one that works better. believe it or not, I’ve had the best results so far with SDL and Pygame. :slight_smile: I’m also looking at OSX to use as my main development platform. Windows is just going to sh*t in my opinion so I got a Mac and I’m loving it to death. Oasis will still be cross platform though… maybe… :wink:

-=GB=-


#99

What exactly are you using SDL for?
What are you using as your event handler?
What are the roles of GLUT and SDL in your programm?

Really interesting stuff you’re doing. Im building a program my self (its more of a multy platform on-line 2K editor, and I was wondering what libs do you use for what. There are so many choices that it is confusing


#100

SDL provides just about everything for you in a very simple and easy to use package. It can be a little to simple though. for main loop stuff, you just need to make a while statement that says, “While not 0, do the contents of this loop”. Then inside the loop you have all your checks, callbacks, frame advances and screen redraws. Those are usually the API specific stuff and SDL provides just about all of that. But SDL isn’t the only way to go. It’s just nice because it so simple and provides handing of images, OGL, sound, mouse and keyboard. I think it was intended for games but it’s really useful as simple starter platform. Anyway, I’m starting to sound as if I’m trying to sell SDL. But it’s quite the opposite. I actually ran into some issues that made it really hard to continue (Mostly to do with Open GL and SDL) so I’ve been looking at other libraries too. Unfortunately, there isn’t anything else as simple as SDL that I’ve been able to find.

GLUT is where I started and I continually go back to it now and then and try to force it to do things it wasn’t meant to do. It’s very basic. OpenGL, mouse, keyboard, menus and a simple right click menu. That’s it. But again, as a starter package, it does it’s job. The nice thing about GLUT and SDL is that they are totally cross platform. That’s something that’s really important to me. One of the early notions that I had about Oasis is that there just isn’t any kind of good 3D animation program for Linux (other then Blender). So whatever I make has to be able to run on Linux and OSX.