Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

collada-dae-parser

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

collada-dae-parser

Parse collada .dae 3d animation files into json

  • 0.14.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
100
decreased by-67.64%
Maintainers
1
Weekly downloads
 
Created
Source

collada-dae-parser npm version Build Status

Parse collada .dae file vertex positions, textures, normals and animations

View live animated model demo

image

View demo source

What does it do?

collada-dae-parser parses a collada file and outputs JSON. This is useful for displaying skeletal animations in the browser.

collada-dae-parser is only concerned with giving you JSON. An animation system is outside of this modules scope, but skeletal-animation-system could be a useful start.

To Install

# API
$ npm install --save collada-dae-parser
# CLI
$ npm install -g collada-dae-parser

Making use of the parser

If you're unfamiliar with skeletal animation, the demo is a good starting point. Here's where we're parsing our collada file and buffering our graphics data. We're parsing at runtime in the demo, but in a real application you'd want to parse your collada files during a build step.

# Run the demo locally. Changes to the `src` and `demo` directories will live reload in your browser
# PRs and issues are welcome!
git clone https://github.com/chinedufn/collada-dae-parser
cd collada-dae-parser
npm install
npm run demo

Collada Support

collada-dae-parser tries to be useful for WebGL games and interactive demos, but does not try to support the entire collada spec. If you're trying to parse a model that is not supported, collada-dae-parser will try to let you know how to tweak it.

image

CLI

Output stringified JSON to stdout

# parse from stdin
cat my-3d-model.dae | dae2json > parsed-model.json

# parse from file
dae2json my-3d-modal.dae > parsed-model.json

API

parseDae(xmlFile) -> object

This function returns the parsed collada object.

xmlFile

Required

Type: string or Buffer

Your collada file data. Not the filename, the file contents.

Returned Object

TODO: Document this

var parseDae = require('collada-dae-parser')
var parsedCollada = parseDae(fs.readFileSync(fileName))
console.log(parsedCollada)
/*
  {
    jointNamePositionIndex: {...},
    jointInverseBindPoses: {...},
    keyframes: {...},
    vertexNormalIndices: [...],
    vertexNormals: [...],
    vertexPositionIndices: [...],
    vertexPositions: [...],
    vertexUVIndices: [...],
    vertexUVs: [...]
  }
*/
jointNamePositionIndex

Type: Object

lorem ipsum

jointInverseBindPoses

Type: Object

lorem ipsum

keyframes

Type: Object

lorem ipsum

vertexNormalIndices

Type: Array

lorem ipsum

vertexNormals

Type: Array

lorem ipsum

vertexPositionIndices

Type: Array

lorem ipsum

vertexPositions

Type: Array

lorem ipsum

vertexUVIndices

Type: Array

lorem ipsum

vertexUVs

Type: Array

lorem ipsum

TODO:

  • src: basic cli (potentially pull into own repo, but start here)
  • src: Allow file buffer to be passed in
  • src: Factor in bind shape matrix
  • src: Stop exporting bind shape matrix
  • demo: fix normals in demo lighting
  • demo: toggle between 2 animations
  • src: Remove callback from API
  • warning: Throw descriptive error message if user attempts to export multiple geometries
  • A separate package that uses collada-dae-parser to implement a stateless skeletal animation system
  • src / demo: add a textured demo model
  • src: rounding values. Currently lots of .999999 and 1.000001
  • src: All of the TODO: statements in code
  • demo: full screen demo with controls overlay
  • demo: Support mobile touch events
  • demo: allow zoom in, zoom out in demo
  • doc: Add a GIF of every test fixture animation and demo
  • doc: Documentation
  • warning: Somehow let the user know if their joints use non rigid transforms - until we actually support this
  • warning: You didn't export a geometry. Link them to the documentation
  • warning: If the base model or armature's location, translation and scale aren't 1.0 let user know that we don't support that. They should apply location, translation and scale before exporting
  • research: Look into supporting library materials

References

See Also

Credits

License

MIT

Keywords

FAQs

Package last updated on 17 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc