sueastside edited this page Sep 14, 2014 · 1 revision

Ideas are split per sub-module of DAMN.

If the intended end result is nice and shiny, it's probably a project candidate ;). So feel free to submit your own ideas, or discuss them some of the administrators/mentors if you want some more guidance. At this point no specific project has been assigned to any specific mentor, so if you cannot find "the" mentor for your questions, try to talk to botanic or sueastside and they will help you out.

If you have suggestions for other improvements or features, feel free to discuss it with us on IRC (freenode # peragro)

DAMN-AT

The module responsible for analyzing art resources into File Descriptions into the Metadata Store and trans-coding assets from one format to another.

####Image formats

  • Summary: Increase support for image files
  • Technical Details: You will write DAMN Transcoders and Analyzers which call commandline applications to extract metadata out of Photoshop, Gimp and other common png/tiff/jpg formats and support the ability to convert them to other formats (with options)
  • Specification: Extend the transcoding engine to support, bmp, gif, jpeg, mng, pcx, pdf, png, ps, psd, svg, tiff, tga, xpm etc
  • Difficulty: Easy
  • Required Skills: Python, command line scripting
  • Mentor: Botanic, sueastside

####3D file WebGL previewer

  • Summary: Add a WebGL previewer for 3D files into the DAMN client.
  • Technical Details: You'll write a python plugin for DAMN to convert to three.js internal format, and build an three.js canvas to embed into DAMN's web interface, and allow to rotate/zoom/pan the model and play animations. With a fallback to pre-rendered frames for browsers that don't support WebGL.
  • Specification: input files types are, obj, blend, fbx and dae. With support for even more formats in the future. Previews needs to be centered on the mesh in the file, as such a center as well as zoom will need to be determined algorithmically.
  • Difficulty: Medium
  • Required Skills: Javascript, WebGL/Three.js, Python, HTML/CSS
  • Mentor: sueastside, Hooloovoo

####Sound file previewer

  • Summary: Add a HTML5 sound previewer into the DAMN client.
  • Technical Details: You'll write a python plugin for DAMN to convert a sound file into a waveform image and to also convert it to a web-friendly audio streaming format. You'll extend the DAMN client with an HTML5 audio player which shows the waveform instead of the timeline and allows to play/pause the selected asset.
  • Specification: The supported formats will need to be wav, mp3, ogg, etc as well as it will need to be able to trans-code any format you can't get a waveform from directly.
  • Difficulty: Medium
  • Required Skills: Javascript, Python, cmd scripting, HTML/CSS
  • Mentor: Botanic, sueastside

####Blender scene rendering

  • Summary: Render blender scene web-compatible format for streaming in the browser, with support for overriding render settings.
  • Technical Details: You'll write a python plugin for DAMN to render a Blender animation sequence to a web-friendly video streaming format and a sequence of stills,of the key-frames. You'll extend the DAMN client with an HTML5 video player that on hover shows the stills in sequence and on play starts streaming the video.
  • Specification: TBD
  • Difficulty: Medium
  • Required Skills: Javascript, Python, cmd scripting, Blender, HTML/CSS
  • Mentor: TBD

####Multi-step transcoding

  • Summary: DAMN-AT currently supports transcoding from one format to another if that is directly supported by the specific plugin, you will add support to chain several plugins to convert from a source format to a destination format with one or more intermediate formats.
  • Technical Details: You'll extend the Transcoder plugin to build a weighted graph of src/dst formats and implement a search algorithm to find the most efficient way to convert from one format to another, keeping in account the cost of intermediate formats and the supplied conversion options.
  • Specification: TBD
  • Difficulty: Medium
  • Required Skills: Python, cmd scripting
  • Mentor: TBD

DAMN-DIFF

The module responsible for taking analyzed art assets and calculating merges and dif's for them.

####Image diff

  • Summary: Add support for diff's of image files
  • Technical Details: You add support for visual diffs of image files, you will need to use a lossless tree to determine when a diff is possible. For example a uncompressed BMP file can have a diff where a PNG file is much harder and a PSD is impossible (as some layer data etc may be lost)
  • Specification: When a diff is possible you will take the image format and process it via DAMN-AT, from there you will calculate the diff. Take a look at http://huddle.github.io/Resemble.js/ and Github's image diff tools for inspiration.
  • Difficulty: Medium
  • Required Skills: Python, command line scripting
  • Mentor: Botanic, sueastside

####Blender file diff+merge

  • Summary: Add support for diff's of blend files
  • Technical Details: You add support for diffs of blend files, you will need to take the metadata from the blend file and add the ability to take 2 blend files with different changes and merge them.
  • Specification: You will need take the Asset tree from DAMN-AT's FileDescription and see if there are changes to the same assets in a blend, if so it may not be possible to merge. If there are only changes to different assets or additions you will then take the 2 blend files, take the changes or additions and create a new 3rd merged blend file.
  • Difficulty: Hard
  • Required Skills: Python, 3D, blender, command line scripting
  • Mentor: Botanic, sueastside

####3D mesh diff

  • Summary: Add support for visual diff's of 3D meshes
  • Technical Details: You add support to visualize changes between versions of a 3D mesh.
  • Specification: You will transcode different versions of a mesh to a common or internal format to then calculate a BSP for both meshes to determine the spacial differences between the two. Take a look at https://github.com/blog/1633-3d-file-diffs for inspiration.
  • Difficulty: Hard
  • Required Skills: Python, 3D, blender, command line scripting
  • Mentor: Botanic, sueastside

DAMN-index

Indexes the FileDescriptions in the MetadataStore for quick searching into a ElasticSearch index.

####Faceted search and queries.

  • Summary: Write and abstract the way searches are performed, adding features like: More like/similar -results, further filtering of a result with facets, ..
  • Technical Details: You'll write interfaces to index the metadata contained in DAMN, and to query and search for assets in an abstracted way, which can be easily called from higher level application code like damn-rest.
  • Specification: You will implement the DAMNIndex and DAMNSearch as currently defined in the api docs.
  • Difficulty: Difficult
  • Required Skills: Python, JSON, REST, ElasticSearch(Java)
  • Mentor: Botanic, sueastside

Django-Project

The module responsible for project management; creation/editing of tasks;...

####Annotations

  • Summary: Add support for Asset annotations
  • Technical Details: Annotations are simple user drawn graphics on a rendered asset preview to highlight a point of interest, that is then serialized and stored with a user's comment.
  • Specification: User drawn strokes are saved as a vector graphic serialized to JSON, with an assetID+transcoder options for the displayed asset preview, so the drawing can be recreated by any client with the least amount of data transfer or storage. The annotations is stored with a OneToOne-relationship to the comment.
  • Difficulty: Medium
  • Required Skills: Javascript, HTML/CSS, JSON, REST, Python
  • Mentor: Botanic, sueastside

####Workflow editor

  • Summary: A Drag&Drop workflow editor.
  • Technical Details: You'll develop a work flow editor for the DAMN UI using jsPlumb. You'll update the existing REST apis to update the states and transitions. You'll add a way to create and edit transition events.
  • Specification: TBD
  • Difficulty: Medium
  • Required Skills: Javascript, HTML/CSS, JSON, REST, Python
  • Mentor: Botanic, sueastside

####Gantt chart

  • Summary: A Gantt chart for project's tasks
  • Technical Details: You will implement a Gantt chart in the DAMN UI using html and React. You'll edit or create REST apis for updating the task's dates and project scheduling.
  • Specification: TBD
  • Difficulty: Difficult
  • Required Skills: Javascript, HTML/CSS, JSON, REST, Python
  • Mentor: Botanic, sueastside

DAMN-REST

REST-api for the whole of DAMN.

DAMN

The DAMN UI built with React on top of DAMN-REST

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.