atome 0.1.00009 → 0.4.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -0
- data/README.md +74 -6
- data/Rakefile +14 -6
- data/app_builder_helpers/Rakefile +183 -25
- data/documentation/atome.md +14 -0
- data/documentation/database.JPG +0 -0
- data/documentation/framework/apis.md +14 -0
- data/documentation/framework/atome_explained.md +179 -0
- data/documentation/framework/box_content.md +53 -0
- data/documentation/framework/buld_the_gem.md +52 -0
- data/documentation/framework/datas_flows.md +28 -0
- data/documentation/framework/enhance_atome.md +79 -0
- data/documentation/framework/folder_architecture.md +47 -0
- data/documentation/framework/technical/rendering_flow.md +18 -0
- data/documentation/framework/technical/technical_description.md +23 -0
- data/documentation/framework/what_is_it.md +65 -0
- data/documentation/framework/what_it_can_do.md +25 -0
- data/documentation/images/1.png +0 -0
- data/documentation/images/2.png +0 -0
- data/documentation/images/3.png +0 -0
- data/documentation/images/atome.svg +12 -0
- data/documentation/images/list.png +0 -0
- data/documentation/images/logos/cordova.png +0 -0
- data/documentation/images/logos/freebsd.png +0 -0
- data/documentation/images/logos/opal.png +0 -0
- data/documentation/images/logos/puma.png +0 -0
- data/documentation/images/logos/roda.svg +1 -0
- data/documentation/images/logos/ruby.png +0 -0
- data/documentation/images/logos/tauri.png +0 -0
- data/documentation/installation/atome_server.md +184 -0
- data/documentation/tutorials/first_steps.md +148 -0
- data/documentation/tutorials/tutorials.md +15 -0
- data/documentation/tutorials/working_with_atome.md +60 -0
- data/exe/atome +178 -53
- data/lib/atome/atome_native_extensions.rb +5 -0
- data/lib/atome/extensions/geolocation.rb +14 -0
- data/lib/atome/extensions/helper.rb +123 -0
- data/lib/atome/extensions/ping.rb +13 -0
- data/lib/atome/extensions/sha.rb +6 -0
- data/lib/atome/extensions/utilities.rb +39 -0
- data/lib/atome/kernel/atome.rb +98 -0
- data/lib/atome/kernel/generators/generator.rb +387 -0
- data/lib/atome/kernel/generators/genesis.rb +265 -0
- data/lib/atome/kernel/generators/sanitizer.rb +77 -0
- data/lib/atome/kernel/generators/shapes.rb +40 -0
- data/lib/atome/kernel/properties/essential.rb +43 -0
- data/lib/atome/kernel/sparkle.rb +37 -0
- data/lib/atome/kernel/universe.rb +29 -0
- data/lib/atome/renderers/headless/properties/generator.rb +1 -0
- data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
- data/lib/atome/renderers/opal/extensions/color.rb +23 -0
- data/lib/atome/renderers/opal/extensions/geolocation.rb +14 -0
- data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
- data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
- data/lib/atome/renderers/opal/opal_browser.rb +2 -1
- data/lib/atome/renderers/opal/opal_parser.rb +1 -0
- data/lib/atome/renderers/opal/properties/generator.rb +1 -0
- data/lib/atome/renderers/renderer.rb +12 -0
- data/lib/atome/renderers/server/properties/generator.rb +9 -0
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +55 -2
- data/vendor/assets/Guardfile +4 -0
- data/vendor/assets/Rakefile +3 -0
- data/vendor/assets/application/index.rb +4 -0
- data/vendor/assets/build/css/style.css +21 -8
- data/vendor/assets/build/favicon.ico +0 -0
- data/vendor/assets/build/index.html +13 -4
- data/vendor/assets/build/js/atome/atome.js +68 -0
- data/vendor/assets/build/js/ping.min.js +2 -0
- data/vendor/assets/build/js/third_parties/createjs.min.js +19 -0
- data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
- data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
- data/vendor/assets/build/js/third_parties/three.min.js +6 -0
- data/vendor/assets/build/js/utilities/w3color.js +646 -0
- data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
- data/vendor/assets/build/medias/audios/clap.wav +0 -0
- data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
- data/vendor/assets/build/medias/audios/hihat.wav +0 -0
- data/vendor/assets/build/medias/audios/kick.wav +0 -0
- data/vendor/assets/build/medias/audios/riff.m4a +0 -0
- data/vendor/assets/build/medias/audios/snare.wav +0 -0
- data/vendor/assets/build/medias/audios/tom.wav +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
- data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
- data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
- data/vendor/assets/build/medias/images/atome.svg +12 -0
- data/vendor/assets/build/medias/images/avion.jpg +0 -0
- data/vendor/assets/build/medias/images/ballanim.png +0 -0
- data/vendor/assets/build/medias/images/blank.png +0 -0
- data/vendor/assets/build/medias/images/boat.png +0 -0
- data/vendor/assets/build/medias/images/cache.svg +10 -0
- data/vendor/assets/build/medias/images/dices.png +0 -0
- data/vendor/assets/build/medias/images/eVe_back.png +0 -0
- data/vendor/assets/build/medias/images/elephant.png +0 -0
- data/vendor/assets/build/medias/images/eyes.jpg +0 -0
- data/vendor/assets/build/medias/images/freebsd.png +0 -0
- data/vendor/assets/build/medias/images/grain_texture.png +0 -0
- data/vendor/assets/build/medias/images/green_planet.png +0 -0
- data/vendor/assets/build/medias/images/image_missing.svg +9 -0
- data/vendor/assets/build/medias/images/jeezs.png +0 -0
- data/vendor/assets/build/medias/images/keyboard.png +0 -0
- data/vendor/assets/build/medias/images/killer.jpg +0 -0
- data/vendor/assets/build/medias/images/living_room.png +0 -0
- data/vendor/assets/build/medias/images/logo.svg +14 -0
- data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
- data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
- data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
- data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
- data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
- data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
- data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
- data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
- data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
- data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
- data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
- data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
- data/vendor/assets/build/medias/images/moto.png +0 -0
- data/vendor/assets/build/medias/images/noise.svg +17 -0
- data/vendor/assets/build/medias/images/piano.png +0 -0
- data/vendor/assets/build/medias/images/poisson.jpg +0 -0
- data/vendor/assets/build/medias/images/red_planet.png +0 -0
- data/vendor/assets/build/medias/images/sky.jpg +0 -0
- data/vendor/assets/build/medias/images/the_mask.svg +8 -0
- data/vendor/assets/build/medias/images/tile.png +0 -0
- data/vendor/assets/build/medias/images/tile_black.png +0 -0
- data/vendor/assets/build/medias/images/tile_white.png +0 -0
- data/vendor/assets/build/medias/javascripts/test.js +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
- data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/box.rb +1 -0
- data/vendor/assets/build/{js/opal/opal_browser.js → medias/rubies/examples/circle.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/drag.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/link.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/parent.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/text.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/web.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
- data/vendor/assets/build/medias/rubies/test.rb +1 -0
- data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
- data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
- data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
- data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
- data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
- data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
- data/vendor/assets/r&d/ping.rb +3 -0
- data/vendor/assets/r&d/storage.rb +9 -0
- data/vendor/assets/r&d/view_example.rb +21 -0
- data/vendor/assets/server/atome_server.rb +74 -27
- data/vendor/assets/server/config.ru +2 -14
- metadata +424 -12
- data/lib/atome/kernel/atome_genesis.rb +0 -2
- data/lib/atome/kernel/properties/geometry.rb +0 -2
- data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
|
2
|
+
<span align="right">
|
3
|
+
|
4
|
+
[Main menu](../atome.md)
|
5
|
+
-
|
6
|
+
</span>
|
7
|
+
|
8
|
+
|
9
|
+
**How to build ans publish the gem**
|
10
|
+
-
|
11
|
+
|
12
|
+
Build
|
13
|
+
-
|
14
|
+
|
15
|
+
At the root of the gem folder type:
|
16
|
+
|
17
|
+
gem build
|
18
|
+
|
19
|
+
Install
|
20
|
+
-
|
21
|
+
|
22
|
+
At the root of the gem folder type:
|
23
|
+
|
24
|
+
gem install atome
|
25
|
+
|
26
|
+
publish
|
27
|
+
-
|
28
|
+
|
29
|
+
At the root of the gem folder, assuming you've just build the 1.01 version of atome and you have a rubygems account (https://rubygems.org), type:
|
30
|
+
|
31
|
+
gem push atome-1.01.gem
|
32
|
+
|
33
|
+
**[- What's in the box](./box_content.md)**
|
34
|
+
-
|
35
|
+
|
36
|
+
Guideline and philosophy
|
37
|
+
-
|
38
|
+
|
39
|
+
to keep this concept working we must follow the following rules during atome development :
|
40
|
+
|
41
|
+
- All Apis must run of all targeted platform (their should be no difference from one platform to another.)
|
42
|
+
- Any property or new api must always work on any type of atome, to keep the consistency of the "atome uniq object"
|
43
|
+
|
44
|
+
|
45
|
+
**[- atome explained](./atome_explained.md)**
|
46
|
+
-
|
47
|
+
|
48
|
+
**[- Architecture of the folders](./folder_architecture.md)**
|
49
|
+
-
|
50
|
+
|
51
|
+
**[- logic and datas flows](./datas_flows.md)**
|
52
|
+
-
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./what_is_it.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
atome object hierarchy :
|
13
|
+
-
|
14
|
+
|
15
|
+
- Universe
|
16
|
+
- Users
|
17
|
+
- Devices
|
18
|
+
- Intuition
|
19
|
+
- Views
|
20
|
+
- Molecules
|
21
|
+
- Atomes
|
22
|
+
|
23
|
+
|
24
|
+
From top to bottom, the layer above contain the layer below. Universe contains Users, User have Devices and so on...
|
25
|
+
Universe << Users << Devices << Intuition << Views << Molecules << Atomes
|
26
|
+
|
27
|
+
Please note that Universe is Unique and Intuition is unique on each user/device pair.
|
28
|
+
Intuition is a special layer that hold all the tools needed to treat items found in the view.
|
@@ -0,0 +1,79 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./tutorials.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
How to enhance the framework :
|
13
|
+
-
|
14
|
+
**guideline**
|
15
|
+
|
16
|
+
|
17
|
+
the ruby scripting layer hold all the apis available to developers
|
18
|
+
|
19
|
+
those API must remain consistent all along the way and must be available on any atome even if it produce no result
|
20
|
+
|
21
|
+
the tool and API should never alter the original atome in order to stay non destructive
|
22
|
+
|
23
|
+
the renderer should always be abstracted from the ruby code
|
24
|
+
|
25
|
+
to do so we have a folder containing the different renderers available you'll find the render controller in atome/lib/atome/renderers
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
Build a new atome
|
31
|
+
-
|
32
|
+
- create a new type of atome
|
33
|
+
|
34
|
+
let's create a new glow effect:
|
35
|
+
in the scripts/properties_generator.rb file in the method named "atome_methods" add your new atome in the corresponding category here the effect category
|
36
|
+
we add "glow" to this list.
|
37
|
+
|
38
|
+
the method named "types" is used when we create a new type of atome which is not the case here
|
39
|
+
|
40
|
+
the method named "is_atome" is used when the new atome create an object this is also not the case as we create a property for now
|
41
|
+
|
42
|
+
the method named "need_pre_processing" is used idf we want some special treatment before rendering the object, this is not the case
|
43
|
+
|
44
|
+
the method named "need_processing" is used idf we want some special treatment after rendering the object, this is not the case
|
45
|
+
|
46
|
+
the method named "getter_need_processing"is used if we want some special treatment when getting the value the the atome
|
47
|
+
|
48
|
+
the method named "no_rendering" is used if the atome doesn't need to be rendered, this is not the case
|
49
|
+
|
50
|
+
Other methods in the "properties_generator" file can be ignored for now
|
51
|
+
|
52
|
+
Now next time we'll run the framework the necessary file will be created
|
53
|
+
|
54
|
+
if you try to run your application with the following code:
|
55
|
+
|
56
|
+
|
57
|
+
b=box
|
58
|
+
b.glow(6)
|
59
|
+
|
60
|
+
you'll have error in the browser console saying : "glow_html: undefined method `glow_html' for..."
|
61
|
+
|
62
|
+
|
63
|
+
atome framework is looking for the rendering method named "glow_html" we explain the multi-render mechanism in an other document
|
64
|
+
|
65
|
+
|
66
|
+
Finally we have to manually create the rendering method in our renderer by default the HTML render is used
|
67
|
+
|
68
|
+
so we have to go to "atome/lib/atome/renderers/html/properties/" the open "effect.rb" as we want to create an effect renderer
|
69
|
+
|
70
|
+
So in the "effect.rb" file we had the method name "glow_html" (the newly atome name suffixed with "_html" for html rendering)
|
71
|
+
|
72
|
+
def glow(val)
|
73
|
+
jq_get(atome_id).css('filter', "drop-shadow( 0px 0px #{val}px white )")
|
74
|
+
end
|
75
|
+
|
76
|
+
That's it you've created your first atome!!
|
77
|
+
|
78
|
+
Build a new tool
|
79
|
+
-
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./what_is_it.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
Architecture of the folders :
|
13
|
+
-
|
14
|
+
|
15
|
+
The folders dedicated to the atome framework are :
|
16
|
+
|
17
|
+
1- The app folder : contain only temp files for now
|
18
|
+
|
19
|
+
2- The atome folder : it contain the atome ruby's gem, this is basically the heart of the framework
|
20
|
+
|
21
|
+
3- The documentations folder : it contains infos and documentations of the framework ( how to install it , enhance it or use it )
|
22
|
+
|
23
|
+
4- Hook folder : (parts of Cordova no use for us right now)
|
24
|
+
|
25
|
+
5- platforms : (parts of Cordova used for cross platform code generation, no use for us right now))
|
26
|
+
|
27
|
+
6- plugins : (Hold Cordova's plugins no use for us right now)
|
28
|
+
|
29
|
+
7- resources : (parts of Cordova , used to store application icons and splashscreen)
|
30
|
+
|
31
|
+
8- scripts : contains four files
|
32
|
+
- Bootstrap automatise the install of atome framework
|
33
|
+
- demo_generator : used to generate files for the basic demo used to test atome's APIs
|
34
|
+
- minifier : to minify some generated js files when used in production mode
|
35
|
+
- properties_generator : a script to help you to generate new atomes
|
36
|
+
|
37
|
+
9 - tasks : todos and done feature
|
38
|
+
|
39
|
+
10 - Work&research : R&D test files
|
40
|
+
|
41
|
+
11 - Rakefile : used to automatise framework startup
|
42
|
+
|
43
|
+
12 - reactomic : a work in progress
|
44
|
+
|
45
|
+
All other files/folders are either used for Github or Cordova
|
46
|
+
|
47
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
ex: a.color(:red)
|
2
|
+
|
3
|
+
property received is "color"
|
4
|
+
value received is: "red"
|
5
|
+
|
6
|
+
if nil => the method become a getter
|
7
|
+
ex : a.color => {value :red}
|
8
|
+
|
9
|
+
else :
|
10
|
+
the methods chain the following treatment :
|
11
|
+
|
12
|
+
1- Check if property received is an Array to sanitize (add an automatically generated id to the value hash if not supply by the user )
|
13
|
+
1- Add the property and its value to the history Array
|
14
|
+
1- send the value in the pre-processor if needed
|
15
|
+
1- store the property/value key pair in class variable
|
16
|
+
1- send the value in the processor if needed
|
17
|
+
1- send property/value key pair to the renderer
|
18
|
+
1- format the return value differently it the atome is a property or a whole atome
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
|
7
|
+
|
8
|
+
Technical:
|
9
|
+
-
|
10
|
+
|
11
|
+
**[I - Flows and diagrams](./what_is_it.md)**
|
12
|
+
|
13
|
+
**[II - Init sequence](./installation/kickstart.md)**
|
14
|
+
|
15
|
+
**[III - Rendering](./technical/rendering_flow.md)**
|
16
|
+
|
17
|
+
**[IV - Abstraction mode](./tutorials/tutorials.md)**
|
18
|
+
|
19
|
+
**[V - Server, O.S. Application and web mode](../tutorials/tutorials.md)**
|
20
|
+
|
21
|
+
**[VI - full server Installation](./installation/atome_server.md)**
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
|
2
|
+
<span align="right">
|
3
|
+
|
4
|
+
[Main menu](../atome.md)
|
5
|
+
-
|
6
|
+
</span>
|
7
|
+
|
8
|
+
|
9
|
+
**what is (an) atome?**
|
10
|
+
-
|
11
|
+
|
12
|
+
The concept
|
13
|
+
-
|
14
|
+
|
15
|
+
atome object is the uniq object that can hold any type of data!
|
16
|
+
|
17
|
+
Think pdf but collaborative, truly multimedia and editable!
|
18
|
+
-
|
19
|
+
|
20
|
+
An atome can be anything from a single property to a full blown document.
|
21
|
+
|
22
|
+
Per example an atome can hold a simple property such as a color, or an image,a text, an effect, a video, a script, a group of objects or a complex document mixing many types, even tools that create and modify atomes are atomes!
|
23
|
+
|
24
|
+
Say goodbye to apps : any atome can be modified by any tools created for them.
|
25
|
+
-
|
26
|
+
|
27
|
+
The idea behind atome is to have a uniq file type, so any tool applied on a given atome will lead to an action whatever the atome type is.
|
28
|
+
The benefits are:
|
29
|
+
|
30
|
+
- Simplify the automation of batch process, as objects always have a similar architecture whatever it's type (from a simple box thru a video montage to a complex page description) it's always an atome)
|
31
|
+
- Simplify the development and tests of new tools. Ruby language allow you to script anything on the fly
|
32
|
+
- Reduce development time due to Ruby language simplicity and the similar structure of atomes and APIs
|
33
|
+
- Easy debug due to high level of readability of ruby
|
34
|
+
- Reduce the number of tools needed for an application. (you dont ever have to wrote a specific tool for a specific medias anymore, as the same tool can be applied onto any atome).
|
35
|
+
- and many many other advantages inherent to the atome architecture ...
|
36
|
+
|
37
|
+
|
38
|
+
Say goodbye to file format: here any tools can alter any data.
|
39
|
+
-
|
40
|
+
|
41
|
+
- No filetype but instead a unique objet call "atome"
|
42
|
+
- Any atome can then be modified by any available api or tool.
|
43
|
+
- Only one type means no more file format, this is the guaranty that documents can always be open, shared and edited.
|
44
|
+
|
45
|
+
|
46
|
+
**[- What's in the box](./box_content.md)**
|
47
|
+
-
|
48
|
+
|
49
|
+
Guideline and philosophy
|
50
|
+
-
|
51
|
+
|
52
|
+
to keep this concept working we must follow the following rules during atome development :
|
53
|
+
|
54
|
+
- All Apis must run of all targeted platform (their should be no difference from one platform to another.)
|
55
|
+
- Any property or new api must always work on any type of atome, to keep the consistency of the "atome uniq object"
|
56
|
+
|
57
|
+
|
58
|
+
**[- atome explained](./atome_explained.md)**
|
59
|
+
-
|
60
|
+
|
61
|
+
**[- Architecture of the folders](./folder_architecture.md)**
|
62
|
+
-
|
63
|
+
|
64
|
+
**[- logic and datas flows](./datas_flows.md)**
|
65
|
+
-
|
@@ -0,0 +1,25 @@
|
|
1
|
+
- image and text manipulation
|
2
|
+
- Batch treatment
|
3
|
+
- Home automation
|
4
|
+
- coding
|
5
|
+
- education
|
6
|
+
- Music
|
7
|
+
- VJ
|
8
|
+
- drawing
|
9
|
+
- photo editing
|
10
|
+
- Collaboration
|
11
|
+
- Voice recognition
|
12
|
+
- voice synthesis
|
13
|
+
- Context and internalisation translation
|
14
|
+
- Payment
|
15
|
+
- Scheduling with calendar
|
16
|
+
- remote computing and rendering
|
17
|
+
- Audio and synthesis generator
|
18
|
+
- Video effects
|
19
|
+
- Video editing
|
20
|
+
- animation
|
21
|
+
- interactive document production
|
22
|
+
- Visio conference
|
23
|
+
- applications
|
24
|
+
- web site
|
25
|
+
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
+
<svg id="atome" width="100%" height="100%" viewBox="0 0 237 237" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
4
|
+
<g transform="matrix(0.0267056,0,0,0.0267056,18.6376,20.2376)">
|
5
|
+
<g id="shapePath1" transform="matrix(4.16667,0,0,4.16667,-377.307,105.632)">
|
6
|
+
<path d="M629.175,81.832C740.508,190.188 742.921,368.28 634.565,479.613C526.209,590.945 348.116,593.358 236.784,485.002C125.451,376.646 123.038,198.554 231.394,87.221C339.75,-24.111 517.843,-26.524 629.175,81.832Z" style="fill:rgb(201,12,125);"/>
|
7
|
+
</g>
|
8
|
+
<g id="shapePath2" transform="matrix(4.16667,0,0,4.16667,-377.307,105.632)">
|
9
|
+
<path d="M1679.33,410.731C1503.98,413.882 1402.52,565.418 1402.72,691.803C1402.91,818.107 1486.13,846.234 1498.35,1056.78C1501.76,1313.32 1173.12,1490.47 987.025,1492.89C257.861,1502.39 73.275,904.061 71.639,735.381C70.841,653.675 1.164,647.648 2.788,737.449C12.787,1291.4 456.109,1712.79 989.247,1706.24C1570.67,1699.09 1982.31,1234 1965.76,683.236C1961.3,534.95 1835.31,407.931 1679.33,410.731Z" style="fill:rgb(201,12,125);"/>
|
10
|
+
</g>
|
11
|
+
</g>
|
12
|
+
</svg>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 235.04 61.6"><defs><style>.cls-1{fill:#ef4348;}.cls-2{fill:#ef8689;}.cls-3{fill:#ef7579;}.cls-4{fill:#ef9e89;}</style></defs><title>Asset 2</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M42.94,22.23C42.94,9.76,35,1,19.09,1H0V60.67H10.52V43.36h6.54c1.86,0,3.64-.08,5.34-.25L35,60.67H47.35L32.07,40.48C39.54,37,42.94,30.46,42.94,22.23ZM18.33,34H10.52V10.69h7.81c9.93,0,13.24,5,13.24,11.54S28.17,34,18.33,34Z"/><path class="cls-1" d="M81.63,0C63.73,0,49.81,13.58,49.81,30.8c0,17.65,13.58,30.8,31.82,30.8s31.9-13.23,31.9-30.8C113.53,13,100.13,0,81.63,0Z"/><path class="cls-1" d="M145,1H122.53V60.67H145c18.24,0,31.9-12.81,31.9-29.87C176.92,13.49,163.51,1,145,1Zm.08,50h-12V10.69h12c12,0,20.53,8.57,20.53,20.28S156.64,51,145.1,51Z"/><path class="cls-1" d="M210,0c-15.53,0-24.69,8.32-24.69,26.64v34h10.61V46.42h28.51V60.67H235v-34C235,8.32,225.54,0,210,0Zm14.43,38c-2.8,0-23.25,0-28.51.09V26.64c0-12,5.94-17,14.25-17S224.44,14,224.44,26.73Z"/><g id="_3fPAnj" data-name="3fPAnj"><path class="cls-2" d="M82.55,50.93,72.89,29H92.2Z"/><path class="cls-3" d="M58.86,28.92c3.62,0,7,0,10.34,0,.58,0,.69.38.87.76L78.8,48.88a5.92,5.92,0,0,1,.53,1.57Z"/><path class="cls-3" d="M105.53,28.92,85.73,50.49l-.11-.06q1-2.31,2.09-4.62c2.44-5.37,4.89-10.74,7.3-16.13a1.11,1.11,0,0,1,1.2-.78C99.22,28.93,102.24,28.92,105.53,28.92Z"/><path class="cls-4" d="M91.28,26h-17l8.52-8.9Z"/><path class="cls-2" d="M71.34,25.45l-4-9.15H80.09Z"/><path class="cls-2" d="M93.89,25.15l-8.45-8.83H97.77C96.48,19.25,95.21,22.13,93.89,25.15Z"/><path class="cls-3" d="M105.58,26H96.64L100.19,18Z"/><path class="cls-3" d="M68.46,26.05H59.65L65,18.15Z"/></g></g></g></svg>
|
Binary file
|
Binary file
|
@@ -0,0 +1,184 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./kickstart.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
|
13
|
+
Install atome infrastructure
|
14
|
+
-
|
15
|
+
|
16
|
+
add an entry to the DNS to accept websocket eg : ws.atome.one pkg install nginx mkdir /usr/local/etc/nginx/vdomain
|
17
|
+
|
18
|
+
create dir :
|
19
|
+
|
20
|
+
mkdir /usr/local/etc/nginx/vdomain
|
21
|
+
|
22
|
+
cd /usr/local/etc/nginx/vdomain
|
23
|
+
|
24
|
+
create atome.conf
|
25
|
+
|
26
|
+
ee atome.conf
|
27
|
+
|
28
|
+
copy in atome.conf:
|
29
|
+
|
30
|
+
server {
|
31
|
+
listen 80;
|
32
|
+
server_name ws.atome.one;
|
33
|
+
|
34
|
+
location / {
|
35
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
36
|
+
proxy_set_header Host $host;
|
37
|
+
|
38
|
+
proxy_pass http://ws.atome.one;
|
39
|
+
|
40
|
+
proxy_http_version 1.1;
|
41
|
+
proxy_set_header Upgrade $http_upgrade;
|
42
|
+
proxy_set_header Connection "upgrade";
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
upstream ws.atome.one {
|
47
|
+
# enable sticky session based on IP
|
48
|
+
ip_hash;
|
49
|
+
|
50
|
+
server localhost:9292;
|
51
|
+
}
|
52
|
+
|
53
|
+
cp ws.atome.one.conf atome.one.conf
|
54
|
+
|
55
|
+
ee atome.one.conf
|
56
|
+
|
57
|
+
copy in atome.one.conf :
|
58
|
+
|
59
|
+
server {
|
60
|
+
listen 80;
|
61
|
+
server_name atome.one;
|
62
|
+
|
63
|
+
location / {
|
64
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
65
|
+
proxy_set_header Host $host;
|
66
|
+
|
67
|
+
proxy_pass http://atome.one;
|
68
|
+
|
69
|
+
proxy_http_version 1.1;
|
70
|
+
proxy_set_header Upgrade $http_upgrade;
|
71
|
+
proxy_set_header Connection "upgrade";
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
upstream atome.one {
|
76
|
+
# enable sticky session based on IP
|
77
|
+
ip_hash;
|
78
|
+
|
79
|
+
server localhost:9292;
|
80
|
+
}
|
81
|
+
|
82
|
+
ee /usr/local/etc/nginx/nginx.conf
|
83
|
+
|
84
|
+
[comment]: <> (add at the end of the file inside the bracket: )
|
85
|
+
|
86
|
+
[comment]: <> (include "vdomain/*.conf";)
|
87
|
+
|
88
|
+
Type the command :
|
89
|
+
|
90
|
+
sysrc nginx_enable="YES"
|
91
|
+
|
92
|
+
|
93
|
+
pkg install py37-certbot
|
94
|
+
|
95
|
+
pkg install py37-certbot-nginx
|
96
|
+
|
97
|
+
certbot --nginx -d atome.one -d ws.atome.one
|
98
|
+
|
99
|
+
add your address and follow instructions
|
100
|
+
|
101
|
+
crontab -e o
|
102
|
+
|
103
|
+
add the line below:
|
104
|
+
|
105
|
+
0 0 * * * /usr/local/bin/certbot renew
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
to restart nginx type :
|
110
|
+
|
111
|
+
service nginx restart
|
112
|
+
|
113
|
+
Install fsu
|
114
|
+
-
|
115
|
+
|
116
|
+
[comment]: <> (deprecated )
|
117
|
+
|
118
|
+
[comment]: <> (Install docker on machine then run (after having updated <your_ip_address>):)
|
119
|
+
|
120
|
+
[comment]: <> ( docker run --name=mediasoup-demo -p 4443:4443/tcp -p 2000-2020:2000-2020/udp -p 2000-2020:2000-2020/tcp -p 3000-3001:3000-3001/tcp --init -e DEBUG="mediasoup:INFO* WARN ERROR" -e PROTOO_LISTEN_PORT="4443" -e MEDIASOUP_LISTEN_IP="0.0.0.0" -e MEDIASOUP_ANNOUNCED_IP="<your_ip_address>" -e MEDIASOUP_MIN_PORT="2000" -e MEDIASOUP_MAX_PORT="2020" -e MEDIASOUP_USE_VALGRIND="false" -e MEDIASOUP_VALGRIND_OPTIONS="--leak-check=full --track-fds=yes --log-file=/storage/mediasoup_valgrind_%p.log" vanjoge/mediasoup-demo:v3)
|
121
|
+
|
122
|
+
|
123
|
+
to install mediasoup clone the atome_sfu_soup repository :
|
124
|
+
|
125
|
+
git clone https://github.com/atomecorp/atome_sfu_soup.git
|
126
|
+
|
127
|
+
create "certs" folder inside the "server" folder of mediasoup
|
128
|
+
|
129
|
+
mkdir certs
|
130
|
+
cd certs
|
131
|
+
|
132
|
+
Generate a certificate and private key for localhost and store it in "certs" folder inside "server" folder
|
133
|
+
|
134
|
+
openssl req -x509 -out localhost.crt -keyout localhost.key -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost'
|
135
|
+
|
136
|
+
or using Windows
|
137
|
+
|
138
|
+
MSYS_NO_PATHCONV=1 openssl req -x509 -out localhost.crt -keyout localhost.key -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost'
|
139
|
+
|
140
|
+
in "server" folder change config.js to use certificate and key, to do so :
|
141
|
+
remplace `${__dirname}/certs/fullchain.pem` and `${__dirname}/certs/privkey.pem` by the geneated files found in "certs" folder
|
142
|
+
example :
|
143
|
+
`${__dirname}/certs/fullchain.pem`
|
144
|
+
with:
|
145
|
+
`${__dirname}/certs/localhost.crt`
|
146
|
+
also
|
147
|
+
`${__dirname}/certs/privkey.pem`
|
148
|
+
with:
|
149
|
+
`${__dirname}/certs/localhost.key`
|
150
|
+
|
151
|
+
In the "server" folder :
|
152
|
+
|
153
|
+
npm install
|
154
|
+
npm start
|
155
|
+
|
156
|
+
In the app folder: cd ../
|
157
|
+
|
158
|
+
npm install --legacy-peer-deps
|
159
|
+
npm start
|
160
|
+
|
161
|
+
in app/lib/RoomClient.js
|
162
|
+
change atome.one address of server if necessary
|
163
|
+
|
164
|
+
this.url = "wss://ws.mediasoup.atome.one:443/?roomId=0&peerId=" + peerId;
|
165
|
+
|
166
|
+
Test with Firefox and safari. Chrome and edge doesn't accept wss without a valid certificate.
|
167
|
+
|
168
|
+
Connect on port 443 with HTTPS to accept wss certificate.
|
169
|
+
|
170
|
+
[comment]: <> (Connect on port 3002 to run the client.)
|
171
|
+
|
172
|
+
|
173
|
+
[comment]: <> (Deprecated below: )
|
174
|
+
|
175
|
+
[comment]: <> (Generate a docker of the server after renamimg config.example.js with config.js)
|
176
|
+
|
177
|
+
[comment]: <> ( \mediasoup-demo\server\docker\build.sh)
|
178
|
+
|
179
|
+
[comment]: <> (run docker run the following command (example using Windows))
|
180
|
+
|
181
|
+
[comment]: <> ( docker run --name=mediasoup-demo -p 4443:4443/tcp -p 40000-49999:40000-49999/udp -p 40000-49999:40000-49999/tcp -p 3000-3001:3000-3001/tcp --init -v c:/Tmp/mediasoup/certs:/service/certs -e HTTPS_CERT_FULLCHAIN="/service/certs/fullchain.pem" -e HTTPS_CERT_PRIVKEY="/service/certs/privkey.pem" -e MEDIASOUP_ANNOUNCED_IP="192.168.103.92" -e MEDIASOUP_LISTEN_IP="0.0.0.0" mediasoup-demo:v3)
|
182
|
+
|
183
|
+
|
184
|
+
[comment]: <> (Wait 10 mn for server starting...)
|