New Collada translator (brainstorming)

225 views
Skip to first unread message

Rehno Lindeque

unread,
Feb 9, 2011, 11:40:25 AM2/9/11
to sce...@googlegroups.com
Heya guys, I'm aiming to get started with a new Collada-to-SceneJS translator during the week (Lindsay might jump in later as well). I usually like to offer the community opportunity to offer inputs if they're interested before I run with it, so here you go ;). It'll probably evolve into a more fully-fledged content pipeline over time but for now I just want the basics to work well.

We were thinking that Python is probably the most convenient language for the utility (we also considered a Java-like language like Scala or Clojure but I think that most shared hosts don't actually allow you to run the JVM since it's a bit of a resource hog).

So I'm thinking we'll probably use this nice python Collada lib, unless someone has a better idea: https://github.com/pycollada. It parses collada into a DOM-like object, which is quite convenient and then we'll simply convert that into JSON (or possibly binary later on). Only problem with DOM-like object is that it's slower and chow more memory compared to the SAX-like parsing (see http://en.wikipedia.org/wiki/Document_Object_Model and http://en.wikipedia.org/wiki/Simple_API_for_XML) but I think that convenience is a much bigger benefit in this case (especially for an off-line util).
We might have to add some features to pycollada as we go along but it looks pretty clean and supports the basics (triangle geometry, materials, cameras, transforms). Seems to be under New BSD license, so no worries there... and that's about it.

Anything else on your wishlist to keep in mind?

Rehno Lindeque

unread,
Feb 9, 2011, 12:06:18 PM2/9/11
to sce...@googlegroups.com

Fernando Carvalho

unread,
Feb 9, 2011, 12:09:50 PM2/9/11
to sce...@googlegroups.com
Is it possible to load binary files to display, using webgl?


On Wed, Feb 9, 2011 at 3:06 PM, Rehno Lindeque <erra...@gmail.com> wrote:
Oh and the homepage http://collada.in4lines.com/ and blog post http://weirdsoft.in4lines.com/2009/02/07/collada-python-module/ for pycollada.



--
Fernando

Salomon Brys

unread,
Feb 9, 2011, 12:18:01 PM2/9/11
to scenejs
I agree for python ;)
I think this new translator should use a strong object architecture so it can be evolutive the way collada is :)


--

 

Rehno Lindeque

unread,
Feb 9, 2011, 12:25:46 PM2/9/11
to sce...@googlegroups.com
It is now :)

https://scenejs.wikispaces.com/GeoLoader+Service

(Actually, I think this might only be in the v0.8 branch on github
though)

erra...@gmail.com

unread,
Feb 9, 2011, 12:36:12 PM2/9/11
to sce...@googlegroups.com
Yes, sure thing :)

Lindsay Kay

unread,
Feb 9, 2011, 3:15:06 PM2/9/11
to SceneJS
Hey what shall we call this project?

scenejs-pycollada ?

Suggestions anybody?

I'll set up a github repository when we're decided.

Rehno Lindeque

unread,
Feb 10, 2011, 12:23:33 AM2/10/11
to sce...@googlegroups.com
Hey sounds good to me, why not?

Lindsay Kay

unread,
Feb 10, 2011, 5:33:02 AM2/10/11
to SceneJS
New project begins - scenejs-pycollada - open-source server-side
Collada importer for SceneJS, written in python, using the pycollada
framework.

GitHub repository:

https://github.com/xeolabs/scenejs-pycollada

Wiki page:

http://scenejs.wikispaces.com/scenejs-pycollada

philippe carret

unread,
Feb 13, 2011, 6:00:51 AM2/13/11
to SceneJS
Hi Rehno,

I can't give you any opinion about Python or SAX or JSON because it's
not my domain but somme Collada feedback.

Collada and WebGL experience:

SpiderGL is very good for dae import (see dining room, texture are
good, position are good) This is not the case even in SketchUp import.

Collada and C++ experience:

I've worked recently on both 3ds and Collada exports for CAD product :

For 3ds I've used http://code.google.com/p/lib3ds/ very simple, works

For Collada it was much mcuh more complex,

First I've tried last Collada-Dom then OpenCollada and FCOllada. No
documentation at all, bugs, I've tried to export a simple cube with a
color : hard task, help is hard to find. I didn't buy the OpenCollada
Book

For testing, I've tried to open my dae file (drag and drop my files
when possible) in 4 products just to be sure it works for all

SketchUp (not alaway working)
MeshLab (good)
GLC Player (crash a lot for some dae, but it makes a good testing to
check dae will be opened everywhere)
Open Asset Import Library (Assimp) Very good, slow but gives error
when parsing dae (helpful)

My experience is : dae format is so opened and complex format that
universal viewer is hard to implement
I finally wrote an xml export with tinyXML. It's easy, fast, no dlls,
and always work for my actual needs

Collada and SceneJS:
I've tried the web converter tool provided by Linsday and it never
works for my dae files.
It was not very important since I know JSON was the new way of
working.
I could now export in JSON my models. It's not a hard work.
Specification of what is possible should be the first step (First
version could be : Triangle mesh, Texture, Shader ?, no animation)

I probably can help for testing.

Philippe

On Feb 9, 5:40 pm, Rehno Lindeque <errant...@gmail.com> wrote:
> Heya guys, I'm aiming to get started with a new Collada-to-SceneJS
> translator during the week (Lindsay might jump in later as well). I usually
> like to offer the community opportunity to offer inputs if they're
> interested before I run with it, so here you go ;). It'll probably evolve
> into a more fully-fledged content pipeline over time but for now I just want
> the basics to work well.
>
> We were thinking that Python is probably the most convenient language for
> the utility (we also considered a Java-like language like Scala or Clojure
> but I think that most shared hosts don't actually allow you to run the JVM
> since it's a bit of a resource hog).
>
> So I'm thinking we'll probably use this nice python Collada lib, unless
> someone has a better idea:https://github.com/pycollada. It parses collada
> into a DOM-like object, which is quite convenient and then we'll simply
> convert that into JSON (or possibly binary later on). Only problem with
> DOM-like object is that it's slower and chow more memory compared to the
> SAX-like parsing (seehttp://en.wikipedia.org/wiki/Document_Object_Modelandhttp://en.wikipedia.org/wiki/Simple_API_for_XML) but I think that

Rehno Lindeque

unread,
Feb 13, 2011, 11:35:12 AM2/13/11
to sce...@googlegroups.com
Yea, thanks Phillipe! If you want to help out with testing that will be absolutely awesome :). It sounds like you already know which problems are likely to crop up so that could be pretty helpful.

I've started on the code (my fork is at https://github.com/rehno-lindeque/scenejs-pycollada) and plan to accelerate development for the next day or two so I'll post in this thread when the basic functionality starts to come together. So far PyCollada hasn't disappointed and the dev is friendly, so I'm quite happy.

For now, I guess rough priorities could be something like this (but I'm going to be rather casual it :P)
1. Geometry export (Simple indices & Raw triangle list: vertices, normals, colors, texture coords)
2. Geometry export (Advanced indices with shared vertex data - this is probably going to be a pain in the behind :-) )
3. Lights & materials
4. Textures
5. Cameras, Transforms etc
6. Geometry export (non-triangle data: line-strips, points etc.)

And libraries / instancing should be in there somewhere.

Ideas for the future:
* Animation (some time in the future, depending on need)
* Binary output
* Skinning...
* Texture atlas stuff?
* Custom shaders one day?
* ?

Lindsay Kay

unread,
Feb 13, 2011, 11:53:42 AM2/13/11
to SceneJS
I have one idea I'd like to throw in while it's still early days -
binary streams support:

http://scenejs.wikispaces.com/Binary+Stream+Support

This would involve

1. writing out the JSON scene content as usual (but with geometry
nodes having stream IDs - all that's in the Wiki docs),
2. writing out binary files for the geometrys' arrays, and
3. bundling an implementation of the SceneJS GeoLoader plugin for use
with scenejs-pycollada binary streams, so geometry nodes can pull in
those streams

Pretty easy - we can get to that later when we have the geometry
exported as JSON, then just add a command line option to enable it.


On Feb 13, 5:35 pm, Rehno Lindeque <errant...@gmail.com> wrote:
> Yea, thanks Phillipe! If you want to help out with testing that will be
> absolutely awesome :). It sounds like you already know which problems are
> likely to crop up so that could be pretty helpful.
>
> I've started on the code (my fork is athttps://github.com/rehno-lindeque/scenejs-pycollada) and plan to accelerate

Rehno Lindeque

unread,
Feb 13, 2011, 12:04:03 PM2/13/11
to sce...@googlegroups.com
Sounds good to me, more or less what I had in mind with "Binary output" for the future

Rehno Lindeque

unread,
Feb 17, 2011, 8:11:42 AM2/17/11
to sce...@googlegroups.com
First tentative version of the translator is getting along quite nicely. Not really ready for use yet and this is not an actual release, but just a heads up on my progress...

It has two features which I think is quite nifty:
* Generate samples on the fly (generates a index.html file with a canvas and a logging area + all the code to render the translated collada)
* Support for flat shading (will also support texture split coordinates and "flat" colours etc in the future)

In addition, there's preliminary support for:
* Cameras
* Light sources
* Basic materials
* Transformation nodes

But still lacking some crucial features which we must support:
* Textures + texture coords
* Vertex colors
* Primitive types other than "Triangle". PLEASE NOTE: For now your models should be triangulated!
* Binary serializer for geometry
* Pretty printing of the output

There's no downloads yet, so you have to get it from git. To run the exporter first pull the pycollada submodule like so:

> git submodule pull

and then install pycollada:

> cd pycollada
> python setup.py install

To run the translator's command-line utility, check the --help

> python scenejs-pycollada.py --help

Translate a Collada file to a JSON formatted SceneJS file
Usage:
    python scenejs-collada --help
    python scenejs-collada [OPTION]... [FILE]...

Miscelaneous options:
  -h, --help                     Display this help message
  -v, --verbose                  Display verbose warnings and translation information
  --libraries-only               Export only libraries, excluding scenes
  -o [FORMAT], --output=[FORMAT] Use the specified output mode, FORMAT may be any one of the following
                                 json   - Raw JSON data is output
                                 js     - JavaScript code is output and nodes created
                                 binary - Output JavaScript code along with accompanying binary
                                 html   - Output JavaScript code inside an html file
                                 htmljs - Output JavaScript code separately along with an html file
  -d                             Turn on debug mode


For testing I usually run

> ./scenejs-pycollada.py -d -v -o htmljs myscene.dae

(or > python scenejs-pycollada.py -d -v -o htmljs myscene.dae on windows)

and then simply open the generated index.html file in my browser

Code critique from pythonians is very welcome!

-Rehno

Rehno Lindeque

unread,
Feb 17, 2011, 8:35:08 AM2/17/11
to sce...@googlegroups.com
Oh and

* Support multiple materials per geometry

is also a pretty important one to add

Terrance Mok

unread,
Feb 17, 2011, 1:28:35 PM2/17/11
to SceneJS
I had to run:
git submodule update --init
to get the pycollada contents the first time. From a fresh clone of
your repository doing the command without --init did nothing and the
pycollada directory remained empty but git didn't give me any warning,
info or error messages.

Rehno Lindeque

unread,
Feb 17, 2011, 1:33:36 PM2/17/11
to sce...@googlegroups.com
Thanks, I'll update the README

Terrance Mok

unread,
Feb 17, 2011, 1:56:04 PM2/17/11
to SceneJS
No problem.

Another little hiccup I found, may be obvious to some, but since I
haven't used python for much myself I had to do a bit of googling.
I was getting this error trying to just run the utility with --help:
>ImportError: No module named numpy
numpy is actually NumPy from http://numpy.scipy.org/ which pycollada
makes use of.

So I installed that, but ran into another issue because of my
particular machine, Windows 64-bit. So it ende dup not working.
There isn't an official NumPy 64-bit release but there is an
unofficial resource that the NumPy page links to
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy . Now with that
installed I can run the --help without issues!

Have yet to try any actual collada conversion, any plans on adding an
examples folder to scenejs-pycollada with some example collada to show
various things the conversion can do?

Terrance Mok

unread,
Feb 17, 2011, 1:58:31 PM2/17/11
to SceneJS
Forgot to mention the actual error message when trying to run with the
Win32 NumPy isntalled instead of the 64-bit (in case anyone tries to
search for this stuff).

ImportError: DLL load failed: %1 is not a valid Win32 application.

On Feb 17, 11:56 am, Terrance Mok <tth...@gmail.com> wrote:
> No problem.
>
> Another little hiccup I found, may be obvious to some, but since I
> haven't used python for much myself I had to do a bit of googling.
> I was getting this error trying to just run the utility with --help:
>     >ImportError: No module named numpy
> numpy is actually NumPy fromhttp://numpy.scipy.org/which pycollada
> makes use of.
>
> So I installed that, but ran into another issue because of my
> particular machine, Windows 64-bit.  So it ende dup not working.
> There isn't an official NumPy 64-bit release but there is an
> unofficial resource that the NumPy page links tohttp://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy.  Now with that

Rehno Lindeque

unread,
Feb 17, 2011, 3:18:33 PM2/17/11
to sce...@googlegroups.com

> So I installed that, but ran into another issue because of my
> particular machine, Windows 64-bit. So it ende dup not working.
> There isn't an official NumPy 64-bit release but there is an
> unofficial resource that the NumPy page links to
> http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy . Now with that
> installed I can run the --help without issues!

Ai, that's an annoyance. I wonder if we could convince the numpy devs to
add 64 bit win build... I think for the release of scenejs-pycollada we
should probably add it as a download.

> Have yet to try any actual collada conversion, any plans on adding an
> examples folder to scenejs-pycollada with some example collada to show
> various things the conversion can do?

I have one or two little test collada files I could add. Anyway, it's
probably a good idea to have a folder with "test-cases" for regression
testing.

Rehno Lindeque

unread,
Mar 2, 2011, 10:40:15 AM3/2/11
to sce...@googlegroups.com
Hi Terrance,

Could you do me a favour and try to install NumPy using this command?

pip install numpy

Not sure if you'll have pip on your system, but it seems to be the standard package system for python. Would be great if we could just tell people to use this on any platform...

Terrance Mok

unread,
Mar 2, 2011, 11:07:02 AM3/2/11
to SceneJS
Should I do an uninstall of NumPy first?
Not that I actually know how to do an uninstall of a python library
but I'm sure I could find out.

Rehno Lindeque

unread,
Mar 2, 2011, 11:58:49 AM3/2/11
to sce...@googlegroups.com
Mmm.. I think it's probably safer if you can

If you happen to have the source files for NumPy there should be a setup.py file in there somewhere (similar to the one in pycollada)
If you have that, then the uninstall for NumPy is this command: 'python setup.py clean'

Terrance Mok

unread,
Mar 2, 2011, 12:40:32 PM3/2/11
to SceneJS
OK, I did an uninstall of numpy. I installed pip from source since
there also didn't seem to be a 64 bit pip offical installer. Then I
tried to run 'pip install numpy' and got a whole bunch of errors.

Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Lapack (http://www.netlib.org/lapack/) sources not found.
"Unable to find vcvarsall.bat"

and a whole bunch more.

Doing a google search of pip install numpy I see
http://www.scipy.org/Installing_SciPy/BuildingGeneral recommends
against using pip. Seems like those unofficial binaries are actually
the easiest way to get this stuff installed. Windows 64 bit and
python generally don't seem to have a good relationship and most
stackoverflow answers just point people to http://www.lfd.uci.edu/~gohlke/pythonlibs/

Rehno Lindeque

unread,
Mar 2, 2011, 1:05:04 PM3/2/11
to sce...@googlegroups.com
Eish... computers... I'm a bit disappointed as python's tagline is "batteries included"!

Thanks for trying, though! I'll update the README file accordingly.

ethos

unread,
Mar 18, 2011, 2:07:16 PM3/18/11
to SceneJS
Right, managed to get the scripts up and running after a couple of
hours of messing around to get Python running under Windows.

Please note:

- scenejs-collada doesn't run under Python 3
- The latest Python 2 release is 2.7, but the default installer for
NumPy requires 2.6. If you hunt around, there is an alternative
release on the NumPy site that does support 2.7.

I started testing using Rhino 5 to produce Collada models, however
Rhino exports four camera views, one perspective and three
orthographic. Pycollada doesn't understand orthographic cameras and
crashes.

Pycollada was also having issues importing <xfov> values, giving an
error "TypeError: float() argument must be a string or a number"

By deleting these items from the .dae, I can get an execution, with
the message "Warning: No recognizable primitives found in Geometry"

My source content is a triangulated mesh, as indicated.

> * Primitive types other than "Triangle". PLEASE NOTE: For now your models
> should be triangulated!

I am able to import the same .dae file into Blender with no issue.
What is it that scenejs-collada is looking for to identify geometry,
please?

Rehno Lindeque

unread,
Mar 21, 2011, 4:31:09 AM3/21/11
to sce...@googlegroups.com
Thanks! Some comments inline

On Fri, 2011-03-18 at 11:07 -0700, ethos wrote:
> Right, managed to get the scripts up and running after a couple of
> hours of messing around to get Python running under Windows.
>
> Please note:
>
> - scenejs-collada doesn't run under Python 3
> - The latest Python 2 release is 2.7, but the default installer for
> NumPy requires 2.6. If you hunt around, there is an alternative
> release on the NumPy site that does support 2.7.

It's disappointing that this is so hard to set up on windows at the
moment and thanks for the heads up with Python 3. Eventually I'll look
into some kind of download or script that helps with dependencies.

> I started testing using Rhino 5 to produce Collada models, however
> Rhino exports four camera views, one perspective and three
> orthographic. Pycollada doesn't understand orthographic cameras and
> crashes.

Good news, this is the very next thing on my list to fix, so we'll have
this soon. As you say, PyCollada doesn't have support for it yet but
I'll add it myself.

> Pycollada was also having issues importing <xfov> values, giving an
> error "TypeError: float() argument must be a string or a number"

I think this might be fixed now in the code in my local repository...
I'll try and push it some time today.

> By deleting these items from the .dae, I can get an execution, with
> the message "Warning: No recognizable primitives found in Geometry"
>
> My source content is a triangulated mesh, as indicated.
>
> > * Primitive types other than "Triangle". PLEASE NOTE: For now your models
> > should be triangulated!

Actually this should no longer be necessary with the latest version on
github. It now supports the <polylist> as well as the <lines> elements
(but not the <polygons> element which fortunately should be pretty
rare). Difference between <polylist> and <polygons> is that <polygons>
allows holes inside of polygons.

> I am able to import the same .dae file into Blender with no issue.
> What is it that scenejs-collada is looking for to identify geometry,
> please?

Mmm, not sure what you mean? It just looks for <geometry> tags in the
<library_geometries> and then creates instances for them wherever
they're found in the <scene> tag. The ids are for the most part the same
as the ids in the collada source (some times slightly different to keep
them unique)

Thanks for the feedback, my goal is to get PyCollada working for most
everyone, so keep them coming.


ethos

unread,
Mar 21, 2011, 1:01:10 PM3/21/11
to SceneJS
I was wondering which specific geometry tags were recognised?

For example, if I create a new file in Blender, I get a default cube.
Save this in Collada format and you get a <mesh> tag, which seems to
sequence vertices with a polylist:

<library_geometries>
<geometry id="Cube-mesh">
<mesh>
<source id="Cube-mesh-positions">
<float_array id="Cube-mesh-positions-array" count="24">1 1
-1 1 -1 -1 -1 -0.9999998 -1 -0.9999997 1 -1 1 0.9999995 1 0.9999994
-1.000001 1 -1 -0.9999997 1 -1 1 1</float_array>
<technique_common>
<accessor source="#Cube-mesh-positions-array" count="8"
stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-normals">
<float_array id="Cube-mesh-normals-array" count="18">0 0 -1
0 0 1 1 -2.83122e-7 0 -2.83122e-7 -1 0 -1 2.23517e-7 -1.3411e-7
2.38419e-7 1 2.08616e-7</float_array>
<technique_common>
<accessor source="#Cube-mesh-normals-array" count="6"
stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube-mesh-vertices">
<input semantic="POSITION" source="#Cube-mesh-positions"/>
</vertices>
<polylist material="Material" count="6">
<input semantic="VERTEX" source="#Cube-mesh-vertices"
offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals"
offset="1"/>
<vcount>4 4 4 4 4 4 </vcount>
<p>0 0 1 0 2 0 3 0 4 1 7 1 6 1 5 1 0 2 4 2 5 2 1 2 1 3 5 3 6
3 2 3 2 4 6 4 7 4 3 4 4 5 0 5 3 5 7 5</p>
</polylist>
</mesh>
</geometry>
</library_geometries>

The export from Rhino has a similar mesh structure, but with a
<polygons> tag for the sequence. If I take the data and manually copy
into JSON geometry, scenejs can display the geometry, but can't
extract it from the Collada file format.

<library_geometries>
<geometry id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-mesh">
<mesh>
<source id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-position"
name="position">
<float_array id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-
position-array" count="615">-227.265106 137.316681 -0.000004
-227.265106 187.706253 -0.000004 -175.688416 137.316681 -0.000004
-175.688416 187.706253 -0.000004 -175.688416 238.095810 -0.000004
-124.111725 -165.020721 -0.000004 -124.111725 -114.631149 -0.000004
-124.111725 -64.241585 -0.000004 -124.111725 -13.852016 -0.000004
-124.111725 36.537552 -0.000004 -124.111725 86.927116 -0.000004
-124.111725 137.316681 -0.000004 -124.111725 187.706253 -0.000004
-124.111725 238.095810 -0.000004 -72.535034 -165.020721 -0.000004
-72.535034 -114.631149 -0.000004 -72.535034 -64.241585 -0.000004
-72.535034 -13.852016 -0.000004 -72.535034 36.537552 -0.000004
-72.535034 86.927116 -0.000004 -72.535034 137.316681 -0.000004
-72.535034 187.706253 -0.000004 -72.535034 238.095810 -0.000004
-20.958345 -165.020721 -0.000004 -20.958345 -114.631149 -0.000004
-20.958345 -64.241585 -0.000004 -20.958345 -13.852016 -0.000004
-20.958345 36.537552 -0.000004 -20.958345 86.927116 -0.000004
-20.958345 137.316681 -0.000004 -20.958345 187.706253 -0.000004
-20.958345 238.095810 -0.000004 30.618345 -165.020721 -0.000004
30.618345 -114.631149 -0.000004 30.618345 -64.241585 -0.000004
30.618345 -13.852016 -0.000004 30.618345 36.537552 -0.000004 30.618345
86.927116 -0.000004 30.618345 137.316681 -0.000004 30.618345
187.706253 -0.000004 30.618345 238.095810 -0.000004 82.195038
-165.020721 -0.000004 82.195038 -114.631149 -0.000004 82.195038
-64.241585 -0.000004 82.195038 -13.852016 -0.000004 82.195038
36.537552 -0.000004 82.195038 86.927116 -0.000004 82.195038 137.316681
-0.000004 82.195038 187.706253 -0.000004 82.195038 238.095810
-0.000004 133.771729 -165.020721 -0.000004 133.771729 -114.631149
-0.000004 133.771729 -64.241585 -0.000004 133.771729 -13.852016
-0.000004 133.771729 36.537552 -0.000004 133.771729 86.927116
-0.000004 133.771729 137.316681 -0.000004 133.771729 187.706253
-0.000004 133.771729 238.095810 -0.000004 185.348419 137.316681
-0.000004 185.348419 187.706253 -0.000004 185.348419 238.095810
-0.000004 236.925110 137.316681 -0.000004 236.925110 187.706253
-0.000004 163.207001 100.429001 -0.000004 198.090759 101.619492
-0.000004 234.032501 102.103638 -0.000004 253.990280 103.069153
-0.000004 255.189270 103.372345 -0.000004 256.311798 103.745239
-0.000004 257.345947 104.195084 -0.000004 258.279816 104.729111
-0.000004 259.101471 105.354568 -0.000004 259.798981 106.078690
-0.000004 260.360474 106.908707 -0.000004 260.773956 107.851868
-0.000004 261.863495 111.244659 -0.000004 270.173523 144.650635
-0.000004 277.903168 180.648926 -0.000004 287.356384 217.807510
-0.000004 288.471680 225.425690 -0.000004 288.501801 226.937332
-0.000004 288.409546 228.245911 -0.000004 288.183411 229.328445
-0.000004 287.811981 230.161987 -0.000004 287.339172 230.648178
-0.000004 286.546021 231.156372 -0.000004 285.462463 231.683517
-0.000004 284.118408 232.226532 -0.000004 247.365967 241.716156
-0.000004 212.489471 251.294434 -0.000004 176.558365 261.018982
-0.000004 156.557983 266.143005 -0.000004 153.200943 267.196320
-0.000004 115.997391 277.745148 -0.000004 88.750938 284.729980
-0.000004 87.957657 285.007355 -0.000004 78.389694 288.278595
-0.000004 77.495209 288.408936 -0.000004 76.605240 288.480286
-0.000004 75.721786 288.485382 -0.000004 74.846848 288.417114
-0.000004 73.982407 288.268219 -0.000004 73.130447 288.031525
-0.000004 72.292969 287.699860 -0.000004 71.471985 287.265991
-0.000004 38.818619 275.418365 -0.000004 4.746979 271.557495 -0.000004
-29.353943 275.582855 -0.000004 -62.095062 287.393982 -0.000004
-63.111664 287.803223 -0.000004 -64.135162 288.103699 -0.000004
-65.164490 288.303406 -0.000004 -66.198700 288.410156 -0.000004
-67.236816 288.431915 -0.000004 -68.277863 288.376556 -0.000004
-69.320862 288.251984 -0.000004 -70.364838 288.066071 -0.000004
-82.616119 283.927002 -0.000004 -85.763702 283.141754 -0.000004
-120.379822 274.323273 -0.000004 -145.299194 266.706482 -0.000004
-150.786224 265.291840 -0.000004 -186.359131 255.941040 -0.000004
-223.562012 245.931732 -0.000004 -258.357422 236.393555 -0.000004
-277.316040 230.619156 -0.000004 -277.638123 230.437042 -0.000004
-277.870361 230.269318 -0.000004 -278.007080 230.116989 -0.000004
-278.510620 228.863922 -0.000004 -278.781860 227.215088 -0.000004
-278.841797 225.214417 -0.000004 -278.711487 222.905823 -0.000004
-278.411987 220.333160 -0.000004 -269.269043 184.849365 -0.000004
-261.088013 149.316986 -0.000004 -253.306702 113.420822 -0.000004
-252.704346 111.373871 -0.000004 -252.065674 109.587433 -0.000004
-251.377258 108.044098 -0.000004 -250.625610 106.726456 -0.000004
-249.797302 105.617111 -0.000004 -248.878906 104.698654 -0.000004
-247.856934 103.953690 -0.000004 -246.717957 103.364807 -0.000004
-245.448547 102.914612 -0.000004 -244.035278 102.585693 -0.000004
-242.464661 102.360657 -0.000004 -240.723267 102.222092 -0.000004
-202.120178 102.310303 -0.000004 -164.089355 102.082108 -0.000004
-152.211075 101.555458 -0.000004 -152.011444 100.073639 -0.000004
-152.049988 65.690903 -0.000004 -152.591492 27.598602 -0.000004
-152.721924 0.878387 -0.000004 -152.725861 -26.538116 -0.000004
-152.652924 -54.338898 -0.000004 -152.552765 -82.212006 -0.000004
-152.475098 -109.845459 -0.000004 -152.469543 -136.927277 -0.000004
-152.585785 -163.145477 -0.000004 -153.097168 -200.171021 -0.000004
-152.955811 -206.902557 -0.000004 -152.755768 -208.577789 -0.000004
-152.471313 -210.001099 -0.000004 -152.097656 -211.191895 -0.000004
-151.630035 -212.169617 -0.000004 -151.063660 -212.953674 -0.000004
-150.393768 -213.563507 -0.000004 -149.615570 -214.018524 -0.000004
-148.724304 -214.338135 -0.000004 -147.715210 -214.541779 -0.000004
-146.583496 -214.648895 -0.000004 -145.324402 -214.678894 -0.000004
-108.008881 -214.338501 -0.000004 -94.876160 -214.342346 -0.000004
-69.057922 -214.346863 -0.000004 -43.695129 -214.347870 -0.000004
-18.618713 -214.346191 -0.000004 18.828796 -214.340546 -0.000004
44.081661 -214.336060 -0.000004 69.334534 -214.331573 -0.000004
95.214523 -214.328369 -0.000004 131.984833 -214.854126 -0.000004
156.020706 -215.038055 -0.000004 157.699432 -214.786896 -0.000004
159.091949 -214.458252 -0.000004 160.159653 -214.045013 -0.000004
160.863922 -213.540039 -0.000004 161.177155 -213.004242 -0.000004
161.436188 -212.155334 -0.000004 161.645157 -211.018982 -0.000004
161.808167 -209.620941 -0.000004 161.531921 -172.645111 -0.000004
161.551865 -144.156311 -0.000004 161.610245 -115.753296 -0.000004
161.704941 -87.502319 -0.000004 161.833862 -59.469696 -0.000004
161.994858 -31.721680 -0.000004 162.185822 -4.324585 -0.000004
162.404633 22.655304 -0.000004 162.649170 49.151718 -0.000004
162.917343 75.098373 -0.000004</float_array>
<technique_common>
<accessor count="205" offset="0"
source="#d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-position-array"
stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-normal"
name="normal">
<float_array id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-
normal-array" count="615">0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000
0.000000 -1.000000</float_array>
<technique_common>
<accessor count="205" offset="0"
source="#d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-normal-array"
stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-map1"
name="map1">
<float_array id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-
map1-array" count="410">0.090909 0.700000 0.090909 0.800000 0.181818
0.700000 0.181818 0.800000 0.181818 0.900000 0.272727 0.100000
0.272727 0.200000 0.272727 0.300000 0.272727 0.400000 0.272727
0.500000 0.272727 0.600000 0.272727 0.700000 0.272727 0.800000
0.272727 0.900000 0.363636 0.100000 0.363636 0.200000 0.363636
0.300000 0.363636 0.400000 0.363636 0.500000 0.363636 0.600000
0.363636 0.700000 0.363636 0.800000 0.363636 0.900000 0.454545
0.100000 0.454545 0.200000 0.454545 0.300000 0.454545 0.400000
0.454545 0.500000 0.454545 0.600000 0.454545 0.700000 0.454545
0.800000 0.454545 0.900000 0.545455 0.100000 0.545455 0.200000
0.545455 0.300000 0.545455 0.400000 0.545455 0.500000 0.545455
0.600000 0.545455 0.700000 0.545455 0.800000 0.545455 0.900000
0.636364 0.100000 0.636364 0.200000 0.636364 0.300000 0.636364
0.400000 0.636364 0.500000 0.636364 0.600000 0.636364 0.700000
0.636364 0.800000 0.636364 0.900000 0.727273 0.100000 0.727273
0.200000 0.727273 0.300000 0.727273 0.400000 0.727273 0.500000
0.727273 0.600000 0.727273 0.700000 0.727273 0.800000 0.727273
0.900000 0.818182 0.700000 0.818182 0.800000 0.818182 0.900000
0.909091 0.700000 0.909091 0.800000 0.779155 0.626795 0.840641
0.629158 0.903992 0.630118 0.939170 0.632034 0.941283 0.632636
0.943262 0.633376 0.945085 0.634269 0.946731 0.635329 0.948179
0.636570 0.949408 0.638007 0.950398 0.639654 0.951127 0.641526
0.953047 0.648259 0.967695 0.714554 0.981319 0.785994 0.997981
0.859737 0.999947 0.874856 1.000000 0.877856 0.999837 0.880453
0.999439 0.882601 0.998784 0.884255 0.997951 0.885220 0.996553
0.886228 0.994643 0.887275 0.992274 0.888352 0.927494 0.907185
0.866021 0.926193 0.802688 0.945492 0.767436 0.955661 0.761519
0.957751 0.695944 0.978686 0.647919 0.992547 0.646521 0.993098
0.629656 0.999590 0.628080 0.999848 0.626511 0.999990 0.624954
1.000000 0.623412 0.999865 0.621888 0.999569 0.620386 0.999099
0.618910 0.998441 0.617463 0.997580 0.559908 0.974068 0.499854
0.966406 0.439747 0.974394 0.382038 0.997834 0.380246 0.998646
0.378442 0.999243 0.376628 0.999639 0.374805 0.999851 0.372975
0.999894 0.371140 0.999784 0.369302 0.999537 0.367462 0.999168
0.345867 0.990954 0.340320 0.989395 0.279305 0.971895 0.235382
0.956779 0.225711 0.953972 0.163010 0.935415 0.097436 0.915551
0.036106 0.896622 0.002689 0.885162 0.002122 0.884801 0.001712
0.884468 0.001471 0.884166 0.000584 0.881679 0.000106 0.878407
0.000000 0.874436 0.000230 0.869855 0.000758 0.864749 0.016873
0.794330 0.031293 0.723815 0.045008 0.652578 0.046070 0.648516
0.047196 0.644970 0.048409 0.641907 0.049734 0.639293 0.051194
0.637091 0.052813 0.635268 0.054614 0.633790 0.056621 0.632621
0.058859 0.631728 0.061350 0.631075 0.064118 0.630628 0.067188
0.630353 0.135230 0.630529 0.202263 0.630076 0.223199 0.629031
0.223551 0.626090 0.223483 0.557856 0.222529 0.482260 0.222299
0.429233 0.222292 0.374824 0.222421 0.319652 0.222597 0.264337
0.222734 0.209497 0.222744 0.155752 0.222539 0.103721 0.221638
0.030243 0.221887 0.016884 0.222239 0.013559 0.222741 0.010735
0.223399 0.008372 0.224223 0.006431 0.225222 0.004875 0.226403
0.003665 0.227774 0.002762 0.229345 0.002128 0.231124 0.001724
0.233119 0.001511 0.235338 0.001451 0.301110 0.002127 0.324258
0.002119 0.369765 0.002110 0.414470 0.002108 0.458669 0.002112
0.524674 0.002123 0.569185 0.002132 0.613696 0.002141 0.659312
0.002147 0.724123 0.001104 0.766489 0.000739 0.769448 0.001237
0.771902 0.001889 0.773784 0.002709 0.775025 0.003712 0.775578
0.004775 0.776034 0.006460 0.776402 0.008715 0.776690 0.011489
0.776203 0.084869 0.776238 0.141406 0.776341 0.197773 0.776508
0.253838 0.776735 0.309470 0.777019 0.364537 0.777355 0.418908
0.777741 0.472450 0.778172 0.525033 0.778645 0.576525</float_array>
<technique_common>
<accessor count="205" offset="0"
source="#d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-map1-array"
stride="2">
<param name="S" type="float" />
<param name="T" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-
vertices">
<input semantic="POSITION" source="#d67fb0fd-0fd8-4511-
acaa-405f9318e8fc-lib-position" />
<input semantic="NORMAL" source="#d67fb0fd-0fd8-4511-
acaa-405f9318e8fc-lib-normal" />
<input semantic="TEXCOORD" source="#d67fb0fd-0fd8-4511-
acaa-405f9318e8fc-lib-map1" />
</vertices>
<polygons count="267"
material="00000000-0000-0000-0000-000000000000-MAT">
<input offset="0" semantic="VERTEX"
source="#d67fb0fd-0fd8-4511-acaa-405f9318e8fc-lib-vertices" />
<p>3 2 0</p>
<p>1 4 3</p>
<p>12 11 2</p>
<p>13 12 3</p>
<p>15 14 5</p>
<p>16 15 6</p>
<p>17 16 7</p>
<p>18 17 8</p>
<p>19 18 9</p>
<p>20 19 10</p>
<p>21 20 11</p>
<p>22 21 12</p>
<p>24 23 14</p>
<p>25 24 15</p>
<p>26 25 16</p>
<p>27 26 17</p>
<p>28 27 18</p>
<p>29 28 19</p>
<p>30 29 20</p>
<p>31 30 21</p>
<p>33 32 23</p>
<p>34 33 24</p>
<p>35 34 25</p>
<p>36 35 26</p>
<p>37 36 27</p>
<p>38 37 28</p>
<p>39 38 29</p>
<p>40 39 30</p>
<p>42 41 32</p>
<p>43 42 33</p>
<p>44 43 34</p>
<p>45 44 35</p>
<p>46 45 36</p>
<p>47 46 37</p>
<p>48 47 38</p>
<p>49 48 39</p>
<p>51 50 41</p>
<p>52 51 42</p>
<p>53 52 43</p>
<p>54 53 44</p>
<p>55 54 45</p>
<p>56 55 46</p>
<p>57 56 47</p>
<p>58 57 48</p>
<p>60 59 56</p>
<p>61 60 57</p>
<p>63 62 59</p>
<p>61 63 60</p>
<p>164 163 175</p>
<p>156 8 157</p>
<p>164 175 165</p>
<p>5 162 161</p>
<p>162 5 163</p>
<p>160 159 6</p>
<p>158 7 159</p>
<p>6 161 160</p>
<p>157 7 158</p>
<p>147 146 140</p>
<p>145 144 142</p>
<p>145 141 146</p>
<p>148 147 139</p>
<p>155 9 156</p>
<p>150 149 0</p>
<p>149 148 138</p>
<p>151 2 152</p>
<p>151 150 2</p>
<p>166 165 174</p>
<p>172 171 168</p>
<p>171 170 169</p>
<p>171 169 168</p>
<p>173 172 167</p>
<p>175 174 165</p>
<p>177 176 5</p>
<p>178 177 14</p>
<p>5 176 163</p>
<p>173 166 174</p>
<p>179 178 14</p>
<p>167 172 168</p>
<p>10 154 153</p>
<p>7 157 8</p>
<p>5 161 6</p>
<p>163 176 175</p>
<p>166 173 167</p>
<p>6 159 7</p>
<p>155 154 9</p>
<p>154 10 9</p>
<p>8 156 9</p>
<p>5 14 177</p>
<p>152 10 153</p>
<p>11 10 152</p>
<p>137 149 138</p>
<p>137 136 0</p>
<p>136 135 1</p>
<p>147 140 139</p>
<p>142 144 143</p>
<p>142 141 145</p>
<p>148 139 138</p>
<p>146 141 140</p>
<p>0 149 137</p>
<p>0 136 1</p>
<p>133 132 126</p>
<p>130 126 131</p>
<p>131 126 132</p>
<p>125 134 133</p>
<p>127 129 128</p>
<p>125 135 134</p>
<p>126 125 133</p>
<p>129 127 130</p>
<p>127 126 130</p>
<p>125 124 1</p>
<p>125 1 135</p>
<p>1 124 4</p>
<p>13 4 122</p>
<p>124 123 4</p>
<p>122 4 123</p>
<p>120 22 13</p>
<p>122 121 13</p>
<p>121 120 13</p>
<p>22 120 119</p>
<p>108 22 109</p>
<p>108 31 22</p>
<p>0 2 150</p>
<p>118 22 119</p>
<p>115 109 116</p>
<p>116 109 117</p>
<p>117 22 118</p>
<p>110 109 111</p>
<p>112 111 109</p>
<p>114 113 109</p>
<p>112 109 113</p>
<p>115 114 109</p>
<p>22 117 109</p>
<p>2 11 152</p>
<p>23 179 14</p>
<p>180 23 181</p>
<p>184 183 41</p>
<p>181 32 182</p>
<p>182 41 183</p>
<p>185 50 195</p>
<p>187 193 188</p>
<p>187 186 194</p>
<p>50 185 184</p>
<p>192 189 188</p>
<p>32 181 23</p>
<p>50 184 41</p>
<p>50 51 196</p>
<p>32 41 182</p>
<p>198 51 52</p>
<p>185 194 186</p>
<p>200 52 53</p>
<p>53 54 202</p>
<p>54 55 203</p>
<p>189 192 191</p>
<p>191 190 189</p>
<p>179 23 180</p>
<p>195 194 185</p>
<p>51 197 196</p>
<p>195 50 196</p>
<p>193 187 194</p>
<p>188 193 192</p>
<p>52 199 198</p>
<p>53 202 201</p>
<p>53 201 200</p>
<p>52 200 199</p>
<p>51 198 197</p>
<p>55 204 203</p>
<p>66 65 62</p>
<p>65 64 59</p>
<p>55 64 204</p>
<p>67 76 68</p>
<p>68 75 69</p>
<p>71 70 75</p>
<p>75 70 69</p>
<p>62 67 66</p>
<p>72 71 75</p>
<p>54 203 202</p>
<p>56 64 55</p>
<p>107 40 31</p>
<p>107 106 40</p>
<p>49 40 106</p>
<p>49 106 105</p>
<p>108 107 31</p>
<p>61 58 92</p>
<p>91 61 92</p>
<p>49 94 58</p>
<p>94 93 58</p>
<p>92 58 93</p>
<p>94 49 95</p>
<p>103 105 104</p>
<p>103 102 105</p>
<p>101 105 102</p>
<p>101 100 105</p>
<p>97 96 105</p>
<p>105 98 97</p>
<p>100 99 105</p>
<p>99 98 105</p>
<p>96 49 105</p>
<p>96 95 49</p>
<p>62 76 67</p>
<p>62 65 59</p>
<p>62 63 77</p>
<p>74 73 75</p>
<p>64 56 59</p>
<p>62 77 76</p>
<p>63 78 77</p>
<p>89 79 63</p>
<p>78 63 79</p>
<p>68 76 75</p>
<p>80 79 88</p>
<p>88 87 81</p>
<p>61 90 63</p>
<p>79 89 88</p>
<p>91 90 61</p>
<p>89 63 90</p>
<p>82 87 86</p>
<p>83 82 86</p>
<p>86 85 83</p>
<p>84 83 85</p>
<p>81 87 82</p>
<p>80 88 81</p>
<p>75 73 72</p>
<p>3 0 1</p>
<p>12 2 3</p>
<p>13 3 4</p>
<p>15 5 6</p>
<p>16 6 7</p>
<p>17 7 8</p>
<p>18 8 9</p>
<p>19 9 10</p>
<p>20 10 11</p>
<p>21 11 12</p>
<p>22 12 13</p>
<p>24 14 15</p>
<p>25 15 16</p>
<p>26 16 17</p>
<p>27 17 18</p>
<p>28 18 19</p>
<p>29 19 20</p>
<p>30 20 21</p>
<p>31 21 22</p>
<p>33 23 24</p>
<p>34 24 25</p>
<p>35 25 26</p>
<p>36 26 27</p>
<p>37 27 28</p>
<p>38 28 29</p>
<p>39 29 30</p>
<p>40 30 31</p>
<p>42 32 33</p>
<p>43 33 34</p>
<p>44 34 35</p>
<p>45 35 36</p>
<p>46 36 37</p>
<p>47 37 38</p>
<p>48 38 39</p>
<p>49 39 40</p>
<p>51 41 42</p>
<p>52 42 43</p>
<p>53 43 44</p>
<p>54 44 45</p>
<p>55 45 46</p>
<p>56 46 47</p>
<p>57 47 48</p>
<p>58 48 49</p>
<p>60 56 57</p>
<p>61 57 58</p>
<p>63 59 60</p>
</polygons>
</mesh>
</geometry>
</library_geometries>

Rehno Lindeque

unread,
Mar 24, 2011, 4:26:01 AM3/24/11
to sce...@googlegroups.com
So yes, I'm sorry for the late reply, I've been fighting with my
internet connection.
That is correct SceneJS-PyCollada does not yet support <polygons>,
however in your case you can just change <polygons> to <polylist>.
The difference between the two is that <polygons> can have holes in them
while <polylist> cannot. PyCollada has recently added support for
<polygons>, so it will be there... eventually :)

Other geometry that's supported is <triangles> and <lines>...

Augusto

unread,
May 9, 2011, 2:00:22 PM5/9/11
to sce...@googlegroups.com
I had no problems getting it and pycollada installed and running, but it's dying on a test collada file that I generated with Sketchup (attached).  The test file is very simple -- just a box.

It fails with an index out of bounds error.  I tried the same model on the online js-based translator with no luck there either -- it fails trying to pull out a tag from the XML.  Is the sketchup collada model improperly formatted?

- Augusto
box.dae

Rehno Lindeque

unread,
May 10, 2011, 3:18:27 AM5/10/11
to sce...@googlegroups.com
Thanks Augusto! I'll try to take a look at it tonight.
https://github.com/rehno-lindeque/scenejs-pycollada/issues/1

-Rehno

Terrance Mok

unread,
May 19, 2011, 6:35:06 PM5/19/11
to sce...@googlegroups.com
I recently tried out Blender 2.57 and now I'm hitting a collada export that's failing in scenejs-pycollada conversion. Exporting the same model using Blender 2.49 worked so I guess they mucked around with something.  Perhaps you can tell if the Blender guys broke the new exporter or if scenejs-pycollada is missing something.  

The console output is this:
Created the sample file 'index.html'
Created the file '.\test.js'
<collada.material.Material object at 0x0286AA90>
Unknown transparency input: None
Traceback (most recent call last):
  File "..\scenejs-pycollada.py", line 169, in <module>
    main(sys.argv[1:])
  File "..\scenejs-pycollada.py", line 135, in main
    translate(serializer, collada_obj, debug, verbose)
  File "E:\Users\user\Documents\mok\git\scenejs-pycollada\translator.py", line 38, in translate
    jsgeom = translate_geometry(geom)
  File "E:\Users\user\Documents\mok\git\scenejs-pycollada\translator.py", line 238, in translate_geometry
    index_map[vert_index][:-1] = attr_indexes[1:]
ValueError: output operand requires a reduction, but reduction is not enabled

test.dae

Rehno Lindeque

unread,
May 20, 2011, 9:34:48 AM5/20/11
to sce...@googlegroups.com
Thanks Terrance, sorry that I've been so quiet on the exporter. I've
been hectically busy with work, but I am in the process of updating it
for SceneJS v0.8. I think that bug _might_ already fixed there. ( if you
are desperate enough you could try my pull from my personal repository,
but I'm not sure if I've pushed that fix there yet:
https://github.com/rehno-lindeque/scenejs-pycollada )

Issue is logged here:
https://github.com/rehno-lindeque/scenejs-pycollada/issues/2

Giovanni

unread,
May 23, 2011, 3:48:30 AM5/23/11
to sce...@googlegroups.com
I've problems with scenejs-pycollada too.
The procedure export without problems but i can't render the object.

Can you render the objects Attacched?

Thanks,
Giovanni
solopensile_blender.js
solopensile_blender.dae
Reply all
Reply to author
Forward
0 new messages