Coffeehouse Thread

15 posts

3-D Code Tools

Back to Forum: Coffeehouse
  • User profile image
    jsrfc58

    Are there any 3-D code tools out there?  What I mean by that is, tools that let you look at code in 3-D sort of way, as in, showing how different elements of your code calls other elements...by displaying "connecting lines" and boxes for each function (or subroutine, depending on your language).  What I would also like to see is the ability to "rotate" that program in 3-D space.  Basically, pretend that a small program (for example) is a series of interconnected "panels" that you can view from any angle.  My thought is that this *could* lead to better ways of building code, or seeing ways to make it more efficient, or even new types of functions, instead of reading through pages of code with headers, macros, etc (I'm thinking of C++ here in particular).  It's not that I can't read though screens of code, though. 

  • User profile image
    ZippyV

    If you can't write something with a pen, you won't be able to write something with a typewriter.

  • User profile image
    jsrfc58

    ZippyV wrote:
    If you can't write something with a pen, you won't be able to write something with a typewriter.


    Following that philosophy, one could say that real coders only use command lines and text and if they can't figure out what is going on between headers, macros, functions and whatnot across multiple .cpp programs, then they should find another line of work.  I mean, rendering a window is nothing more than a bunch of graphics functions firing one after the other and what is the point of harnessing that to view something conceptually?  The point I was making was to try and build on all that history and make even more powerful software (IDEs included).  I've coded many things before the advent of visual IDE's (assembly, too), and have worked with a few different IDE's.  All I was suggesting is that they could do a lot more because it seems like a lot of IDEs offer decent icon/bitmap/resource building mechanisms, but when it comes to code, it is forever going to be stuck in the text world.  But you are right, we should keep doing what we have always done, and keep getting what we always get.

    I guess I also figured that such a tool would decrease the amount of time it takes another person to figure out your code, and they may be able to spot things quicker.

  • User profile image
    Sven Groot

    He doesn't want to code 3D apps (well, maybe he does, but that's besides the point).

    He wants an application to visualize source code in a 3D manner.

    Whether such a thing exists, I don't know.

  • User profile image
    jsrfc58

    Exactly...

    Beer28 wrote:


    google OpenGL or Java3d tutorials, basically you want to draw some polygons and move the camera around

    I use the addison wesley OpenGL reference set for reference to code portable C++ OpenGL && Xlib applications on linux with Eclipse. And I have a few books on Java3d as well. You should find what your looking for in the first couple chapters of any book on J3d or OpenGL.

    This book as well as this book used to be sold as a set when I got them, and that's what I am using to learn it. Then there are tons of books on J3d as well.

    If you really are just poking around, I suppose you could try the XAML 3d stuff with the avalon CTP, assuming that actually works right now. And do it declaratively.




    I picked up an OpenGl book a year ago, and played with it some...in fact, the reason why I picked it up was to eventually go ahead and build the IDE I had in my imagination.  I wasn't thinking of text ways to create 3-D objects, but rather 3-D ways of looking at text code for a complicated program such as...I don't know...a word processor or a sophisticated utility.  Maybe I am just getting lazier with time when I read code, or more impatient.  For instance, in an IDE such as Borland c++ Builder 6 (blasphemy, here, I know), the separate components of a C/C++ program (.cpp, .h) are shown as tabbed text screens, that may or may not be attached to a form.  I was hoping to go beyond that and literally allow a user to zoom to a function buried in any library by clicking on portions of a section of code, and even allow a developer to see those connections visually.  For some, this wouldn't matter, because they happily drag-and-drop components at will onto a form and rarely even dive into the code itself.  I tend to like to know a little more about what is going on underneath the hood, perhaps even to a fault.  This of course, ties in with my previous posts on 3-D data structures.  Maybe I should just build the thing before I give too many ideas away.  Whether this will be of major use to anyone is anybody's guess...but then again, I have nothing to lose by trying.

  • User profile image
    Sven Groot

    I don't think that's what he had in mind. From the description he gave in the first post the image that comes to my mind is like a 3D UML diagram.

  • User profile image
    jsrfc58

    Sven Groot wrote:
    I don't think that's what he had in mind. From the description he gave in the first post the image that comes to my mind is like a 3D UML diagram.


    More or less that is what I was getting at.

    As far as Looking Glass, and this is off topic, why is it every time I check out Sun's site, it seems to have the same old information that I was reading months ago?  Am I missing something (a blog or whatever), or has Microsoft's "budding partnership" with Sun taken the wind out of the project?  will pieces of Looking Glass magically appear in Longhorn?

    By the way, why do I have a feeling if I started a thread about outer space or baseball, it would somehow get turned into an exhaustive listing of the benefits of Looking Glass? 

  • User profile image
    PinkF

    jsrfc58 wrote:

    By the way, why do I have a feeling if I started a thread about outer space or baseball, it would somehow get turned into an exhaustive listing of the benefits of Looking Glass? 


    hahaha.. yeah, I have that impression too..
    No hard feelings beer, but whatever people talk about in this forum, you manages to in one or another way turn and twist it into Linux and/or lookinglass ;o)

  • User profile image
    jsrfc58

    ...and I wasn't meaning to be difficult about Looking Glass either...it caught my eye about a year ago, and although I never installed a build of it on my PC, it seemed like every time I checked the Sun site the same explanations/screenshots were up there.  I realize there is always some amount of "proprietary secrecy" that is going to happen, especially with Avalon/Longhorn still in the works.  You can't beat "free" though.

    I realize that this is sort of an ambitious idea (which I probably don't have a great deal of time for) that would require some bits and ideas from the gaming world...and there are always great ideas there.  I suppose the first step would be to put together some visual mock-ups and then figure out how in the world I am going to code it.  I was originally going to build it underneath my own language, but that seems to be a lofty goal in light of some of the compiler books I looked through. 

  • User profile image
    geekling

    jsrfc58 wrote:

    I realize that this is sort of an ambitious idea (which I probably don't have a great deal of time for) that would require some bits and ideas from the gaming world...and there are always great ideas there.  I suppose the first step would be to put together some visual mock-ups and then figure out how in the world I am going to code it.  I was originally going to build it underneath my own language, but that seems to be a lofty goal in light of some of the compiler books I looked through. 


    You can always parse the standard UML XML format (using the raw power of .NET!) and just that information to create polygons in 3d space with different colors and shapes representing different classes. The only difficult I see in that is placing the coordinates for "attached" classes and stuff.

    Managed Direct3d is a snap and reduces a lot of complexity.

  • User profile image
    jsrfc58

    Beer28 wrote:


    Ah, I misunderstood him, I thought the panels were the panes of the IDE with the code in them.



    No, you were right...that is close to what I was thinking of, because I wanted to be able to click on specific functions in the code (or headers, macros, etc.) and be taken instantly to the definitions of those functions (or headers, macros, etc.) and be able to visually see the interconnections between sections of code...I suppose that is similar in some ways to UML, though.  Whether it takes the form of interconnected panels/functions, or "polygon blobs" I don't know.  The idea of "Polygon blobs" seems a little too removed from the code (in an abstract way), though, and what I was thinking of.  I think I'll just start in on a prototype and go from there.

    EDIT: I'd also like to throw in the ability to build data structures visually, too, if a user needs to (and have it analyze running time too).

  • User profile image
    internetsco​oter

    I must admit that I don't read this forum at all - I just found the post through google...

    Anyway there is no commercial development tools around which make use of 3D (apart from some that use a bit of 3D for defining a GUI e.g. mobile phone). I am currently researching into the possibility of extending UML with X3D, with some success. However just because it can be done, doesn't mean that it is useful Wink So my research is more focused on measuring benefit than producing something that can be commerically useable (i.e. I am looking at simple problems for a long time).

    Examples can be found at www.x3d-uml.org.

    Enjoy,

    Paul

  • User profile image
    jsrfc58

    internetscooter wrote:
    I must admit that I don't read this forum at all - I just found the post through google...

    Anyway there is no commercial development tools around which make use of 3D (apart from some that use a bit of 3D for defining a GUI e.g. mobile phone). I am currently researching into the possibility of extending UML with X3D, with some success. However just because it can be done, doesn't mean that it is useful So my research is more focused on measuring benefit than producing something that can be commerically useable (i.e. I am looking at simple problems for a long time).

    Examples can be found at www.x3d-uml.org.


    Awesome! Thanks for the link, Paul.  I have not worked on my 3-D IDE at all for some time, as I am currently busy with something else.  What I was hoping to demonstrate through it was something that would push the paradigm even further along than UML.  It's hard to explain until I actually build it...but visually, your site seems to be similar to what I had in mind.

    To put it another way, it would really infuritate Charles Petzold.Big Smile

  • User profile image
    mcannistra

    We are using CAST to analyze our sources and prepare impact analysis when we receive change requests from users.

    Take a look at their web site :  http://www.castsoftware.com/

    Their product is available for many programming languages and databases. YES, it's not a 3D interface, but if you want to quickly get a graph of an application or of a web site... well I think it's an extremely good tool.

    A map of their technology coverage:

  • User profile image
    rhm

    Beer28 wrote:
    it would be so easy in LG3d, as I said the reason the screens and videos are the same is because you can literally use looking glass AS they are coding it. As soon as the team making looking glass has an update, you do too.

    This is the nature of open source and CVS.


    THIS THREAD HAS BEEN ORTHOGONALIZED!


    (it would be great if Karim could come up with a graphic for this).

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.