3DKit for Haiku

Hello comunity. I think now is the right time to implement the 3DKit for Haiku. Many say that this is wrong while we don’t have HW acceleration. But why now ? Simple:

  1. we must consider that now we can improve all steps in the 3DKit. Without HW we can improve the structure, speed, efficiency etc.
  2. we need a little life in Haiku : 3D Objects, animation, small games with animation, gesture Maybe Windows previews or Workspaces preview (see Elementary OS)
  3. and so on

Take a look o at: idx3d. It is phenomenal. Lite and fast with a good FPS on Haiku:


Feature list

• Pure Java, will run on any Java 1.1 compatible platform
• Realtime software rendering, not based on Sun’s Java3D
• Per-pixel lighting (!), 32bit
• 32bit Z-Buffering
• Optional anti-aliasing
• Colored light sources with specular highlights
• Material based rendering: Transparency, Reflectivity, Texture, Envmapping
• Unlimited texture size (2^n)
• Texture Factory for generating various kinds of textures
• 3d Object factory for primitives (cube,box,sphere,cone,cylinder)
• 3d Object factory for 3d terrains, lathe objects, torus knots, …
• Plugins: LensFlare
• 3ds (3d Studio Max mesh) import / export
• ID-Buffering, lets you identify objects on rendered images
• Material editor application lets you easily create and preview materials
• Inspector available, lets you take an in-depth look at your instances.
• Source code available (!)

You can test it: just download it, install OpenJDK, open the Terminal and type:

appletviewer demo1.html
appletviewer demo5.html
appletviewer demo11.html

Depending on Demo try to click on 1,2,3,4,5,6,7 a- anitalising, UP,Down, Left, Right, - or + , PageDown or PageUp

Or you can try the CubeTwister (improved idx3d version from Werner Randelshofer).


It is very cool : with animation and run good on Haiku. Just install OpenJDK download cubetwister-2.0.155.zip and type in Terminal:

Java –jar CubeTwister.jar

Or download cubetwisterapplets-2.0.155.zip and type in Terminal:

Java-jar BarrelPlayer.jar (or Cube7Player.jar or DiamondPlayer.jar or RubikPlayer.jar etc.)

The first port (old) to BeOS C++ you can find here "http://testou.free.fr/www.beatjapan.org/mirror/www.be.com/beware/Graphics/Idx3d-port.html

The steps: we need to merge following projects:

  1. Beos 3DKit Alpha : https://files.fm/u/meww777d
    Description: https://files.fm/u/meww777d
    Examples: 3DKit Alpha : "https://files.fm/u/meww777d

  2. haiku3D and glTeapot from Haiku

  3. idx3d "https://web.archive.org/web/20070101114911/http://www.idx3d.ch/idx3d/idx3d.html

  4. Cactus3D the attempt to port idx3d to C++ "http://cactus3d.sourceforge.net/

  5. CubeTwister (improved idx3d version from Werner Randelshofer) "https://www.randelshofer.ch/cubetwister/

  6. A good inspiration is NinevehGL Features: "http://blog.db-in.com/ninevehgl-features/

  7. Maybe RayTime - a real-time ray-tracer (haiku) or something else (for example PBRT Physically Based Rendering)

3DKit most be highly modular and expandable, abstract and as Drawing Engine : OpenGL (Vulkan) and for old computers LibArt or AGG

1 Like

CubeTwister Animation: try to scale and explode the Cube then rotate it or Play with it then → click on Set Default Value

It is cool : https://www.youtube.com/watch?v=ibowH_QTxsE

Now is definitely NOT the time. For two reasons:

  1. We already have Mesa and OpenGL with software rendering, which works well enough for a lot of purposes and already allows to experiment with the APIs (but not to see the problems our current APIs would have with hardware accelerated 3D). Animating two dozen cubes is certainly not enough for that (even if it could make a nice screensaver).
  2. We are trying to get a beta out. Please, please, do not distract the devs with new and fancy features or we’ll never get there :’(

Maybe you are right but we need more people that experiment with Haiku, whether beta or not.

Take a look at Elementary OS. They implement the new design, the VALA programming language and a lot of cool animations for the desktop. Now there are more people involved, more people that just try or experiment with Elementary OS – and the end effect there are more DEVS for now.

The people need a MOTIVATION.

@beos, motivation, i mean MOTIVATION is easy to type, but tough task to generate it. Actually one needs to have a really sane and concentrated mindset to understand the developers in the FOSS scene, what their reason, what their wishes and yet plenty different fractors, i don’t try to collect them all, sorry.

Spamming the official forums with screenshots (from other platforms) is definetly not a motivation-generator.

Istead of presenting java-based render engine, the definetly out-of-place BeOS 3DKit or some early-work-in-progress C++ ports, maybe you should create an own webpage for your ideas! You could fork the usable code-bits and start to work on it. If somebody interested in it, will definetly join. After you guys gets a reasonably working state you coould do some benchmarking on MESA and on your 3dKit to see wich performs better under different, but well defined scenairos and use-cases.

Do not forget to publish milestone-reports on the IRC or on the official forum.
Thanks Mate, and have fun along your way!

1 Like
  1. Let them complete the beta… Please
  2. We need a solution in 3d for booth 32 bit and more future like 64 bit. Here we does not should implement a different solution of side haiku team.
  3. I hate too much colored and animated desktops, because the system is the ground of apps you are running on. Simple, fast, useable, stable.
  4. Is the source of the old beos release available and free, then share it on a website or beshare to get them alive.
  5. If the old build for beos is running on haiku, give it to one with a repository server (if allowed by the copyrights)
  6. If it is running on haiku, write a tutorial please. You can send them to the besly team.

If we don’t release anything, then we are never going to attract devs. So please have a little patience while we try to get the beta out. After that’s done, we can resume the work on interesting ideas and exciting experiments. But not now.


The beta is not the end, then we need a r1, but first the betas.

Anyway thanks for your great ideas…

Oh man… this is basically crappy OpenGL 1.0 … Mesa in the current state is OpenGL 4.x (software renderer !).

I doubt you attract developers with stone age tools :confused:

1 Like