authoring systems

Wow, what an exciting time for real-time 3D enthusiasts!

UDK

Epic released the UDK for PC: the Unreal Development Kit based on the famous Unreal 3 Engine! For non-commercial/Edu use it's totally free. And for commercial use there is a very reasonable and transparent pricing:

  • Internal Use: 2.500 US $ per developer seat per year
  • Publishing: 25% royalties for revenues above 5000 US $
  • Internal Use may stack with publishing thus: per seat per year plus royalties

You can read it directly on their site. Checkout the features, here some highlights:

  • SpeedTree included – with editor
  • global illumination solver
  • Bink Video Codec
  • Animation is driven by an AnimTree
  • animated Facial normal maps using a visual scripting system
  • slicing of objects for physics-based destructions
  • distributed assets processing
  • automated creation of navigation meshes for pathfinding
  • visual shader creation system
  • and much more of the "usual" Unreal Engine stuff 😉

Another YAY 😀

One important note though: this is basically the modding access. No source code access. So this may mean that if you can't script what you need, you won't be able to implement it.

GarageGames has released it's new product Torque3D last week. Time to have a look at it! :)

I've to say, that I never used GaragesGames products before. Correct me, if my first impressions are wrong.

Installation and Startup

Let' begin with the first step: installing: went smooth except it defaults to a target directory right under C: instead under program files. Moreover it doesn't prompt for the start menu location. Things that a modern installer shouldn't do anymore.

GarageGames kinda remained to it's used scheme: a start dialog, called Torque Toolbox, allows to select the project and then what editor to launch. It's not a all-in-one editor approach but world-editor and GUI editor are separate. What I like is the list of all available projects, as it allows to switch between different projects quickly.

Torque3D Toolbox

Instead of starting with the demo project, I start with a blank one as it forces me more to explore and trying out things – and thus might to things that are unexpected. Creating a new project shows a confirmation dialog that is unfortunately not big enough to display the whole message (target path).

Editor GUI

The world editor consists of one window with a custom GUI inside of it. It's not possible to tear off GUI elements for a secondary display. On XP machines this is bad for dual-monitor setups in non span-modes. On Vista the 3d acceleration works a little better on the secondary screen thus it might be less a problem in future.

Using the Function-Keys one can toggle between different editing modes: terrain sculpting, terrain painting, material editing, world editing etc. Depending on the editing-mode an "inspector"-like dialog on the right side adapts it's content. Unfortunately that inspector-window doesn't snap to the right side – it's aligned and sized correctly for the startup window size, but upon resizing the main-window it doesn't adjust automatically. This is not so good.

Torque3D Editor

As I said, the GUI system is custom (except the main menu bar). It can be scripted and therefore the editor itself can be extended via scripting, which is a very nice thing. The GUI itself looks quite good and comes with resize-able panes and collapsible panels. Also the color dialog is good. Windows or panes also snap in range of each other but as said, there are no real docking areas. Editing values like vectors in the inspector is not so good. It's merely a text field with all values listed and separated by a space/blanc character. It seems that there is no way to "slide" values using a separate-gui-handle or a right-click drag operation. This makes tweaking very ineffective.

Moreover the keyboard shortcuts do not take localization into account: undo is on the German keyboard not CTRL+Z but CTRL+Y. But the good news is, there is UNDO ! :) 

Scene Navigation and Object Transformation

Navigating the scene is easy with the WASD controls and the mouse. Unfortunately there is no speed modification by holding the shift key while flying but there is a slider in the GUI that allows to adjust the speed, … good! Besides the fly-mode there is also an orbit mode. Sometimes the camera does reset it's position and orientation to suboptimal distances when switching between the modes – this gets annoying pretty fast. It is possible to define "view bookmarks" which is nice and not often seen in 3d authoring tools. Using the 'F' key, you can focus the view to the selected object – like in Unity.

Very nice is the 3D transformation handle/gizmo/manipulator. It also includes handles for translating on a plane – like in 3ds max. But it requires to pick it up quite at the corner, which is not so optimal. There are also snapping tools and a mode to snap the object to the terrain surface, very cool! You can also toggle between the object's bounding-box center and the object center, which should be the pivot point. Holding shift while dragging and object, creates a clone – nice! Switching between transformation modes is fast with the key 1 to 4.

Materials

Materials seems to be based on a uber-shader. Therefore is quite easy to tweak materials – unlike in Unity which has a powerful shader-system but when one is wanting a material-variation where it's double-sided or using vertex-colors, it requires to copy the shader and modify the shader code of the copy manually for the desired effect. A couple of features like glow, specular, detail map, normal maps etc. are just check boxes thus very easy to enable/disable for a selected material. Torque3D offers max.  4 layers / 4 passes per material. It's maybe not that customizable, but really easy to setup. Moreover it already includes frequent aspects like specular or normal maps, emissive color and transparency.

Torque3D Material

Creating new materials seems to be not very intuitive with the material editor. I often tried to create a new material but somehow it was never stored properly. Better is to tweak an existing material, but even with this I had problems. I wanted to modify or change the material of an imported object and switch to the object-editing mode, called Shape Editor. But even there I had not much luck. It's a bit confusing as the GUI obviously allows actions that are not valid. Also terrain materials can't be created in the Material Editor Mode but have to be created via a separate terrain operation that is listed in the main menu – i.e. via "import height map". So let's go with terrain creation and modification.

Terrain

When you import a height map, you have access to the dialog where you create material layers and their textures. Unfortunately it's a bit buggy as it allows tweaking of the texture slots without creating a layer and sometimes material names are not saved back into the channel list. Deleting a material there seems not to be possible. Some text labels are not very well named: "texture maps" would be more descriptive when called "masking textures" or something like that. Luckily the documentation is already quite good and also features the very important search functionality.

Blending between terrain-materials happens on a per-vertex basis, often also referred as "texture splatting". I like per-pixel blending but per-vertex blending allows cover bigger terrain chunks. Unlike in Unity, Torque3D can't smoothly blend multiple materials upon each others. It does blend in a linear way between material "tiles" but you can't mix. This is not so good, as creating terrain texture variation becomes more difficult.

Terrain blending

Terrain materials consists of a diffuse map that gets stretched across the whole terrain mesh and a detail map that is blended in at a specifiable distance from the current camera position. Moreover you can define an additional normal map for the detail.

Paint brushes allow to paint materials or terrain height easily. The brush size can be resized on the fly by holding CTRL and using the mouse-wheel. Unfortunately this also zooms the camera at the same time. Moreover the brush size value doesn't get updated in the GUI. Otherwise the change can be changed via the GUI. Also not so good is the maximal brush size of 40 units. The painting or sculpting process works very smooth – no performance problems! In Unity I sometimes had it working less smoothly. Also nice are two slope filter options, so painting only happens in the specified slope ranges. What should be added though are presets for fast switching or memorizing values, plus noise/blur functionality as hard filtering doesn't always give a nicely blended material distribution in transition areas.

I tried to import a height map but that failed. It says to look into the console for further details but I have no idea how to open it!!!

At the distance the terrain LOD sometimes gives slight shading artifacts on slopes due the vertex-lighting. The triangulation can become noticeable at distance, but no "popping" effect occurs. Also no cracking holes at cliff-like mountains, something I sometimes saw with the Unity terrain.

An interesting feature is the possibility to project terrain UVs from the sides for a specific texture. Unfortunately there is no instant feedback when editing properties of terrain materials, one has to close the dialog to see the changes. It's classic GUI mistake – instant feedback allows faster tweaking!

Rivers and Roads

Let's get to something nicer: road and river creation tools based on splines! You can change the edit-mode to create decal-roads, mesh-roads or rivers. Decal roads are a flatly extruded shapes along a spline path with a decal texture. Creating paths for roads and rivers, is ultra easy and fast. Simply click on the terrain where you want the next curve-node to be. The spline can be tweaked afterwards: move, remove/add nodes or changes the width! When creating rivers, holes between the river surface and the terrain surface gets shaded red ( in editing mode), so you instantly see layout-errors, nice! Rivers have a refractive and reflective material with mesh and normal map deformation for waves. They also have a foam texture at their borders but it's unfortunately not smoothly blended out at the borders – thus on beaches it might get a hard cut.

River Waves Spline-Based Roads Bridges

The "mesh-roads" also gives height to the roads. This can be used to also create bridges fast. What I am missing (or I simply didn't found out how to do it) is the possibility to use transparency for decal based roads, so they can be made to blend it's edges smoothly with the ground. Imagine using it for paths that don't have sharp shapes.Sure, you can paint paths, but using decal roads might have it benefits, too. The reflections of the river may become unaligned, if the rivers flows quickly downhill (strong slopes) – but that's not surprising. 

Btw. the trees you see in some of the screenshots are COLLADA files that I downloaded from 3DVIA. Adjusting materials is not always straight forward but over all it works painlessly. 

 To be continued …

Last week I posted part 1 where I talked about Shaders, Lua and Blendshapes. I'd like to add to the LUA subject, as it seems to be a commonly asked question, that there are no additional tools in the SDK to deal with custom LUA bindings. The docs suggest to use available solutions.

3D Compass

The 3D Compass is a translation handle/gizmo like many of us know it from other DCC (Digital Content Creation) tools like 3ds max or Maya. The good thing is, that it includes handles for translations on planes too (unlike Maya or Unity3D). I really miss them in tools that only provide translations along one axis.

 

If you look at edges of the pane-translation handles, you will notice an additional arc. These can be used for rotations. I like this solutions, a good enhancement! The yellow pivot does not do a 3-axis translation (I never liked those!) but uniform scaling. This also is a good approach. So overall it's a bit like a universal transformation handle. Therefore there is no variation for rotation-only or scale-only modes. Which means – unless I overlooked it – there is no way to use the 3d compass to do a non-uniform scaling.

Another good addition is the ability to clone easily the selection by holding SHIFT while translating. It does a duplication with few dependencies – the 3d entities get cloned with attributes but not the mesh etc. Good for building content/levels.

The 3D Compass works with the available coordinate systems: local, global, view, parent. (About the ref. guide I am not sure). Something that didn't work yet was the angle snapping when using the rotation handles, but maybe that was fixed for the final release. If not, use the old method. Something that wasn't yet possible too, is the ability to show/hide the 3D compass as in some situations it might be disturbing.

Enhanced Content Protection

VSL code and Shader code can now be encrypted and therefore shared without knowledge transfer. This allows to create a more solid commercial environment for 3rd party component developers and freelancers/consultants.

Protecting scripts

The password can be specified in the variable manager. Having the correct password allows to decrypt (unprotect) the content. I don't know how solid this is but at least it's one more level of obfuscation and should be good enough for most cases.

For some unknown reason are LUA scripts excluded from this protection scheme. Another problem is, that you can't select multiple items in the editors and un-/protect them all in one go. While the Shader Editor handles at least the first selected item, the VSL Editor just doesn't react. So going one-by-one is not very effective, when dealing with more complex content.

New Building Blocks

XML: When Dassault Systemes added XML BuildingBlocks to Virtools 4.0 but restricted them for deployments for VR/XE/Office players I thought "Oh my!". I mean, if you want to create some interesting online content XML as document-format standard is just omni present. For example WebServices. Looks like Dassault Systemes finally became aware of this and now the XML BBs can be used for Webplayer projects too. Personally, I've only tried to use them once under 4.0. They didn't seem to be very stable  (which might have changed in meanwhile) and I ended by dropping them in favor of a custom VSL solution. Anyways, it's still a good addition that should have been done much earlier.

Thus from now on, they can be found under Narratives/XML Parser. The good thing is, that it can be used via VSL too. Moreover there is a visual XML Debugger window. The documentation could be better, I think, especially as the usage is not always totally clear – for example "XML Load Document" may fail but without any hints why.

XML building blocks

Content Processing: I couple of new, useful BBs for examining and processing content: Merge Materials and Merge Textures (to find duplicated/identicals inside a group), Hierarchy Parser Upwards, Dependency Parser , Is Child Of 2D/3D (checks the entire hierarchy upwards)

Camera Movement: Pick And Pan BB, Pick And Rotate, Camera Zoom Extend

The basic idea of BBs for common operations, especially for configurators and the like, is nice. The execution of that idea is "suboptimal". First of all in the beta version the Pick BBs ignore a 2D hit. This means that while a user interacts with the GUI, he might modify 3D content that is hidden behind the GUI without intention. A developer would thus manually check for a 2D hit and deactivate the behaviour, making the "out-of-the-box" idea less effective (less fast 😉 ). The pick and rotate BB rotates a picked object along all 3 axis. No idea where this is useful, because reorienting an object towards a desired orientation is very hard to achieve this way, I think. It would be more universal (= fits to more use-cases) if it has options to constrain it to one axis.

Is Key Down BB:  LOL, finally! No more to say about that 😀 I guess everybody had their own custom solution for that (i.e. via VSL )

Set World size BB: resizing a 3D entity by giving the desired world size.

Spherical/Cartesian coordinates converters: the spherical coordinate consists of a vertical Angle, a horizontal Angle and a distance value. It sounds interesting and I wonder for what user-scenario these have been designed … GeoInformation systems? It also sounds like that we could simulate the content in 2D and display it on a spherical surface i.e. pathfinding and move-to, using the built-in solutions which might be difficult otherwise. Here two images from the Virtools documentation showing the coordinate systems:

2D Texel = Screen Pixel BB: this BB adjusts UV coords of 2D entites to fit texel/screen pixel ratio, a bit like screen mapping. The docs says "This is particularly useful to ensure sharp 2D GUI display by avoiding resizing artefacts".

To be continued …

Ok, I think we covered the major new features so far. In the 3rd part there will be some more and a final conclusion. 

Shaders

If you have been writing PostFX shaders in Virtools, you may have waited long for this, but here it is: overriding techniques for rendering into RenderTargets!!! You can has Tron, yay! Here's a simple example for a masked glow PostFX:

Masked Glow

Overriding techniques allows you to specify a technique name that shall be used when rendering the scene using the Render Scene in RT View BuildingBlock. Previously one was only able to use one shader/material for all objects. That's ok for some tasks but if you need need per-material masking, there was no easy way for doing so. I first expressed the need for a better way in 2005 – that's 4 years ago! In 2006 I tried manual techniques switching and hit another barrier. Now, finally, it's a smooth process. Better late than never!

Some help with hiding or unhiding elements of the scene (i.e. something like RenderLayers) has unfortunately not yet been added. Also some other aspects like include management still needs improvements.

There are a few new shader semantics available:

AlphaTestEnable, AlphaBlendEnable, AlphaRef and for OpenGL only: SingleSided, DoubleSided

If you check the SDK, you will  find traces of WIP (work in progress) for shader-based shadow maps: a new shader semantic, a new BB, a new Rendstate and maybe a future built-in shadow-shader. You will also notice that support for hardware shadow texture formats has been added.

LUA

LUA has been added as scripting language. LUA is a widely used scripting language in the games industry. In contrast to VSL (Vitools Scripting language) LUA is not strongly typed and not JITed (Just-In-Time compiled). It's therefore to be considered to be slower than VSL. So why add it? VSL is very focused on implementing new BuidlingBlocks via scripting. It's not very strong with custom data types and working in a global scope is very limited.

Moreover not everybody likes to use the concept of Schematic Programming. By using the SDK it's possible to bypass it, but of course it makes development slower again. Using LUA one is now able to script a game without using the schematic a lot. This is possible because all LUA scripts share the same context. ( A bit of schematic is still a required though).

As LUA is known by a wider audience, new (script) developers can pick up 3DVIA Virtools much faster without worrying a lot  about the schematic. A good example for this are the 2 last adventure games by City Interactive. Moreover there is a new example game (a BoulderDash clone) entirely writtin in LUA. I think it's also a good starting point for Virtools users that still need to learn LUA!

Lua in Virtools

As LUA is a dynamic language there is no help from a compiler but a button for checking the syntax is available. Setting breakpoints and stepping through the code is possible! There is a small input field in the right side of the toolbar for calling LUA functions directly but i think it's a bit small. From my Maxscripting experience a big input console that allows to prototype interactively is a big plus and hopefully it will come in a later release.

You can't yet use LUA for action scripts and therefore you don't have direct access to the selection. But using the run-button LUA scripts can be executed at any time in authoring mode too.

Personally I am not much attracted by the LUA syntax. Further more I saw some articles on how to implement OO in LUA and they scare me off 😉 Currently I think using C# as embedded scripting language is my favorite! AngelScript recently got simple inheritance and interfaces – it's also a strongly typed language with JITC – might be an interesting alternative to LUA and Co.

The LUA editor control is the same from the shader editor and VSL editor and thereore suffers from the same problems i.e. long scripts slow the entire editor down (due it's slow syntax highlighting I guess).

Blend Shape Support

Blend Shape Support basically means morph targets mixable with skinning (bone-based deformation). So you can have facial animation or body deformations/customizations using morph targets ( blend shapes in Maya) at the same time with your standard bone-based character animations.

Probably most people will think "finally facial animations!" … yeah, cool … but I think you can do much more with it…

😎

What about muscle deformation? Here is a simple example of what I mean: an arm deformed by bones can be morphed simultaneously to bulge it for the muscles effects …

Above you see two arm entities, both are referring to the same mesh, but one is using the morph weights differently. The great thing is: it's still only ONE mesh. You don't need to copy the mesh for each entity! Thus it even works independently for GPU skinned characters – only one mesh and full individual weight control .. I tested it and it seems to work!

Currently when exporting from 3ds max, you need to do a "export selected" that excludes the morph targets otherwise they will be added as additional body parts. Hopefully in future those will be detected and skipped automatically.

I think this is probably one of the new feature that really gives a solid advantage over other 3d authoring solutions! Flexible and simple workflow, nice!

To be continued …

There are more new features but it's getting late (bedtime!). Please note that this is beta experience and some things might be different with the final release. I hope it gives some more insights about 3DVIA Virtools 5's new features as benefits are not always clear via a plain listing of "what's new?" items. Feel free to add informations or to ask questions. Till next part, cheers!

This posting could be considered to be a response to this comment of RS. He mentions esperient Creator and Maya Real-Time SDK and asks for opinions… here we go:

Maya's Real-Time SDK

I remember the news about Maya's Real-Time SDK but I never had a look at it in order to see what actually it is, at that time. After so many years (6 – 8?) it doesn't seem to have had any impact or long-term visibility. I guess it's ok to say, that today it's not a real option. A good documentation and a good online community helps a lot during production, thus these are things to consider. So let's have loot at the other product mentioned …

esperient Creator – intro

esperient Creator actually was once Cosmos Creator by Radish Works ( in 2003?). I remember that I once downloaded a trial and had a look at it. I felt more comfortable with Virtools therefore I never dived deeper into it. Already at that time it had plenty of toolbars! Here's a screenshot from it that I found on the old Radish Works site. Compared to the actual version, it looks nearly the same:

cosmos creator

Later it became acquired my Righthemisphere in 2004 and renamed to Deep Creator. I think they raised the prices, too. GameDev.com has a little review about it: Deep Creator 2.2 

In 2007 rights were transfered back to the original author(s) and they released in 2008 esperient Creator 3.0. Recently they released 3.5. So this thing is under active development.

Here, a part of the little story behind the name (taken from their blog):

The name is based on the Latin, Spero, meaning ‘I hope’ that has come into present day French as ‘Espere’ (vb) and Italian as ‘Speranza’ (n). So, in addition to meaning that we provide hope to our customers that we can solve their content and publishing problems, it also has the similarity to the word ‘Experience’ which is a great reflection of the team!

Now let's go into product details, we start with the …

Impressions from the online marketing material

Interesting aspects extracted from the available online material

  • cheap seat prices (currently around 500 US $)
  • free runtime viewer (no additional publishing fees): PC and webplayer (IE only)
  • C-like scripting
    • looks like it has break points (p.s. I was wrong, it's macro recording)
    • syntax highlighting
  • powerwall support
  • built-in physics (Newton engine)
  • upcoming feature: procedural image creation ( with CUDA support?)
  • built-in primitives
  • real time reflections, SSAO, advanced render to texture, object grips on 2D and 3D objects
  • HLSL Shaders
  • Animation Timeline Editor

Ok so far for the theory and the promotion material. Let's have a hands-on their demo!

Editor Window Management

The GUI has a standard windows look. It uses a couple of toolbars, that are rearrangeable. Very nice is that it uses docking panes, so you can arrange your layout like in Visual Studio and other modern application. Right-click on the title region of a pane allows to convert it to a register tab, a floating pane or a docked pane. Making there the pane to tab, puts it into the main, central position as tab. But you can also manually drag a pane into a center of another pane in order to add it there as tab. Tearing off docked panes requires a long drag off, which is a bit less intuitive.

On the left side you have a docked toolbar that allows to show/hide specific panes like script editor, scene materials etc.

esperient creator UI docking

The modified layout is automatically saved and used on the next startup. Moreover you can save and load UI layouts to/from files. In addition to that you can use different MS Office themes. I guess it's using a 3rd party MFC extension that brings all this functionality. Unfortunately none of the themes is really appealing to me. The grey of the default theme is not dark enough (I guess especially here under vista). The "Office 2007  Obsidian" style is dark but the toolbars are using a brighter background colour and therefore pop into your eyes – distracting. I guess adding a couple of variations around this theme might be very satisfying. 

dark themed GUI

Viewport Navigation

The viewport navigation is pretty easy:

MMB = Pan
Alt+MMB = Rotate
RMB = Zoom

I like it. In addition to these there navigation icons are on the right top corner of the 3D window. You hold LMB on such an icon in order to do the viewport translation. Similar to Lightwave and maybe also Cinema4d (?).

To change the view to another perspective you can use 3ds max like shortcuts like (P)erspective and (F)ront. The viewport can be switched to a 4-view mode using the space key. Dragging the middle of the 4 views allows to resize the views on the fly. You can also easily drag them to a border and get 2 views this way – works better than in 3ds max, hehehe 😉

several 3d views

I haven't found a "rotate around selection" mode. There is a "focus/zoom on selection" command but it's not bound to any key. You can define it via the settings, though you don't have total liberty of what key (-combo) to use. But CTRL+F, as example, works.

Selections

There are several selection modes like single-object, rectangle, cycle, polygon etc. Using the 'q' keyboard key, you can toggle between the currently active transformation tool and the selection mode, but you can also select while using the transformation too.

Area selection tools seem a bit hard to use because if they hit an object right on the first click, they select that one and ignore the dragged area. If you are in transformation mode you actually start i.e. moving the object under the mouse. Thus it makes area selections not that solid.

Selections can also be done in the "Secene Objects" window. Selections in the Viewport and the "Scene Objects" window are in sync.

Transformations inside the Viewport

The editor has 3d gizmos for doing in place transformation like scale, rotate and translate. The gizmo itself acts a bit like a "universal gizmo" – arrow-heads
do translations, dragging the white connectors enables the rotation mode and using the center does a uniform scaling. Something very good is, that they have handles for 2-axis manipulation, too. I think it's save to say that it's more like "3ds max" than Maya.

There is also something called "grippers" and which are similar to 3ds max's "manipulators". They are gizmos that allow to modify object properties inside the viewport. For example the angle of a sliced sphere or it's resolution/tessellation.

Transformation gizmo and grippers

Several snapping modes are available: grid, face, edge, vertex, pivot, angle etc. When snapping to a face or edge, it's not always clear what's going on – some visual cues would help.

Changing between different modes otherwise is not always intuitive. Sometimes I got into the pivot-move mode although it was not intended.

There are two coordinate-systems: world and local. Local transformations via the gizmo seem not always to work properly.

Material Editor

The material editor allows you to edit and create new materials. On the left side there is the list of materials and on the right side are the properties of the selected material. Unfortunately is the right side not scrollable, so if you dock that window at the bottom with not much height, you won't be able to access all the properties.

Nice is that you have a quick access to the textures via a texture-browse. Unfortunately it seems a bit slow and there is no mechanism to classify your texture content (which could speed up loading times, too). It combines all texture directories, i guess. Using the asset browser you have a better overview and control.

A material consists of several "stages" which can be added at will (up to 8). This is nice because if gives probably more flexibility and control than i.e. the old Virtools Texture-Effect approach.

Material Editor and colour picker

Something that I do not understand is why they use biiig buttons for the colours. There is a coloured, filled rectangle showing the actual colour, why not use that as button and have this big thingy taking screen space? Also, choosing a colour inside the colour-picker dialog does not change the colour of the material immediately, one has to close the dialog with OK. Interactive colour tweaking is thus not possible and makes adjustments more time-consuming.

Final words on the editor

The editor has some strong points: transformations gizmos, layout and theme customisation etc. Although they have a pop-up slider widget for interactive number adjustings, colour adjusting is not interactive. Moreover some areas require a minimum space which reduces the editor layout flexibility artificially. Funnily, there is no "recent files" list. On the other hand there light-setups presets! Thus "not perfect, but the overall impression of the editor GUI is good!".

Number slider

Ok, that was a lot of talk about the GUI editor itself. But this is how I approach such products. If you are under time pressure, you need solid tools and workflows. Best is, if you can "re-use" some of your knowledge from other tools. In this case being 3ds-max-like or Maya-like, in some areas, helps

Scripting

I am kinda sorry, but this section is going to be very short.

There is an interesting looking script editor. I think it uses the free source code editing widget called Scintilla. Thus it's probably going to be a smooth editing experience. Scripting can be done in Lisp or CScript. If you look at the image below, you can see in the top left corner a list of callbacks. On the top right, there are global variables. For example you can reset your variables inside the the "SceneBegin" callback.

script editor

I was looking for a way to add "custom scripts" to objects but it seems that there is no such concept like attachable scripts or components. Besides using the callbacks, you can add something called "animations". Here, animations are not only keyed transformation data, but also "behaviour" code. For each scene object, there is an "animation" register tab. You can add new 'animation behaviours' from a list of pre-made behaviours.

animation behaviours

I am not sure, but it seems that you cannot script custom 'animation behaviours'. Thus you need to combine callback scripts with the pre-made animation scripts. In addition to that you can add "separators" to divide the list into sections, but not do any real grouping to create re-usable components.

If you look at the scripts you may notice that there is a lot of state checking going on. This clearly shows the problem of not having a higher level logic-management, or not being able to attach custom behaviours that can be enabled or disabled from a 3rd, a 'managing', component.

Non-programmers probably can create some basic interaction without the need of programming knowledge as the 'animation behaviour' parameters allow to select events and targets. But I guess at some moment things can get a bit messy. For scripters, the environment looks a bit inflexible, restricted. You can add custom c++ plugins, but I don't know how much this helps.

Please note, that all these are personal impression – I might be wrong OR the way it works is just fine for you,

Resume

I am not sure for what kind of target audience this is aiming for. It's a bit of everything: a bit of 3D DCC (Digital Content Creation) like 3ds max and a bit of interactivity authoring. It certainly a couple of times cheaper than Quest3D or Unity3D and plenty times cheaper than Virtools. Thus it might be a solution for little projects that only need basic interactions.

If I made mistakes, please correct me. If you are producing with this product, please feel free to tell us about your experiences. For all the others, I hope was an interesting read and helps.