Key Information

Register
Submit
The challenge is finished.

Challenge Overview

For the Hercules client, we are going to be doing some work that involves a couple of their drawing technologies, name "pxCore" and "pxScene".  The links below offer a lot more details on these particular technologies.  pxscene is a graphics drawing library that has Javascript hooks exposed thorugh Node.js and v8.  This challenge will investigate integrating some drawing functionality into pixi.js to allow for using pixi.js APIs to target drawing to pxscene

Pxscene

Pxscene is a platform independent drawing platform that will be used on a wide variety of embedded devices for the Hercules client.  You can find more information here, and you can download the app to be used for testing:  
http://www.pxscene.org/

A link to the Github project and build instructions for Mac are provided in the forum.

Pixi.js

Pixi.js is a Javascript graphics library that has a lot of nice features and the ability to target either WebGL or Canvas2D.  We've used it extensively for a project for the client here that may eventually be ported to work on pxscene.

Pxscene limitations

The main task will be injecting a 3rd drawing target into Pixi (in addition to WebGL / Canvas2D), but note that pxscene runs in V8, not a true browser, so there may be some additional compatibility issues

We've done a little investigation into what pxscene can do and what it can't do.  One bit missing piece is the "document" and "window" APIs.  Neither is used heavily by pixi, but we will need to have some way to tell Pixi that we are rendering to pxscene instead of a browser and have it use the proper APIs for bootstrapping the drawable view.

Some of the interaction code may need to be updated / changed as well to use the pxscene APIs.

Note that there may be technical limitations to implementing some of the requirements.  Those can be discussed in the forum and we may limit scope accordingly.

Previous PoC

We ran a previous PoC to help bootstrap Pixi on pxscene and that code and documentation will be available in the forum.  We're going to build off of what was already done.

Requirements

For this challenge, we are going to target updates to Pixi.js to at least be able to run the "Basics" examples found here:  http://pixijs.github.io/examples/#/basics/, including:

* Container (http://pixijs.github.io/examples/#/basics/container.js)
* Container Pivot (http://pixijs.github.io/examples/#/basics/container-pivot.js)
* Spritesheet Animation (http://pixijs.github.io/examples/#/basics/spritesheet.js)
* Click (http://pixijs.github.io/examples/#/basics/click.js
* Tiling Sprite (http://pixijs.github.io/examples/#/basics/tiling-sprite.js)
* Text (http://pixijs.github.io/examples/#/basics/text.js)

Each individual example can be a separate pxscene JS file that is loaded in the pxscene app for testing.  

Heroku hosting

I'd like to be able to host the examples on Heroku for easy publishing to the customer for testing.  Please provide a basic Heroku wrapper around the code that we can deploy to load examples over HTTP instead of file:// links.  Something like this would be good, for what would be the input to pxscene.

http://tc-pixi-js.herokuapp.com/examples/basic.js

Submission

For this challenge, please submit:

1.  An updated set of Pixi sources that target pxscene
2.  A set of example JS files that match the examples on the pixijs Github site that can be run in the pxscene app
3.  A video showing the examples being tested in pxscene
4.  A README documenting any setup that needs to be done, and any limitations that your ran into while investigating.
5.  Deployment instructions for putting the examples on Heroku


Links

Pixi.js
Pxscene 
http://johnrobinsn.github.io/pxScene2d/docs/

Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30056438