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.

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.

In today’s post we’re going to discuss the technology we use to create our real time 3D simulations, and what we think of these technologies. This inside look should also give you a good idea of what to expect from our products.

SimplySim realistic real time 3D simulation

real time 3D urban simulation using the SimplyEngine

Easy and rapid programming: Microsoft .NET

As we explain in our introduction post on our product, one of our goals is to offer you a product that is easy to use, to enable any developer to benefit from real time 3D simulation technologies. As developer ourselves, we already had an idea of what “ease of use” can mean for a developer, and that led us quite immediately to the choice of Microsoft .NET

As we wanted performance and quality 3D rendering we didn’t had many option: standard C++ or .NET (java was clearly not an option). Then the choice was easy: .NET had two major advantages, the first was for our team: .NET meant that we could develop more rapidly and efficiently (and Visual Studio is an awesome IDE). The second and probably most important advantage is simply that it would be the same for our customers! Plus they can choose their programming language in the variety that the .NET framework offers (as for us, we use and recommend C#).

Graphic engine: Microsoft XNA

The choice of XNA as a graphic engine came quite naturally too, it’s using direct X 9.0 guaranteeing performance and nice 3D rendering and it’s on .NET. Plus we liked their asset managing utility. We’ve tested many other 3D engines in many programming languages before, and XNA is, for now, our choice.

Editors interface: Microsoft WPF

An important part of the “ease of use” (or “simply spirit” as we like to call it) that we wanted in our products meant that we had to design efficient user interfaces for our editors. That led us to WPF, mainly because we liked the freedom we had to design our interface combined to the ease of use of the technology.

Software interaction: Microsoft CCR/DSS

We first discovered Microsoft CCR/DSS when we started to use Microsoft Robotics Developer Studio, and we just love this technology. We had already played a bit with the concept of “service oriented” or “component oriented” architecture before and DSS is a really nice implementation of these concepts, while CCR offers a very smart way to solve concurrency and coordination problems. We’ll discuss more about this in a dedicated post, but to sum up the main advantage of this technology for us it to enable our 3D simulation to be really easy to interface with any other software application.

Physic engine: the multi-engine option

As you’ll have understood if you watched our first demo of our UAV simulation, physic realism is really important in our product. So we’ve had a look at all the different physic engine available on the market (PhysX, Newton, ODE, Havok, and a few others) and after an in depth review, we decided not to choose. In fact these physic engines have not been created for the same purpose, and they have different strong points. Some have very good performance with a lot of objects, some are really focusing on the accuracy of the movements, others are designed for fast moving objects… and we felt that the choice of the physic engine really depended on the type of application. So we’ve built the SimplyDynamics, a software library that gives you the opportunity to choose the physic engine you’re application is using. And as it might not be evident which one to choose, you can make this choice at the very last moment: at run time!

How we got it all for free: Microsoft Bizspark program

Finally another thing we like about the technologies and the tools we use is that we’ve access to it for free. We’re member of a really cool program called Microsoft Bizspark that helps innovating startup by providing access to Microsoft software, support and visibility. We had already chosen Microsoft technologies for our development because it answered really well our needs, but Bizspark membership clearly made things easier.

SimplySim is a BizSpark StartUp

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