Show simple item record

 
dc.contributor.author Mayer, Jiří
dc.contributor.author Pecina, Pavel
dc.contributor.author Hajič jr., Jan
dc.date.accessioned 2024-12-31T20:42:03Z
dc.date.available 2024-12-31T20:42:03Z
dc.date.issued 2024-12-30
dc.identifier.uri http://hdl.handle.net/11234/1-5835
dc.description Smashcima is a library and framework for synthesizing images containing handwritten music for creating synthetic training data for OMR models. It is primarily intended to be used as part of optical music recognition workflows, esp. with domain adaptation in mind. The target user is therefore a machine-learning, document processing, library sciences, or computational musicology researcher with minimal skills in python programming. Smashcima is the only tool that simultaneously: - synthesizes handwritten music notation, - produces not only raster images but also segmentation masks, classification labels, bounding boxes, and more, - synthesizes entire pages as well as individual symbols, - synthesizes background paper textures, - synthesizes also polyphonic and pianoform music images, - accepts just MusicXML as input, - is written in Python, which simplifies its adoption and extensibility. Therefore, Smashcima brings a unique new capability for optical music recognition (OMR): synthesizing a near-realistic image of handwritten sheet music from just a MusicXML file. As opposed to notation editors, which work with a fixed set of fonts and a set of layout rules, it can adapt handwriting styles from existing OMR datasets to arbitrary music (beyond the music encoded in existing OMR datasets), and randomize layout to simulate the imprecisions of handwriting, while guaranteeing the semantic correctness of the output rendering. Crucially, the rendered image is provided also with the positions of all the visual elements of music notation, so that both object detection-based and sequence-to-sequence OMR pipelines can utilize Smashcima as a synthesizer of training data. (In combination with the LMX canonical linearization of MusicXML, one can imagine the endless possibilities of running Smashcima on inputs from a MusicXML generator.)
dc.publisher Charles University, Faculty of Mathematics and Physics, Institute of Formal and Applied Linguistics (UFAL)
dc.rights Apache License 2.0
dc.rights.uri http://opensource.org/licenses/Apache-2.0
dc.source.uri https://github.com/OMR-Research/Smashcima
dc.subject Optical music recognition
dc.subject synthetic data
dc.subject handwritten notation
dc.title Smashcima
dc.type toolService
metashare.ResourceInfo#ResourceComponentType#ToolServiceInfo.languageDependent false
metashare.ResourceInfo#ContentInfo.detailedType tool
dc.rights.label PUB
has.files yes
branding LINDAT / CLARIAH-CZ
demo.uri https://huggingface.co/spaces/Jirka-Mayer/Smashcima
contact.person Jiří Mayer mayer@ufal.mff.cuni.cz Charles University, Faculty of Mathematics and Physics, Institute of Formal and Applied Linguistics (UFAL)
contact.person Jan Hajič jr. hajicj@ufal.mff.cuni.cz Charles University, Faculty of Mathematics and Physics, Institute of Formal and Applied Linguistics (UFAL)
sponsor Ministry of Culture DH23P03OVV008 OmniOMR – rozpoznávání hudebního záznamu pomocí strojového učení pro digitální knihovny nationalFunds
files.size 9357835
files.count 4


 Files in this item

 Download all files in item (8.92 MB)
This item is
Publicly Available
and licensed under:
Apache License 2.0
Icon
Name
Smashcima-1.0.0.zip
Size
3.24 MB
Format
application/zip
Description
Smashcima release v1.0
MD5
27d93e240d5b3c7b0f19b9eaf0cd4e7b
 Download file  Preview
 File Preview  
  • Smashcima-1.0.0
    • README.md5 kB
    • .gitignore3 kB
    • tests
      • __main__.py293 B
      • __init__.py0 B
      • scene
        • NameofViaDummyTest.py564 B
        • SceneObjectRelationshipQueriesTest.py4 kB
        • __init__.py0 B
      • orchestration
        • ContainerTest.py3 kB
        • __init__.py0 B
    • Makefile1 kB
    • jupyter
      • layout_synthesis
        • beams.ipynb1 kB
        • duration_dots.ipynb1 kB
        • stems.musicxml11 kB
        • ledger_lines.ipynb1 kB
        • rests.musicxml11 kB
        • flags.musicxml9 kB
        • rests.ipynb1 kB
        • notehead_placement.musicxml30 kB
        • accidentals.musicxml15 kB
        • stems.ipynb1 kB
        • beams.musicxml28 kB
        • duration_dots.musicxml9 kB
        • notehead_placement.ipynb1 kB
        • accidentals.ipynb1 kB
        • ledger_lines.musicxml17 kB
        • flags.ipynb1 kB
      • dev
        • mxl_loader.ipynb1 kB
        • base_handwritten_model.ipynb1 kB
      • exporting
        • bitmap_rendering.ipynb2 kB
        • svg_exporting.ipynb2 kB
      • assets
        • muscima_pp
          • assets.ipynb1 kB
          • glyphs_zoo.ipynb6 kB
          • glyphs.ipynb1 kB
        • README.ipynb4 kB
      • docs
        • tutorial-2.ipynb3 kB
        • tutorial-3.ipynb5 kB
        • scene-objects.ipynb3 kB
        • tutorial-1.ipynb1 kB
        • affine-spaces-and-rendering.ipynb2 kB
      • README.ipynb1 kB
    • .vscode
      • settings.json125 B
    • pyproject.toml1 kB
    • Dockerfile978 B
    • docs
      • todo-list.md2 kB
      • 02_models-and-service-orchestration.md13 kB
      • 04_affine-objects-and-rendering.md10 kB
      • pdf
        • smashcima-technical-documentation.pdf1 MB
        • smashcima-user-documentation.pdf1 MB
      • 07_glyph-synthesizer.md6 kB
      • tutorials
        • 2-changing-background-texture.md5 kB
        • 3-using-custom-glyphs.md9 kB
        • 1-producing-music-notation-images.md4 kB
        • 0_introduction.md4 kB
      • assets
        • readme-example.jpg66 kB
        • logo-large.png301 kB
        • ufal-logo.pdf3 kB
        • line-glyphs
          • smufl_stem.png403 B
          • smashcima_ledgerLine.png191 B
          • smashcima_beamHook.png176 B
          • smufl_brace.png2 kB
          • smashcima_beam.png271 B
          • smufl_bracket.png3 kB
        • omniomr-logo.png161 kB
        • tutorial-3
          • red-circles_thumb.jpg43 kB
        • scene-objects
          • note-list-graph.png41 kB
          • containers-graph.png79 kB
          • note-color-graph.png21 kB
        • glyphs
          • smufl_accidentalFlat.png414 B
          • smufl_rest8th.png434 B
          • smufl_accidentalDoubleSharp.png252 B
          • smufl_fClef.png712 B
          • smufl_noteheadWhole.png301 B
          • smufl_flag8thDown.png291 B
          • smufl_restQuarter.png401 B
          • smufl_flag8thUp.png305 B
          • smufl_accidentalSharp.png641 B
          • smufl_timeSigCommon.png449 B
          • smufl_timeSig2.png350 B
          • smufl_restWhole.png278 B
          • smufl_flag16thDown.png377 B
          • smufl_flag16thUp.png321 B
          • smufl_augmentationDot.png106 B
          • smufl_noteheadBlack.png202 B
          • smufl_timeSig4.png428 B
          • smufl_gClef.png1 kB
          • smufl_restHalf.png233 B
          • smufl_cClef.png1 kB
          • smufl_rest16th.png459 B
          • smufl_accidentalNatural.png395 B
          • smufl_articStaccatoBelow.png122 B
        • smashcima-logo.svg26 kB
        • tutorial-1
          • page_1_thumb.jpg38 kB
          • page_0_thumb.jpg33 kB
          • page_0_svg.jpg42 kB
          • lc5003150.musicxml170 kB
        • smashcima-logo.png81 kB
      • 09_line-glyphs.md1 kB
      • 03_scene-objects.md16 kB
      • 05_synthesizer-interfaces.md2 kB
      • build-deliverable
        • process_readme.sh1 kB
        • pandoc_smashcima_template.latex13 kB
        • build_user_documentation.sh1 kB
        • defaults.yaml372 B
        • build_technical_documentation.sh1 kB
      • 08_glyphs.md3 kB
      • 06_column-layout-synthesizer.md2 kB
      • 00_introduction.md3 kB
      • 01_design-overview.md5 kB
      • checklists
        • deploying-gradio-demo.md1 kB
        • publishing-to-pypi.md1 kB
        • before-commit.md206 B
    • gradio_demo
      • __main__.py3 kB
      • DemoModel.py1 kB
      • utils.py575 B
      • __init__.py0 B
      • asset_bundles.py1 kB
    • testing
      • .gitignore25 B
      • input.mscz3 kB
      • input.musicxml5 kB
    • LICENSE11 kB
    • smashcima
      • __init__.py879 B
      • jupyter
        • __init__.py0 B
        • display_glyphs.py1 kB
        • display_scene_graph.py3 kB
      • loading
        • load_score.py1 kB
        • MusicXmlLoader.py23 kB
        • __init__.py78 B
      • synthesis
        • style
          • StyleDomain.py782 B
          • MuscimaPPStyleDomain.py1 kB
          • MzkPaperStyleDomain.py1 kB
          • __init__.py172 B
          • Styler.py1 kB
        • layout
          • column
            • Column.py1 kB
            • __init__.py0 B
            • BarlinesColumn.py1 kB
            • ColumnBase.py4 kB
            • ClefsColumn.py2 kB
            • ColumnLayoutSynthesizer.py16 kB
            • Skyline.py3 kB
            • EventColumn.py2 kB
            • AugmentationDotsColumn.py7 kB
            • NoteheadsColumn.py12 kB
            • RestsColumn.py4 kB
            • AccidentalsColumn.py4 kB
          • __init__.py121 B
          • BeamStemSynthesizer.py13 kB
        • glyph
          • MuscimaPPLineSynthesizer.py2 kB
          • __init__.py183 B
          • MuscimaPPGlyphSynthesizer.py4 kB
          • NaiveLineSynthesizer.py1 kB
        • __init__.py330 B
        • GlyphSynthesizer.py2 kB
        • page
          • SolidColorPaperSynthesizer.py1 kB
          • Quilter.py5 kB
          • PaperSynthesizer.py633 B
          • __init__.py364 B
          • NaiveStafflinesSynthesizer.py3 kB
          • StafflinesSynthesizer.py901 B
          • MzkQuiltingPaperSynthesizer.py1 kB
          • SimplePageSynthesizer.py3 kB
        • LineSynthesizer.py3 kB
      • assets
        • textures
          • mzk_paper_patches.csv637 B
          • __init__.py0 B
          • MzkPaperPatches.py3 kB
        • download_file.py1 kB
        • AssetBundle.py3 kB
        • glyphs
          • muscima_pp
            • __init__.py0 B
            • __main__.py743 B
            • get_symbols.py25 kB
            • MppPage.py3 kB
            • get_line_endpoints.py1 kB
            • PointCloud.py789 B
            • MppGlyphMetadata.py1 kB
            • LineList.py1 kB
            • SymbolRepository.py2 kB
            • MuscimaPPGlyphs.py5 kB
            • PackedGlyph.py1 kB
          • __init__.py0 B
        • datasets
          • MuscimaPP.py1 kB
        • __init__.py0 B
        • AssetRepository.py2 kB
      • scene
        • ScenePoint.py1 kB
        • SmuflLabels.py11 kB
        • nameof_via_dummy.py617 B
        • semantic
          • Pitch.py3 kB
          • ScoreEvent.py1 kB
          • TimeSignature.py972 B
          • Note.py339 B
          • BeamValue.py318 B
          • RestSemantic.py380 B
          • Event.py1 kB
          • ClefSign.py297 B
          • StaffSemantic.py778 B
          • Clef.py2 kB
          • Score.py3 kB
          • ScoreMeasure.py1 kB
          • Chord.py2 kB
          • BeamedGroup.py2 kB
          • TypeDuration.py1 kB
          • MeasureRest.py691 B
          • AttributesChange.py929 B
          • Part.py2 kB
          • AccidentalValue.py427 B
          • Attributes.py2 kB
          • KeySignature.py551 B
          • Measure.py3 kB
          • Durable.py669 B
          • __init__.py798 B
          • StemValue.py616 B
        • ComposedGlyph.py3 kB
        • AffineSpaceVisitor.py1 kB
        • Sprite.py9 kB
        • Glyph.py4 kB
        • SmashcimaLabels.py2 kB
        • ViewBox.py411 B
        • AffineSpace.py1 kB
        • LabeledRegion.py696 B
        • Scene.py2 kB
        • SceneObject.py6 kB
        • visual
          • StaffVisual.py1 kB
          • AugmentationDot.py903 B
          • LedgerLine.py1 kB
          • StaffCoordinateSystem.py807 B
          • SystemMeasure.py867 B
          • NoteheadSide.py246 B
          • Flag.py438 B
          • Stem.py1 kB
          • BeamCoordinateSystem.py2 kB
          • RestVisual.py3 kB
          • Beam.py823 B
          • System.py716 B
          • Accidental.py467 B
          • Notehead.py1 kB
          • Page.py645 B
          • StaffMeasure.py1 kB
          • BeamHook.py898 B
          • __init__.py599 B
        • __init__.py955 B
        • LineGlyph.py1 kB
        • Region.py1 kB
      • config.py536 B
      • random_between.py230 B
      • orchestration
        • Model.py4 kB
        • Container.py2 kB
        • BaseHandwrittenModel.py8 kB
        • __init__.py167 B
      • geometry
        • __init__.py242 B
        • Point.py862 B
        • Transform.py3 kB
        • Quad.py1 kB
        • Polygon.py1 kB
        • units.py575 B
        • Contours.py824 B
        • Vector2.py2 kB
        • Rectangle.py4 kB
      • _version.py109 B
      • exporting
        • DebugGlyphRenderer.py868 B
        • BitmapRenderer.py5 kB
        • __init__.py131 B
        • SvgExporter.py7 kB
Icon
Name
Smashcima-1.0.0.tar.gz
Size
3.14 MB
Format
application/x-gzip
Description
Smashcima release v1.0
MD5
74dc6d6fd36de8293c6d6cf73f6863ce
 Download file  Preview
 File Preview  
  • Smashcima-1.0.0
    • README.md5 kB
    • .gitignore3 kB
    • tests
      • __main__.py293 B
      • __init__.py0 B
      • scene
        • NameofViaDummyTest.py564 B
        • SceneObjectRelationshipQueriesTest.py4 kB
        • __init__.py0 B
      • orchestration
        • ContainerTest.py3 kB
        • __init__.py0 B
    • Makefile1 kB
    • jupyter
      • layout_synthesis
        • beams.ipynb1 kB
        • duration_dots.ipynb1 kB
        • stems.musicxml11 kB
        • ledger_lines.ipynb1 kB
        • rests.musicxml11 kB
        • flags.musicxml9 kB
        • rests.ipynb1 kB
        • notehead_placement.musicxml30 kB
        • accidentals.musicxml15 kB
        • stems.ipynb1 kB
        • beams.musicxml28 kB
        • duration_dots.musicxml9 kB
        • notehead_placement.ipynb1 kB
        • accidentals.ipynb1 kB
        • ledger_lines.musicxml17 kB
        • flags.ipynb1 kB
      • dev
        • mxl_loader.ipynb1 kB
        • base_handwritten_model.ipynb1 kB
      • exporting
        • bitmap_rendering.ipynb2 kB
        • svg_exporting.ipynb2 kB
      • assets
        • muscima_pp
          • assets.ipynb1 kB
          • glyphs_zoo.ipynb6 kB
          • glyphs.ipynb1 kB
        • README.ipynb4 kB
      • docs
        • tutorial-2.ipynb3 kB
        • tutorial-3.ipynb5 kB
        • scene-objects.ipynb3 kB
        • tutorial-1.ipynb1 kB
        • affine-spaces-and-rendering.ipynb2 kB
      • README.ipynb1 kB
    • .vscode
      • settings.json125 B
    • pyproject.toml1 kB
    • Dockerfile978 B
    • docs
      • todo-list.md2 kB
      • 02_models-and-service-orchestration.md13 kB
      • 04_affine-objects-and-rendering.md10 kB
      • pdf
        • smashcima-technical-documentation.pdf1 MB
        • smashcima-user-documentation.pdf1 MB
      • 07_glyph-synthesizer.md6 kB
      • tutorials
        • 2-changing-background-texture.md5 kB
        • 3-using-custom-glyphs.md9 kB
        • 1-producing-music-notation-images.md4 kB
        • 0_introduction.md4 kB
      • assets
        • readme-example.jpg66 kB
        • logo-large.png301 kB
        • ufal-logo.pdf3 kB
        • line-glyphs
          • smufl_stem.png403 B
          • smashcima_ledgerLine.png191 B
          • smashcima_beamHook.png176 B
          • smufl_brace.png2 kB
          • smashcima_beam.png271 B
          • smufl_bracket.png3 kB
        • omniomr-logo.png161 kB
        • tutorial-3
          • red-circles_thumb.jpg43 kB
        • scene-objects
          • note-list-graph.png41 kB
          • containers-graph.png79 kB
          • note-color-graph.png21 kB
        • glyphs
          • smufl_accidentalFlat.png414 B
          • smufl_rest8th.png434 B
          • smufl_accidentalDoubleSharp.png252 B
          • smufl_fClef.png712 B
          • smufl_noteheadWhole.png301 B
          • smufl_flag8thDown.png291 B
          • smufl_restQuarter.png401 B
          • smufl_flag8thUp.png305 B
          • smufl_accidentalSharp.png641 B
          • smufl_timeSigCommon.png449 B
          • smufl_timeSig2.png350 B
          • smufl_restWhole.png278 B
          • smufl_flag16thDown.png377 B
          • smufl_flag16thUp.png321 B
          • smufl_augmentationDot.png106 B
          • smufl_noteheadBlack.png202 B
          • smufl_timeSig4.png428 B
          • smufl_gClef.png1 kB
          • smufl_restHalf.png233 B
          • smufl_cClef.png1 kB
          • smufl_rest16th.png459 B
          • smufl_accidentalNatural.png395 B
          • smufl_articStaccatoBelow.png122 B
        • smashcima-logo.svg26 kB
        • tutorial-1
          • page_1_thumb.jpg38 kB
          • page_0_thumb.jpg33 kB
          • page_0_svg.jpg42 kB
          • lc5003150.musicxml170 kB
        • smashcima-logo.png81 kB
      • 09_line-glyphs.md1 kB
      • 03_scene-objects.md16 kB
      • 05_synthesizer-interfaces.md2 kB
      • build-deliverable
        • process_readme.sh1 kB
        • pandoc_smashcima_template.latex13 kB
        • build_user_documentation.sh1 kB
        • defaults.yaml372 B
        • build_technical_documentation.sh1 kB
      • 08_glyphs.md3 kB
      • 06_column-layout-synthesizer.md2 kB
      • 00_introduction.md3 kB
      • 01_design-overview.md5 kB
      • checklists
        • deploying-gradio-demo.md1 kB
        • publishing-to-pypi.md1 kB
        • before-commit.md206 B
    • gradio_demo
      • __main__.py3 kB
      • DemoModel.py1 kB
      • utils.py575 B
      • __init__.py0 B
      • asset_bundles.py1 kB
    • testing
      • .gitignore25 B
      • input.mscz3 kB
      • input.musicxml5 kB
    • LICENSE11 kB
    • smashcima
      • __init__.py879 B
      • jupyter
        • __init__.py0 B
        • display_glyphs.py1 kB
        • display_scene_graph.py3 kB
      • loading
        • load_score.py1 kB
        • MusicXmlLoader.py23 kB
        • __init__.py78 B
      • synthesis
        • style
          • StyleDomain.py782 B
          • MuscimaPPStyleDomain.py1 kB
          • MzkPaperStyleDomain.py1 kB
          • __init__.py172 B
          • Styler.py1 kB
        • layout
          • column
            • Column.py1 kB
            • __init__.py0 B
            • BarlinesColumn.py1 kB
            • ColumnBase.py4 kB
            • ClefsColumn.py2 kB
            • ColumnLayoutSynthesizer.py16 kB
            • Skyline.py3 kB
            • EventColumn.py2 kB
            • AugmentationDotsColumn.py7 kB
            • NoteheadsColumn.py12 kB
            • RestsColumn.py4 kB
            • AccidentalsColumn.py4 kB
          • __init__.py121 B
          • BeamStemSynthesizer.py13 kB
        • glyph
          • MuscimaPPLineSynthesizer.py2 kB
          • __init__.py183 B
          • MuscimaPPGlyphSynthesizer.py4 kB
          • NaiveLineSynthesizer.py1 kB
        • __init__.py330 B
        • GlyphSynthesizer.py2 kB
        • page
          • SolidColorPaperSynthesizer.py1 kB
          • Quilter.py5 kB
          • PaperSynthesizer.py633 B
          • __init__.py364 B
          • NaiveStafflinesSynthesizer.py3 kB
          • StafflinesSynthesizer.py901 B
          • MzkQuiltingPaperSynthesizer.py1 kB
          • SimplePageSynthesizer.py3 kB
        • LineSynthesizer.py3 kB
      • assets
        • textures
          • mzk_paper_patches.csv637 B
          • __init__.py0 B
          • MzkPaperPatches.py3 kB
        • download_file.py1 kB
        • AssetBundle.py3 kB
        • glyphs
          • muscima_pp
            • __init__.py0 B
            • __main__.py743 B
            • get_symbols.py25 kB
            • MppPage.py3 kB
            • get_line_endpoints.py1 kB
            • PointCloud.py789 B
            • MppGlyphMetadata.py1 kB
            • LineList.py1 kB
            • SymbolRepository.py2 kB
            • MuscimaPPGlyphs.py5 kB
            • PackedGlyph.py1 kB
          • __init__.py0 B
        • datasets
          • MuscimaPP.py1 kB
        • __init__.py0 B
        • AssetRepository.py2 kB
      • scene
        • ScenePoint.py1 kB
        • SmuflLabels.py11 kB
        • nameof_via_dummy.py617 B
        • semantic
          • Pitch.py3 kB
          • ScoreEvent.py1 kB
          • TimeSignature.py972 B
          • Note.py339 B
          • BeamValue.py318 B
          • RestSemantic.py380 B
          • Event.py1 kB
          • ClefSign.py297 B
          • StaffSemantic.py778 B
          • Clef.py2 kB
          • Score.py3 kB
          • ScoreMeasure.py1 kB
          • Chord.py2 kB
          • BeamedGroup.py2 kB
          • TypeDuration.py1 kB
          • MeasureRest.py691 B
          • AttributesChange.py929 B
          • Part.py2 kB
          • AccidentalValue.py427 B
          • Attributes.py2 kB
          • KeySignature.py551 B
          • Measure.py3 kB
          • Durable.py669 B
          • __init__.py798 B
          • StemValue.py616 B
        • ComposedGlyph.py3 kB
        • AffineSpaceVisitor.py1 kB
        • Sprite.py9 kB
        • Glyph.py4 kB
        • SmashcimaLabels.py2 kB
        • ViewBox.py411 B
        • AffineSpace.py1 kB
        • LabeledRegion.py696 B
        • Scene.py2 kB
        • SceneObject.py6 kB
        • visual
          • StaffVisual.py1 kB
          • AugmentationDot.py903 B
          • LedgerLine.py1 kB
          • StaffCoordinateSystem.py807 B
          • SystemMeasure.py867 B
          • NoteheadSide.py246 B
          • Flag.py438 B
          • Stem.py1 kB
          • BeamCoordinateSystem.py2 kB
          • RestVisual.py3 kB
          • Beam.py823 B
          • System.py716 B
          • Accidental.py467 B
          • Notehead.py1 kB
          • Page.py645 B
          • StaffMeasure.py1 kB
          • BeamHook.py898 B
          • __init__.py599 B
        • __init__.py955 B
        • LineGlyph.py1 kB
        • Region.py1 kB
      • config.py536 B
      • random_between.py230 B
      • orchestration
        • Model.py4 kB
        • Container.py2 kB
        • BaseHandwrittenModel.py8 kB
        • __init__.py167 B
      • geometry
        • __init__.py242 B
        • Point.py862 B
        • Transform.py3 kB
        • Quad.py1 kB
        • Polygon.py1 kB
        • units.py575 B
        • Contours.py824 B
        • Vector2.py2 kB
        • Rectangle.py4 kB
      • _version.py109 B
      • exporting
        • DebugGlyphRenderer.py868 B
        • BitmapRenderer.py5 kB
        • __init__.py131 B
        • SvgExporter.py7 kB
    • pax_global_header52 B
Icon
Name
Smashcima-1.0.0_technical-documentation.pdf
Size
1.39 MB
Format
PDF
Description
Technical documentation for Smashcima v1.0
MD5
40817424d4d0dd806be711701b8e9592
 Download file
Icon
Name
Smashcima-1.0.0_user-documentation.pdf
Size
1.15 MB
Format
PDF
Description
User documentation for Smashcima v1.0
MD5
52b2c8a12088537d8d5673c877a223dd
 Download file

Show simple item record