Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Igor Kravtchenko, posted on April 10, 2001

Image Description, by Igor Kravtchenko

This is my first posting on flipcode for an Image Of The Day. This picture is my contribution and shows some screenshots taken from a 3d demo realised in Java. It uses my own engine called OZOS Web that actually fits into less than 40kb. My first motivation was the fact that Java was and is still not really exploited on the Web. Ofcourse, they are some beautiful offline demonstrations, but they are quite heavy and use in general only software routines. From this point, I've decided to focus only on speed and be able to animate 3d meshes on the Web with a good frame rate even in a 1024x768x24 bits screen browser. Ofcourse, I had to make some compromises because Java applet is not really as powerful as the C++ / DirectX duo (or OpenGL, whatever). The first and main interest of Java is that is plate-form independent (or is a plate-form as a wellknown person said) in the opposite of an ActiveX. So finally, I'm quite happy of the result and to be able to increase the interest of a Web site just by adding some logos in 3d, a head that welcome you, or a lot of things you can imagine, all with a code of just some tenth of kilo bytes (the engine also includes pure software routines, like bitmap tunnel, optimized transparency routines, mosaic effect, blurred images, etc..). Actually, I'm not sure to add features to OZOS Web because of the lake of time and especially to keep focused of the fact it must be light and adapted to the Web. You can watch the demo that uses this engine directly online at

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

April 10, 2001, 01:04 PM

That's really cool for a java engine coded from scratch!


April 10, 2001, 01:06 PM

looks cool...
the starship in the right upper corner...
wasn't it shipped with lightwave3D ?


April 10, 2001, 01:14 PM

WOW !!!

Simply amazing... And to say that it's all done in Java..

Congrats on the work !!!

Luc Bergeron


April 10, 2001, 01:19 PM

Wow. Two Java engines in a row.

This one is less advanced that the last one but it does go FAST! Thats what you want on the web! Not EviMappedBumpMapping PAH! Speed! And this delivers in spades...

I would work on the texture mapping code next man. The texture mapped tunnel was SLOW. And maybe Gourad shading for the polys instead of flat shading but other than this dont do anything to it!



April 10, 2001, 01:45 PM

This is absolutely amazing, the demo ran a little jerky on a 233 PII, but it was still amazing, the image quality is top notch.


April 10, 2001, 01:51 PM

The demo was a little jerky on my terrible work machine, but it was stull impressive. The images were a little plain, but I get the idea. It was very fast, especially for a Java applet. As was pointed out to me, even filling a 2D canvas with random garbage in a java applet can take a long time, so this is truly impressive. Did you use the Java3D API?


April 10, 2001, 01:51 PM

Yeah, the tunneling was slow, probably the only thing that was lower than 25 fps on my 700 mhz athlon. Very impressive nontheless.


April 10, 2001, 01:56 PM

Very nice
Althought I wouldn't be so sure that's is fastest and best and etc...
It requires no installation, but it requires 10 minutes to load.

I wonder how long it would take to load 'unreal' java-version.
Do java is able 2 take advantages from hardware acceleration?


April 10, 2001, 02:01 PM

Any chance you could set this up to have lower resolutions for those of us who have, say, a 1024x480 screen? (Sony Picturebook) A lower resolution would probably also help to get a higher framerate. 400x300 might be a nice option, at the very least.



April 10, 2001, 02:05 PM

Looks cool, but iexplore.exe uses 130 MB !
goodwork, anyway


April 10, 2001, 02:14 PM

Hey who said anything about it downloading quick. You'll have the same trouble playing Unreal on the net when the server loads a map that you dont have. 10 Mins waiting for DM-YetAnotherUnrealMap.unr to download...

I still think its cool. The web needs MORE interactivity in it. All this ASP, PHP PERL stuff just isn't going far enough. We need lots of flat shaded boxes spinning around showing us the way to NET HEAVEN! We need to be able to interact with pages in novel ways. Make the Web what interactive TV will never become. Find anything, anywhere at anytime and view it how you want. If I want to walk around down town LA accross the net I should be able to god damn it!

This sort of stuff really gets me going as you might have noticed. The web is just not good enough yet!


April 10, 2001, 02:24 PM

Yeah, we really need more of those irritating Flash-Shockwave-VRML-'look how spiffy my page looks, it's just too bad I don't have anything worthwile to put on it' web-pages.

Let's make the entire web a carnival of colors, spinning boxes and particle-systems, so nobody will ever be able to find useful content on it.

The web doesn't need more interactivity - the web needs a better signal-to-noise ratio :-)


April 10, 2001, 02:35 PM

good one.

And skipping Z-Buffer really accelerates a lot. Still I don't know if there is full solution how to sort your polygons and not to have overlappings. Are you splitting the polygons when they are close (to have better sorting?). If you don't - you can try with it - also splitting the polygons will remove the need later for doing perspective correct texture mapper. It will look just like PSX game - but with much better high-res quality.

I wish i have time to learn JAVA, but everytime i've started - i felt like i like my Visual C++ and OpenGL or DX8 better.

Jason Kozak

April 10, 2001, 03:04 PM

Nice. Now all you need is a web game using it! I'd love to see Doom, but what really comes to mind is Wipeout3. Those who've played it and either tried all the cheats or actually raced and won 256 times (8 cars * 8 tracks * 4 classes) to get the prototype tracks will know what I mean.

And yes, I did have too much free time.


April 10, 2001, 03:43 PM

Hey LED.

Interactivity has its place too. Besides, I'm entertained by all those "Hi, I'm Bob. I work in real estate. Heres a picture of my kids" All surounded by a million animated GIFs of cartoon animals doing "Ammusing" things. How I laugh at their colour schemes. How I mock their choice of background wallpaper.

But I still think we need more technology like that shown in this IOTD.

Interactivity is the way forward.

(Just dont let the script kiddies get their hands on it)


Igor Kravtchenko

April 10, 2001, 03:46 PM

No there is no use of Java 3D API. I've coded the entire engine by myself even the MOD replayer.

Igor Kravtchenko

April 10, 2001, 03:51 PM

Oh ?
However, on a 1024x768x32 bits screen browser I got a maximum of 86 megs for IE5 under Win2K. What version of IE do you use ?

Igor Kravtchenko

April 10, 2001, 04:03 PM

The engine uses in deed a Z sort by using a traditional byte sort.
The Z of each polygons used for the sort is the Zmin or Zmax depending
of the situation. To be more precis, 3d meshes contain keywords in their surfaces names(materials if you prefer) which indicate one or more special features to apply for a set of polygons. Then, that's the open gate for a lot of "tricks". Anyway you must use tricks when you don't have any ZBuffer..


April 10, 2001, 04:10 PM

PSX1 didn't have Zbuffer also, that's why near polygons were always subdivided. One idea is to check the area of a polygon or differences between two of his edges by X or Y, and then if it's bigger than some number subdivide it. By this you'll have polygons sorted better. But still for some objects you have to have internal Z-BIASING (offseting) - as you said.


April 10, 2001, 04:15 PM

very well said :D


April 10, 2001, 04:54 PM

Looks quite nice but I have to be critical (as always) :P

I'm not that much impressed by it's speed as most of you people here are because it only uses flat shaded polygons which can be done VERY fast in java using:


Which draws a polygon in native code, need I say more...
As you can see the tunnel effect is quite slow mainly because it's done using true software rendering and the effect itself almost doesn't take any processing time as it's all precalculated stuff.

But anyway it still is a verry cool demo/engine so keep up the good work



April 10, 2001, 04:56 PM

Really impressive,

I had to acknoledge that Java applet in today's navigator make miracles, the more so as it's software 3D.

May be it's a little bit slow sometimes, but you're probably at the limits of the capcacities of the 2D blitting.
The 3D seems to be computed extremely fast( on my 466 ), and you have had a music decompression I suppose.
So I have no more to say than Good Job,
I will probably consider Java applet in a different way now.

Florian Hoenig

April 10, 2001, 05:49 PM

...reminds me of the "3d construction kit" on my c64...

Jukka Liimatta

April 10, 2001, 06:35 PM

Didn't Kravtchenko code the last year assembly's winning demo, "toys" ?

"...reminds me of the '3d construction kit' on my c64...", whoever wrote that, feel free to write a winning demo to assembly2001. ;-)

Some scandinavian Java Power:

There's plenty more at / -- check java compo entries in most demoparties. There's some pretty cool sh*t to see there for those who are into that sort of stuff.

How Are You Ladies?

Kurt Miller

April 10, 2001, 06:47 PM

Heh, "Toys" (1999) by gOds was one of my favorite demos for quite a while...

In case anyone missed it:


April 10, 2001, 07:13 PM

Two words:
1. I work on a java engine too (i don't know why, perhaps the nostalgy of slow computers...), I found this engine really amazing and it's true that they gain a lot of speed with drawing polygon with graphics.fillpolygon() but the problem is to simulate double buffering in java and it costs a lot of time. For example, to perform a rotozoom in a 400*400 window i can't have more than 45fps on an Athlon 900.
2. Check this : with full code of a java engine using pure java (software rendering) and no java3D.



April 10, 2001, 09:53 PM

Very impressive demo :)
I remember when you started coding back in the Amiga days in Iris and then Gods.
Nice to see you have come this far! =)


April 10, 2001, 10:23 PM

I am impressed as well. 1024x768 on a athalon 850, and the only thing that ran slow was the tunnel.


April 11, 2001, 01:50 AM

Hello. I'm not a Java programer but my friends here that work in Java said that there are new packets (or how is it called in Java) that use hardware capabilities. I saw some examples and they were cool. I think it's something like DirectX. It's still platform independent and use the power of your graphical accelerator.


April 11, 2001, 03:34 AM

Nice demo, truly.

But with this many posts and noone pointed out that a real demo shouldn't have a animation! ;-) It looked very fake IMO.

But a really nice demo... liked the hiarchy-part best!


This thread contains 56 messages.
First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.