Hi, I have just shared my draft proposal on 'IPython notebook integration'
via the GSoC website. I would highly
appreciate it, if you can quickly review it and provide some valuable
feedback. Thanks in advance.
Regards,
On 22 March 2016 at 02:04, Stefan Tröger <stefantroe...@gmx.net> wrote:
> Hello,
>
> >Hi, I'm getting dizzy about inventor scenegraph conversions!
> Good The concepts of FreeCAD, OpenInventor and IPython are complex and not
> easy to gasp in short time, so don't feel discouraged.
> >Actually I get the idea about one to one mapping of nodes, between coin3D
> and
> > SceneJs/ThreeJs. Like call the whole FreeCAD Document scenegraph through
> > coin3D actions and create the proper node types of the javascript webGL
> > library, in the same traverse order!
> Yes, you traverse the scene graph with an inventor action and handle each
> node
> by writing it to a JavaScript file as an equivalent SceneJS/ThreeJS item.
> > It's more like building an open
> > inventor scenegraph(.iv file) parser for that particular Js library!
> Isn't
> > it?
> Well in a certain sense yes. But you don't handle a file but a
> datastructure.
> Also the logic is in FreeCAD, hence it is not a parser of the JS library,
> but
> is a writer in FreeCAD. Basicly you output code written in that JS library.
>
> >Actually ThreeJs has a vrml loader itself, but it's not fully done [1].
> Ah interesting. That would be of course the simplest of all solutions, we
> could use the existing coin vrml writer and input it directly into ThreeJS.
> But this import/export needs some investigating too. For example for the
> standalone WebGL export we want a single html file. This is easy if one
> writes
> JS code with all geometry inside, but don't know if this works with a code
> JS
> file implementing the viewer and a datafile holding the scene graph.
>
> > I'm still researching on the inventor scenegraph conversions! But I
> didn't
> > made any working implementation to prove that concept! Afraid that I
> cannot
> > be able to implement a working draft source in before the
> > deadline(proposal). Now I can only propose a workflow, which I think it
> > will work out, but maybe after some point it gonna change to a different
> > direction in implementation! Is it fine?
> Yes this is fine in general. Best is to write your proposal and share it
> before submitting. This gives us the chance of looking into it and
> discussing
> it. Also note that the inventor scene graph traversing is only one part of
> the
> process, and one we can help you with. You need also to consider the
> javascript viewer that is part of the project, and make a proposal on how
> it
> should work and what it should be capable of.
>
> But also note that it seems that we have multiple applications for freecad.
> Writing some code or fixing a bug is always a good way to show capability
> and
> motivation.
>
> Regards,
> Stefan
>
> >
> > [1] https://github.com/mrdoob/three.js/issues/3979
> >
> > regards
> >
> > On 13 March 2016 at 14:45, Stefan Tröger <stefantroe...@gmx.net> wrote:
> > > Hello Linganesan,
> > >
> > > thanks for your interest. The freecad dependencies should actually be
> > > installed pretty easily, for windows we provide a libpack with all
> > > dependencies and for linux they should be all installable by
> repositories.
> > >
> > > > 1. As I understand, we can import FreeCAD python Api as a seperate
> > > > module[4] which can be used by IPython.
> > >
> > > Yes, FreeCAD can be importet as standalone python module into IPython.
> > > FreeCAD
> > > is seperated between an App and an GUI part. As for IPython we do not
> want
> > > to
> > > show up the FreeCAD GUI but need the GUI parts for visualisation (the
> > > viewproviders) have a look at FreeCADGui.setupWithoutGui()
> > >
> > > > 2. So here we need a '3D web viewer' to render the models which
> are
> > > > generated by IPython(Qtconsole/Jupyter).
> > >
> > > Yes. The models are generated in ipython via the freecad API.
> Internally
> > > document objects are generated, which in itself cannot be visualized.
> But
> > > the
> > > GUI part provides visualisation for each document object via a
> > > viewprovider.
> > > Those viewproviders generate the 3d scene graph which should be
> visualized
> > > via
> > > the qt console/jupyter.
> > >
> > > > 3. OpenInventor API generates scenegraph which is constructing by
> > >
> > > coin3D
> > >
> > > > library in a 3D viewer.
> > >
> > > Yes, the viewproviders build up the openinventor scene graph. We use
> > > coin3d
> > > for this. The construction of the scene graph is however independend
> from
> > > the
> > > rendering. We cannot directly render with coin3d into ipython GUI, but
> we
> > > can
> > > use the already constructed scenegraph and traverse it. An example for
> > > this is
> > > the coin3d SoToVRML converter action which could be used as example of
> how
> > > to
> > > traverse the scenegraph and create something out of it.
> > > https://bitbucket.org/Coin3D/coin/src/
> > >
> 559be0543cbce3235cdc6dce13c8cc112eb212a5/src/actions/SoToVRMLAction.cpp?
> > > at=default&fileviewer=file-view-default
> > >
> > > > If I'm not wrong, here we can use pythonOCC with
> > > > webgl [2] [3] instead of coin3d.
> > >
> > > No this is not possible. FreeCAD does not use opencascades
> visualisation
> > > at
> > > all, hence it is not easily transfered to python occ webgl viewer.
> Also we
> > > visualize many more things than only occ data structures, and all of
> this
> > > needs to be possible to render in ipython too. This is why we want to
> > > mirror
> > > the 3d scenegraph directly. The basic idea was to find a webgl js
> library
> > > which has a scene structure pretty close to openinventor and then
> simply
> > > traverse the scenegraph and create a new webgl scene graph from it in a
> > > new
> > > html file. This webgl file can than be exported standalone and also
> used
> > > to
> > > show the scene in ipython, which allows javascript visualisation. How
> to
> > > incorporate ineractive webgl into ipython qtconsole/jupyter needs some
> > > research, but it is possible as shwon by other implmentations.
> > >
> > > > Now I'm analyzing the source code to get a clear
> > > > view.
> > >
> > > Feel free to ask questions on irc and especially the forum. FreeCAD is
> > > not
> > > easy to grasp, it is a rather large code base with too little
> > > documentation.
> > >
> > > Regards,
> > > Stefan
> > >
> > > On Sunday, March 13, 2016 05:52:09 AM Linganesan Mani wrote:
> > > > Hi Stefan,
> > > >
> > > > Thanks for your reply and suggestion, When I was gone through your
> > > > recommend page I found this IPython integretion page[1] which got my
> > >
> > > great
> > >
> > > > attention. Here I need some clarifications according to what I have
> > > > understood,
> > > >
> > > > 1. As I understand, we can import FreeCAD python Api as a seperate
> > > > module[4] which can be used by IPython.
> > > > 2. So here we need a '3D web viewer' to render the models which
> are
> > > > generated by IPython(Qtconsole/Jupyter).
> > > > 3. OpenInventor API generates scenegraph which is constructing by
> > >
> > > coin3D
> > >
> > > > library in a 3D viewer. If I'm not wrong, here we can use
> pythonOCC
> > >
> > > with
> > >
> > > > webgl [2] [3] instead of coin3d.
> > > >
> > > > Also I forked the FreeCAD repository and successfully compiled on my
> > > > machine. Seriously, those dependencies took whole day to find the
> ways
> > > > to
> > > > install each of them :P. Now I'm analyzing the source code to get a
> > > > clear
> > > > view.
> > > >
> > > > [1]
> > >
> > >
> http://www.freecadweb.org/wiki/index.php?title=IPython_notebook_integratio
> > > n
> > >
> > > > [2]
> > >
> > >
> http://www.pythonocc.org/features_overview/experimental-webgl-renderer-tow
> > > ar>
> > > > ds-cad-in-a-browser/
> > > >
> > > > [3] https://www.youtube.com/watch?v=0GXbfzWV8qk
> > > >
> > > > [4] http://www.freecadweb.org/wiki/index.php?title=Embedding_FreeCAD
> > > >
> > > > On 8 March 2016 at 22:57, Stefan Tröger <stefantroe...@gmx.net>
> wrote:
> > > > > Hello Linganesan,
> > > > >
> > > > > as you seem to be interested in exposing geometric functionality to
> > >
> > > python
> > >
> > > > > I
> > > > > like to take the chance and point you to another project idea with
> > > > > this
> > > > > scope:
> > > > > http://www.freecadweb.org/wiki/index.php?
> > > > > title=Extend_Part_workbench_python_API
> > > > > It is a bit different in the sense that it requires not a pure
> wrapper
> > >
> > > but
> > >
> > > > > also some coding and API design. For your consideration.
> > > > >
> > > > > Regards,
> > > > > Stefan
> > > > >
> > > > > On Tuesday, March 08, 2016 05:48:12 PM Linganesan Mani wrote:
> > > > > > Hi,
> > > > > > I am Linganesan, undergraduate computer engineering student. I
> have
> > > > > > a
> > > > >
> > > > > sound
> > > > >
> > > > > > knowledge in python and great enthusiasm in computer graphics.
> I've
> > >
> > > gone
> > >
> > > > > > through Python Geometry[1] page in Brlcad wiki. I'm really
> excited
> > > > > > to
> > > > > > contribute this project. I cloned the git repository which given
> on
> > >
> > > that
> > >
> > > > > > page, but I get some error while I tried to install
> > >
> > > python-brlcad.[2] I
> > >
> > > > > > guess those are some issues causing by ctypesgen! How can I
> resolve
> > > > > > those
> > > > > > issues? Also now the project is on python 2.x, Is feasible to
> > > > > > convert
> > > > >
> > > > > that
> > > > >
> > > > > > in to python 3.x? Could you please help me to continue on this
> > >
> > > project.
> > >
> > > > > > [1] - http://brlcad.org/wiki/Python_Geometry
> > > > > > [2] - http://pastebin.com/hSvQzVRe
> > > > > >
> > > > > > Thank you,
>
>
--
Linganesan
Undergraduate Student ,
Department of Computer Science and Engineering
University of Moratuwa
p: 0776040342
e: linganesanm...@gmail.com
e: linganesan...@cse.mrt.ac.lk
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel