Search Unity

3rd Eye Scene

Discussion in 'Works In Progress - Archive' started by kaz-csiro, Dec 2, 2016.

  1. kaz-csiro


    Dec 2, 2016
    Hi all,

    Today I would like to share a little with you about the 3rd Eye Scene Open Source project. This project uses Unity to create a "Visual Debugger" client application, coupled with some C# or C++ server code to be integrated into the application being debugged. The viewer can be used to visualise real time 3D data which are normally hidden - such as the physics world or game AI - or to visualise 3D data in code which is unable to easily render and visualise those data. Most importantly though, the viewer supports recording and play back, including pausing, scrubbing and frame stepping.

    The project came about when I tried to find an easy way to visualise some geometry processing algorithms I was working on. At the time I could find no such visualisation tool which was not tightly bound to some other SDK. The Robot Operating System rviz came close, but is not Windows compatible.

    The project is at a point where I've found it usable and indeed highly useful. With it I've been able to easily view intermediate processing states and quickly identify issues where I would otherwise have spent hours staring at and interpreting pure numeric values. Whilst I'm using 3rd Eye Scene to debug geometry algorithms, I have also experimented with integrating a 3es server into the Angry Bots Unity demo. (I am aware that the Unity team are currently working on a similar project for viewing the Unity physics state).

    I've worked on games in the past, so I see utility in both geometry processing and in games development. I currently see the potential use cases as follows:
    • Visualisation and inspection of geometry processing algorithms.
    • Real-time visualisation of physics state, AI and other data normally hidden from the player.
    • Recording QA testing sessions to attach recordings to bug reports.
    Of course, images and animation can say much more than text, so here are two for your ocular delight. The first animation visualises a sphere tessellation algorithm. The second one is a small excerpt of an Angry Bots recording.

    I invite to you to head over to the to view the documentation or to for the source. Have poke around and tell me what you think. I'm currently looking for comments around the following questions:
    • Is the purpose of the application clear?
    • Would you consider this a useful tool to integrate into your project(s)?
    • Are the build instructions concise and correct?
    • What key features do you think are lacking? Please have a quick look through the todo.txt file before commenting.
    There are also some general features of note in the code base which may be individually useful:
    • An UnityEngine.UI implementation of a FileOpenDialog based on the Windows Forms API. Supports both true and specialised file systems.
    • A reflection based, UnityEngine.UI properties editor (simple types for now).
    • An Eye Dome Lighting (EDL) shader. This is a depth based, post processing effect.
    I look forward to your feedback.