Blog

Blend4Web 15.12 Released

2015-12-23

We are glad to present a new version of Blend4Web, an open source platform for creating interactive 3D web content. This is a special release for us and our community as we pass the fifth anniversary since the first line of code was written which later evolved into what we now call Blend4Web. Taking a look back, we have come a long way from a mere WebGL experiment to a fully fledged 3D engine now being adopted by industry leaders. There are more exciting changes to come!

In this release you will find: experimental Oculus Rift support, shadows cast by multiple lights, UI alignment to the viewport, new logic nodes and more.

Shadows From Multiple Lights

Blend4Web now can render shadows cast by several light sources (up to four). Therefore, a 3D artist has yet another opportunity to drastically improve realism and the depth of scenes. The play of light and shadow is demonstrated in the following winter example.

Virtual Reality

We have started to work on supporting head-mounted displays (HMD) over WebVR API.

Stereoscopic image generated for Oculus Rift.

Currently, in order to use this technology you need a browser with WebVR support and an Oculus Rift device. Please find more info about setting up the VR in the corresponding manual section.

We also improved anaglyph rendering, the other method of stereo imaging already supported in Blend4Web. We have used a new algorithm which offers a better color reproduction. Also, the image plane position is now automatically adjusted to the camera pivot (for TARGET cameras).

Anaglyph stereoscopic image.

Stereo imaging modes can be activated via API. Additionally, a switch has been added to the stock Web Player so that you can offer VR to your users without the need for coding.

VR options in the stock Web Player.

Viewport Alignment

The user interface can be created by parenting 3D objects to the camera such that they are always visible in front of a scene. To solve issues due to different aspect ratio on desktop and mobile displays, we have implemented a new tool, Viewport Alignment. Using this tool, you can now attach the UI to a side, a corner or the center of the screen. Unlike simple parenting, objects are automatically fit upon re-sizing the viewport. These settings are revealed for an object after you parent this object to the camera in Blender.

We have prepared an example related to web design in order to demonstrate this new feature.

Logic Editor

The logic editor keeps gathering more nodes. The Move To node makes it possible to translate an object in another object direction. Console Print outputs info useful for debugging (including variable values) to the browser console.

Move To and Console Print nodes.

In the example above the cube is moved to an empty position over the course of two seconds, after which the browser console (can be opened with F12) prints a message similar to:

B4W LOG: Checking time {"t":2}

Other Improvements

The Fast Preview button has been duplicated at the bottom of the Blender viewport. By clicking this button you can simultaneously load your scene in the web browser at any stage of your workflow. Please remember that this feature requires installing the SDK and is not available when using the standalone Blend4Web add-on.

Fast Preview button.

Setting up limits for the camera has become even easier. After enabling Display Limits in Viewport in the camera settings, the boundaries will be shown right in the Blender viewport. We have also changed the default values for these limits.

Displaying boundaries of TARGET camera movement in Blender.

We have extended functionality available via API. Particularly, it is now possible to delete any dynamic objects (before you could only delete copied objects). Copying canvas textures has become available. The pick_object() method can now be used for picking annotations too. Also, we have added the new get_selectable_objects() and get_outlining_objects() methods which simplify retrieving specific groups of objects.

We have implemented all workarounds necessary to ensure that the rendering is correct on Nvidia video cards of 200 series as well as on iPhone 4, 4S, 5, iPad 2, 3, 4 and iPad Mini 1/2.

Conclusion

This Blend4Web version is compatible with Blender 2.76. Blend files of all presented examples are included in the SDK distribution. The complete list of changes and bug fixes can be found in the release notes.

Comments
28 dec. 2015 21:39
Are you doing any development with the Leap Motion device?
I need a Leap node to import the Leap Motion daemon Frame so that I can move objects with the wave of the hand. There are many other nodes that could work with the import node. Hands, fingers, finger joints, Gestures; circle, swipe, tap, touch. Other nodes: object, empty, move, size, rotate, timer, speed, fire, explode, gravity, visability, steering, percent, record, playback, print, display. These could help so much with making games for Blender.
29 dec. 2015 19:11
Are you doing any development with the Leap Motion device?
Hello, and welcome to the forum!

Currently there is no work on Leap Motion features. We realize that it can bring interesting possibilities for Web apps so in future it will be supported. Anyway, leap.js library is far from stable version as for now. It is on 0.64 beta.
05 jan. 2016 06:24
What language are you using for Blender Nodes?

I am getting 30-40 fps into blender 3D window at the present time but just needed a node to channel the Leap frame usage. How would you create a node that accepts Python 3 Leap data code or C++ code to have a working node to use? By the way, I am a registered Leap developer from the beginning. I do not need to have web apps for Blender game development yet.
02 jun. 2016 12:45
Are there any plans as of yet to include leap motion in your framework?
I noticed in the above post you stated.

"…it can bring interesting possibilities for Web apps so in future it will be supported"

Both myself and a few other developer friends would happily move from ThreeJS to B4W if this technology was available out of the box.

Thanks,

Chris
03 jun. 2016 02:01
Perhaps you haven't remembered that most/all of the new VR displays are using Leap Motion attached to the faceplates in order to have hands displayed in the view. Blender is one way to create a VR experience, having VR capabilities built-in. Blender needs a way for the Leap Motion to work during VR development as well.

And thanks so much for answering my email and giving some hope in developing for Leap Motion by saying: "However, we can create a working Leap Motion prototype application and assist you in integrating it with your solutions on the basis of the premium technical support". Could you explain more fully on the "premium technical support"?

I have limited funds, being retired from the Union Pacific Railroad and a Air Force vet of 4 years, but I am interested in your proposal.

For your information, the Vuo app contains Vuo.framework, which contains yuo.leap.uvonode, and many modules including VuoList_VuoLeapFrame.bc, VuoList_VuoLeapHand.bc, VuoList_VuoLeapPointable.bc, VuoList_VuoLeapPointableType.bc, VuoList_VuoLeapTouchZone.bc and uses the libLeap.dylib to access the Leap daemon. So it can be done and is being done at the present time by other companies.
03 jun. 2016 10:01
We believe that this feature is too specific to be included in the Blend4Web core right now.
However, we can create a working Leap Motion prototype application and assist you in
integrating it with your solutions on the basis of the premium technical support (terms and conditions of which can be found on this page).

Please email me if either of you are interested.
03 jun. 2016 11:38
I have limited funds, being retired from the Union Pacific Railroad and a Air Force vet of 4 years, but I am interested in your proposal.
IMHO, Blend4Web is a smart way to invest your time and money. 3D web technologies are becoming more and more widespread and you will be able to return your investment by manyfold.
Please register or log in to leave a reply.