Hi everyone,

Today we introduce a video of one of the first result following our buy-out by the Optis Group. The application presented bellow was a shared development between Optis and SimplySim for the Laval Virtual tradeshow (which took place at the beginning of April).

The demo is a prototype of a headlamp simulator. The goal of this application is to test and validate car headlamps before production. The Simulator is build on top of the SimplyCube simulation engine and integrates Optis realistic rendering for light and materials, to guarantee that the simulator can be used to take actual production decision on headlamps (in the video bellow, notice the “false color” mode that gives accurate information on the level of lightning of each point in the environment).

The simulator is built around a driving loop that present different situation that can be interesting to test headlamps: different road materials, street lightning (thanks to the simplycube deferred shading technology we have about 200 dynamic light sources in the environment), reflective street furniture, tunnel, bumpers, countryside and city, end of day or night…

Several model of headlamp have been modeled with the ability to easily change between the headlamp model, and set low beam / high beam mode (there is no limit on the number of different headlamp we can test in the application). All the light models, and all the materials used in the environment have been developed by Optis and are based on real measurement with the OMS devices. This technology, also developed by Optis, studies how light behave on a material to guarantee a simulation as accurate as it can be.

In the video above the Simulator runs on a standard PC, with a nice screen and a game interface for controls, however the SimplyCube is fully compatible with more advanced displays (multi-screens, stereo) and controls (full support of VRPN) so this application could be easily deployed in a more immersive virtual reality system.

Finally, you’ll also notice in the video that the headlamp move as the car turns, for this prototype we have modeled a very simple adaptive headlamp simulation, but thanks to the SimplyCube everything is made so that the simulator could be plugged to a real adaptive headlamp control system.

We’re proud to present you the first result of our new collaboration, and we have to thank the Optis team as it was a real pleasure to work together on this first project. Other projects are in progress we’ll showcase them here as soon as we can.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

Today we introduce a new video about the technical capacities of the SimplyCube 3D engine. To benchmark our engine, we’ve asked our graphic designers to create a scene that would require all the real-time 3D techniques available in the SimplyCube. The video bellow is the result of this project.

Let me give you a bit more details on this video and the 3D techniques available in the SimplyCube and seen in this video:

Deferred Shading

The deferred shading technique enables you to have as many dynamic light sources as you want in a real time 3D application. In fact deferred shading is a way to render the 3D scene (the usual way is called “forward shading”, in the SimplyCube both are available). With the “forward shading” you can render up to 6 lights in a scene, here using “deferred shading” we have more than 500 light sources in the scene, with little to no effect on the performance.

Volumetric lighting

Volumetric lighting is a technique that gives more relief to a light source, by showing beams of light shinning threw the environment. This technique (used in the video above for the projectors of the helicoters or the fire inside the barrels) can also be used to show the sunbeams for example in an indoor environment or even the dust in a room.

Volumetric Lighting

The scene with (right) and without (left) volumetric lighting

Global illumination

Another important lighting technique used here: global illumination enables indirect lighting. This means that any object in the environment reflects a part of the light that it receives to all the objects nearby. The lighting of the scene is therefore a lot closer to reality.

Screen Space Ambient Occlusion

Ambient occlusion is a shading technique used to add realism to models by taking into account the attenuation of light due to occlusion (corners of a room, irregularity of meshes …). A lot of 3D engines need baked ambient occlusion maps (generated by authoring tools). Here we use screen space techniques which allow ambient occlusion to be fully dynamic with absolutely no pre-computations.

Ambient Occlusion

A view of the ambient occlusion generated (right)

Gamma correctness

One of the most important things if you want realistic rendering is to manage lighting as close to reality as possible. But the nonlinear properties of almost all capture and display devices make it hard to achieve (the picture you take with your camera and you display on your LCD screen necessarily has biased color curves). To correct this behavior, the SimplyCube automatically rectifies the gamma of input textures and render target to perform lighting in linear space resulting in a more realistic rendering.

Gamma correctness

A view of the scene with (right) and without (left) the gamma correction

Glow, distorter, color correction, depth of field…

As you see in the video a lot of other 3D techniques are used in this environment, each one should deserve an entire blog post just to explain what it is and how it can be used. For example we’ve used the “Glow” technique to enhance the neon effects on the sign in the street, we’ve used “Distorters” to simulate the heat wave coming from the fire and thus distorting the image, and we’ve used “color correction” to change the whole ambiance of the scene by adjusting the colors (high/medium/low tones, hue, saturation and contrast).

Physics

It’s also important to note that this scene is not only graphic, it also use physics. Any object that you see moving in the environment is subject to the laws of physics, and can collide with other objects. Several physics engine can be used indifferently (the choice of the physics engine is made at runtime) with the SimplyCube. Here we’re using Nvidia PhysX.

Curves and Controllers

An easy way to create movements in a scene (moving objects, camera scrolling) is to define curves and attach objects to it. That’s exactly what we did for this demo:
- The camera is moving along a curve, looking at another curve
- The helicopters and other flying objects are following their own curve
- We even have procedurally generated curves for the background cars running on the highway

Hardware configuration

Finally a few words on the hardware configuration used to render this scene in real-time 3D. For this video the scene was running on a Core2 Duo E7600, 4GoRam, GeForce 260GTX at ~21Fps. Of course the SimplyCube can be used with lower (or upper) hardware configurations, depending on the complexity of the scene.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

Hello everyone,

With the SimplyCube, one of our main goals is to make 3D applications’ creation as easy as it can be for all kind of users from developers to casual hobbyists without any programming experience. This is why we have chosen Microsoft C# .NET to develop our software (Blogpost). Nevertheless, C# could remain complicated for non-developer users. That’s why we also provide an alternative for novice users through the Microsoft Visual Programming Language (VPL) included in the free Microsoft Robotics Developer Studio programming environment. Combined with the SimplyCube, VPL allows users to create a 3D application and interact with it without writing a single code line. The only thing the user has to do is to drag and drop boxes (each one is a service with a specific functionality) and link them together.

Here is a non-exhaustive list of services you will find in the SimplyCube. Each of these services will be an easy to use “box” that you can drag and drop in your VPL diagram. Of course the SimplyCube will also provide some tutorials explaining how to use these services in different types of applications:

- A simulation engine service which allows loading a 3D scene and configuring it.

- Graphic services:

  • Node Translation Applicator: Apply translations on scene nodes.
  • Node Rotation Applicator: Apply rotations on scene nodes.
  • Node Scale Applicator: Apply scales changes on scene nodes.
  • Node Visibility Manipulator: Set nodes visible or invisible.
  • Global Emissive Manipulator: Changes the global emissive power (lightning) of a scene.
  • Situation Manipulator: Changes the date and the location of the scene.
  • HUD Text Manipulator: Manages an on-screen Text.
  • HUD Image Manipulator: Manages an on-screen image.
  • Weather Manipulator: Changes the scene weather configuration.
  • Window Inputs Notifier: Sends notifications on mouse and key interactions.

- Physic services:

  • Torque Applicator: Applies a force on one or more dynamic actors.
  • Motorized Hinge Manipulator: Changes the velocity and maximum torque of one or more motorized hinge joints (hinge joint = rotation joint).
  • Motorized Slider Manipulator: Changes the velocity and maximum force of one or more motorized slider joints (slider joint = translation joint).
  • Collision Detector: Sends a notification when a collision is detected with one or more actors.
  • Pair Collision Detector: Detects collisions between two actors list.
  • Actor Pose Tracker: Get the position and the orientation of a dynamic actor.
  • Actor Velocity Tracker: Get the angular and linear velocity of a dynamic actor.
  • Ray caster: Cast a “ray” from a 3D point in a direction and returns a list of actors hit by the rays.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

Hello everyone,

We are happy to introduce you today in this article a few words about interfacing between third-party programs and the SimplyCube.

First of all, let me introduce you Christian Barat, who is a robotics specialist (PhD) working at SimplySim at part time and who is also a researcher and teacher at the University of Nice Sophia Antipolis. He is specialized in robotics and image processing. His scientific expertise is a significant asset in our team as he advises us on many issues, from image processing to artificial intelligence, and more globally on the whole robotics simulation domain. His contribution has been crucial to the quality and realism of the SimplyCube. His research job at the University of Nice Sophia Antipolis often leads him to use MATLAB in order to solve scientific problems, and he was interested in seeing how could interact and work together the SimplyCube and MATLAB. Lately he worked on a project where the objective was to control the UAVs from our Drone Simulation Pack with MATLAB.

This project has been made in two steps:

First, Christian created a controller for MATLAB, using its different libraries. In other words, he did a MATLAB workspace in C# to interface with the SimplyCube.

Then, he has implemented a MATLAB code that gets variables from the C#, treats them and sends them back to the C# code. For each of the three drones, this MATLAB code has:

  • An input variable, which is the drone pose (position + orientation) from the DroneLibrary of the Drone Simulation Pack.
  • An output variable, which is a table of double values containing flight instructions for the UAV (demand signals).
  • A 3D plot of the trajectory of the drone.

As a result, visible in this video, the three drones fly in a SimplyCube simulation with a MATLAB PID Controller:

You will be able to find the MATLAB interfacing controller in a few months in the SimplyCube official release.

If you have any questions or feedbacks about this feature, feel free to post it on our forum and we will be happy to answer you in the shortest delays.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

As announced before, SimplySim will be present at the Laval Virtual 2010. The Laval Virtual is the first European event dedicated to enhanced and virtual reality, real time 3D and interactive techniques and takes place in Laval France (1 hour and a half from Paris in TGV) from April 7th to April 11th 2010. This year is the 12th edition of the tradeshow, and SimplySim first participation. The entrance is free during the professional day as long you have an invitation … invitation that we are happy to provide right here.

laval virtual

The Laval Virtual will be the first public presentation of the editors of the SimplyCube. The SimplyEdit, SimplyPhysic and SimplyShader are easy to use tools designed to help you create rapidly any professional 3D application: simulations, serious games, marketing applications, video games…

First preview of the SimplyEdit

First preview of the SimplyEdit, SimplyCube's 3D scene edition tool

We will also present our latest demo created using the SimplyCube 3D simulation engine and editors: our UAV Demo, our robotics simulation demo, our underwater demo, and a new “Nanorobot demo” (if you follow @VB_Simply3D you only have an idea of what to expect for this one…).

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

When we launched our beta a little more than a month ago, one of our main expectations was to see how people will review and comment our product. We’ve received recently a first in depth review of the beta by a PhD student at the Department of Computing of the Imperial College of London. To let you judge by yourself here is the conclusion of the review:

“The tool claims to be “The easiest tool to create real-time 3d software”, this beta release is a first step at this. It provides a good SDK for a rendering engine with physics. This provides some novel features such as the support for multiple physics engines in the same application and a nice Day/Night lighting system. The SDK looks like a good stepping stone to an intuitive user interface. Which is due in a future release. The engine is meant to support robotics and simulations however the beta currently gives limited intuition on how will it fulfils this role.

In summary this is an interesting product since it leverages and extends a number technically competent products from Microsoft namely the .Net framework in C#, Microsoft’s Robotics Studio and the XNA Games Studio. This provides a good starting point and it will be interesting to see how this product develops.”

SimplySim beta review

Click to read the full report (PDF)

This first independent review comes as a support for our SimplyCube, because although only a fraction of the final product has been tested (the editors are not yet available in the beta), the strong points highlighted by the review are the one we’ve been working for:

  • An easy to use 3D real time simulation SDK
  • A multi-physics engine, physics simulation
  • Advanced 3D rendering with post processing and lightning effects

The product continues to evolve, and as I said in last week’s post the next step is a series of demos showing a more advanced use of the engine. Of course, if you want to get a better idea of what our product is worth, register for the beta and test the product by yourself! And if you make your own review of our product, we’ll be glad to post it here.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

In the first post of this blog we’ve introduced briefly our simulation engine. Now we are moving closer to the release of the first beta version of this engine and it’s time start talking about what’s coming next. And this is the SimplyCube.

SimplyCube logo

The SimplyCube

The SimplyCube is the real commercial name of our product offer; it is composed of two elements: the simulation engine, and a set of editors. The SimplyEngine is for software developers, and though we’ve made it as simple and easy to use as possible, creating a full simulation scene is always much easier with graphical edition tools. Each of these editors addresses a specific aspect of creating a 3D application. Used independently they allow precise tuning and customization of each element of a real time 3D scene. Used together they allow quick editing of a complete simulation scene, with no specific knowledge of 3D software development. Today we’ll present the first four editors we’ll release:

SimplyEdit

The SimplyEdit

The SimplyEdit, is our 3D scene editor. This is the central tool where you can set up the 3D scene. From the definition of the basic setting of the scene (ground, water, sky) to arranging objects and light sources in the scene to finally setting up the last details before importing the scene in your application.

Here’s a quick list of things you can use in this tool to define the scene:

  • Terrain (ground, water, underwater, sky)
  • Objects (we can import any model created by Autodesk software, more detail in “asset compiler”)
  • Lights and shadows (several lights and shadow type available)
  • Sounds (2D or 3D sound sources)
  • Post processing effect (for advanced rendering)

The edition possibilities of SimplyEdit are however kept simple, to keep the user interface understandable, pleasant and easy to use. For most of the simulation elements, you’ll simply have to choose between different options in a list. For example the 3D model are not created or modified by the SimplyEdit, you can just choose which model to import and where to set them up in the scene. Of course we leave you the possibility to control and edit things more in depth, but this is done separately in the other editors (to keep our example, to define in detail how a specific 3D model should look, how it should react to lights, you’ll have to use the SimplyShader editor).

Asset Compiler

The Asset Compiler

The Asset Compiler is an essential tool to import assets in our simulation engine (a first version of the Asset Compiler will be available in the beta of the Simulation Engine). It can process any 3D model file in the .FBX file format, which mean you can import any 3D model created by Autodesk 3D edition tools (Maya, 3DS Max …). We are also compatible with the .X file format so you can import any XNA compatible 3D model. The asset compiler can also import textures files (images in BMP, JPG, DDS…) and shaders (.fx) created by FX Composer (Nvidia) or Render Monkey. This ensures two important things:

  • You can rely on the high quality creation tools of other software editors (Autodesk, Nvidia, AMD…)
  • If you have already existing libraries of 3D models, you can easily import them in our tools.

SimplyPhysics

The SimplyPhysics

The SimplyPhysics editor is a unique tool to define every physic property of a 3D object. As we’ve seen before, accurate physic simulation is essential, as it guarantee the realistic behavior of objects in a 3D scene. To ensure this accurate physic simulation, it is essential to define the properties of every 3D objects. With the SimplyPhysics, you can define:

  • The mass/or density of any object
  • Simple collision shapes for accurate and efficient physic collisions
  • The physics properties of objects (damping, inertia, force and torque)
  • The material properties of objects (friction, elasticity)
  • Joints (to create complex physics objects)

It is important to note that thanks to our multi physic engine support, the properties of the objects are defined for every physic engine in a single editor. Of course, the 3D models we provide with our simulations are already set up with correct physic settings, so if you’re a novice user you can create simulation without having to bother about physic concepts.

SimplyShader

The SimplyShader

The SimplyShader is an edition tool where you can define and configure the “shaders” that affects a 3D object. “Shaders” are advanced 3D graphics techniques that enable very realistic 3D rendering in real time. In the SimplyShader you can add details and texture to an existing 3D model, set up the way the object react to light, or the reflection of an object. Here is a list of the type of “Shader” you can define in this editor:

  • Multi layered surface
  • Normal and Parallax mapping (add relief to an object)
  • Self illumination (for object that are also light sources)
  • Reflections
  • Specular mapping (define the way the object react to light)

Upcoming editors

We have several other editors planned for 2010, 2011 and 2012, they will bring new easy edition capabilities and give you more control on the simulation. We’ll announce them on this blog.

Real time 3D simulation scene created with the SimplyCube

Real time 3D simulation scene created with the SimplyCube

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

Since the beginning of 2009, we’ve been busy working on a new product to increase dramatically the realism of real time 3D simulations. I think it is now time to start showing the first preview of this new product… In today’s post we’ll talk about the driving ideas behind the product, why we created it, and the early conception choices we have made.

3D urban environment by SimplySim

Realism is more than just nice looking 3D

Since we have launched our company, our mission has been to bring the most realistic 3D simulations to our customers. 3D simulation consists of creating a virtual model of a real life (or hypothetical) situation, usually to study it (there are other uses of 3D simulation technologies that we will discuss in another post). Realism is of course the goal of anyone who develops or uses a simulation.

3D graphic realism can be stunning nowadays but it represents only one element of realism. 3D is only a tool, which should be made as useful as possible for the real aims of the software application. When we decided to create our simulation engine, we had of course graphic realism in mind (and I think the screenshots tells enough of what we have done on that point) but more importantly we had identified other essential aspects of realism for our product.

The SimplyEngine is what we like to call a “3D simulation engine”, that is the core software on which any real time 3D simulation can be built. We decided to call it a “simulation engine”, because it is not only a nice looking 3D engine, but it includes important elements for physic realism and for software and hardware interactions.

Physic simulation

Our first 3D simulations were made for robotic simulation. Testing and validating the behavior of a robot in a 3D software application is a challenging task. One essential aspect of this challenge is physics realism: creating a simulation where objects behave realistically, where they are liable to physic laws.

When we created our product, physic realism was one of the key priorities. We have created a full software library dedicated to it, with among other thing the ability to use any of the physic engines available on the market (NVidia PhysX, Newton Game Dynamics, Havok, ODE…).

Interactions with software and hardware

As I was saying above, we really consider that 3D technologies should be a tool. A tool that can be applied to many problems and that therefore should have the ability to interact easily with many other elements (software, hardware or human beings) to create a solution.

Our 3D simulation engine is based on a service oriented software architecture that has been designed to make every part of our product easily compatible with any other software application. We’ll discuss in an upcoming post the benefits of our service oriented software architecture.

Ease of use

Finally, we believe that the user should always be the main focus of any software application. That’s why our developments are focused on the ease of use of our products. Our goal is that any software developer should be able to use 3D technologies in his applications, and in ways relevant to his business needs, without any specific formation. Again it will take another post to tell you more about the efforts we made on the ease of use… stay tuned! :)

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.