Atome
# Atome Framework: The Future of Multimedia Object Modeling
## Technical Overview
### The Unified Object Model
Atome Framework introduces a revolutionary concept in multimedia object modeling: the Unified Object Model. This model
allows for the seamless creation and manipulation of various multimedia elements like text, images, sound, colors,
videos, vector shapes, and more, all under a single object model.
### Polymorphism
The framework leverages the power of polymorphism, allowing objects to take on multiple forms. This enables a high
degree of flexibility and extensibility in how objects are used and manipulated.
### Features
- **Method Sharing**: All objects share common methods
like `top`, `left`, `width`, `height`, `red`, `green`, `blue`, `alpha`, `rotate`, and many more.
- **Type Identification**: Easily identify the type of object you're dealing with through the `type` method.
- **Parent-Child Relationships**: Any object can have another object as its child, allowing for complex nested
structures.
- **Multiple Parenting**: Objects can have multiple parents, enabling versatile and dynamic object relationships.
- **Multiple Rendering**: Objects can be rendered in multiple ways simultaneously, such as text description, audio
description, and on-screen rendering.
- **Code Rendering**: The framework supports code rendering through technologies like Opal or WebAssembly, offering even
more versatility.
### Meta-Programming
The framework heavily utilizes meta-programming to avoid code redundancy and to keep the codebase small and efficient.
## Commercial Overview
### Easy to Learn, Powerful to Use
Atome Framework is designed to be easy for novices while also offering an optimized, academic mode for seasoned
developers.
### Open Source and MIT Licensed
The framework is entirely open-source and comes with an MIT license, inviting collaboration and innovation.
### Extensible API
Adding new features is made easy with an automated API system.
## Why Collaborate on GitHub?
- **Innovative Model**: Be part of a revolutionary approach to multimedia object modeling.
- **Community Support**: Benefit from a community of developers for support and feature requests.
- **Career Boost**: Enhance your portfolio by contributing to a cutting-edge project.
## Call to Action
Join us in making multimedia object modeling more efficient, flexible, and powerful than ever before. Star our GitHub
repository, fork it, and send us your pull requests.
---
# Atome Framework: The Future of Multimedia Object Modeling and Beyond
## Technical Overview
### The Unified Object Model
Atome Framework introduces a revolutionary concept in multimedia object modeling: the Unified Object Model. This model allows for the seamless creation and manipulation of various multimedia elements like text, images, sound, colors, videos, vector shapes, and more, all under a single object model.
### Polymorphism and Isomorphism
The framework leverages the power of polymorphism, allowing objects to take on multiple forms. Additionally, its isomorphic design uses the same language for both front-end and back-end development, ensuring a consistent and streamlined development experience.
### Features
- **Method Sharing**: All objects share common methods like `top`, `left`, `width`, `height`, `red`, `green`, `blue`, `alpha`, `rotate`, and many more.
- **Type Identification**: Easily identify the type of object you're dealing with through the `type` method.
- **Parent-Child Relationships**: Any object can have another object as its child, allowing for complex nested structures.
- **Multiple Parenting**: Objects can have multiple parents, enabling versatile and dynamic object relationships.
- **Multiple Rendering**: Objects can be rendered in multiple ways simultaneously, such as text description, audio description, and on-screen rendering.
- **Code Rendering**: The framework supports code rendering through technologies like Opal or WebAssembly, offering even more versatility.
### Platform Compatibility and Extensibility
- **Cross-Platform**: Generate applications compatible with iOS, Android, Windows, Linux, macOS, and FreeBSD.
- **Offline and Online Modes**: Operate seamlessly in both offline and online environments.
- **Client-Server Architecture**: Capable of generating both client and server applications, or a combination of both.
- **Arduino Integration**: Ideal for home automation and robotics creation.
- **Full Operating System**: Can be embedded and booted as a full operating system using FreeBSD.
### Meta-Programming
The framework heavily utilizes meta-programming to avoid code redundancy and to keep the codebase small and efficient.
## Commercial Overview
### Easy to Learn, Powerful to Use
Atome Framework is designed to be easy for novices while also offering an optimized, academic mode for seasoned developers.
### Open Source and MIT Licensed
The framework is entirely open-source and comes with an MIT license, inviting collaboration and innovation.
### Extensible API
Adding new features is made easy with an automated API system.
## Why Collaborate on GitHub?
- **Innovative Model**: Be part of a revolutionary approach to multimedia object modeling.
- **Community Support**: Benefit from a community of developers for support and feature requests.
- **Career Boost**: Enhance your portfolio by contributing to a cutting-edge project.
## Call to Action
Join us in making multimedia object modeling more efficient, flexible, and powerful than ever before. Star our GitHub repository, fork it, and send us your pull requests.
-
Atome is powerful engine dedicated to the creation of cross-platform applications, web application and digital medias.
Cross platform ecosystem
-
- atome is a cross platform development framework, aim to build mobile or desktop applications, web site, games, presentations, creative application including musical graphics and video applications and lots more...
- atome's applications can be deploy as a simple application, a client, a server or both, as well as be booted at startup (Operating System. mode)
- all apis work identically, to ensure you'll have the exact same rendering whatever the host platform (Android, Freebsd, linux, MacOs, Web, Windows).
- atome and all the included libraries are entirely open source with a very permissive MIT licence. it means you can do what you want want with it!
- the framework is totally hybrid, it can be executed as a full blown native application, a native application with a web view, in a web browser or a web view
- Atome can be used in stand alone (offline mode), in cloud mode or both and sync data when required
- it's also possible to publish websites on a static server (without server side language) while using a database and sync data between users
- Anything in atome can be scripted, even on the fly at runtime!
Open source technology included
-
- Ruby : is the language used to script all atome's apis (https://www.ruby-lang.org)
[comment]: <> (
)
- Ruby Wasm : is a ruby standard libary used to embed the ruby language in many environments including the web (https://github.com/ruby/ruby.wasm)
[comment]: <> (
)
- Opal : is a ruby gem used to compile the ruby language to JS (https://opalrb.com)
[comment]: <> (
)
- Roda : is a ruby web framework that push the server version of atome (https://roda.jeremyevans.net)
[comment]: <> (
)
- Puma : is a ruby web server to start the backend of atome (https://puma.io)
[comment]: <> (
)
- FreeBSD : is a Unix platform with a very secure environment (jails), allow to create and boot embedded applications on any compatible machine (standard PC, Raspberry, Beaglebone, etc..), while keeping a very small footprint using the nanoBSD facility of FreeBSD (https://www.freebsd.org/fr/)
[comment]: <> (
)
[//]: # (- Tauri : Build smaller, faster, and more secure desktop applications with a web frontend.(https://github.com/tauri-apps/tauri))
[comment]: <> (
)
[//]: # (
)
[//]: # (
)
## Installation
Install the gem and add to the application's Gemfile by executing:
$ bundle add atome
If bundler is not being used to manage dependencies, install the gem by executing:
$ gem install atome
## Usage
[Full documentation here](./documentation/atome.md)
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`.
To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/atomecorp/atome. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/atomecorp/atome/blob/master/CODE_OF_CONDUCT.md).
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
## Code of Conduct
Everyone interacting in the Atome project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/atomecorp/atome/blob/master/CODE_OF_CONDUCT.md).
Example website:
-
**[a website showing some apis demo ](http://atome.one)**
Contact:
-
**[queries@atome.one](mailto:contact@atome.one)**