- News: atome can now be used in AUV3 Apple audio plugin
atome is powerful engine dedicated to the creation of cross-platform applications, web application and digital medias.
it stands out for the simplicity of its object engine, specifically designed to be accessible to new users. Unlike other current solutions that are often complex and rigid, Atome offers intuitive and flexible objects, free from the constraining specificities that can hinder development. Ideal for beginners, they can quickly create powerful applications without getting lost in complicated configurations or rigid structures. This simplified approach allows everyone to focus on creativity and innovation without compromising on performance or features.
-
atome is a cross-platform development framework designed to simplify the creation of mobile and desktop applications, websites, games, presentations, and much more.
-
Its primary goal is to make the development process as straightforward and intuitive as possible, allowing developers to focus on building rather than getting lost in technical complexities.
-
atome will make it easy to build mobile and desktop applications, websites, games, presentations, and creative applications, including music, graphics, and video apps, and much 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!
-
Even for developers who are not familiar with Ruby or WebAssembly concepts, the learning curve of Atome is exceptionally fast. The framework is designed to be intuitive, and its unified object model is particularly easy for new users to grasp. This allows anyone to quickly start developing applications without being hindered by complex technical concepts.
Atome is an ambitious framework that demands flexibility, expressiveness, and a seamless developer experience—qualities that Ruby embodies like no other language. Unlike JavaScript, which is often constrained by browser inconsistencies, or Python, which enforces rigid structures, Ruby offers a powerful yet intuitive syntax that accelerates development without compromising on clarity. Ruby’s metaprogramming capabilities allow Atome to dynamically adapt to different use cases, making it an ideal foundation for a hybrid, cross-platform ecosystem. Moreover, Ruby’s unified object model ensures a consistent API across all platforms, perfectly aligning with Atome’s vision of simplicity, accessibility, and limitless creativity. With Ruby at its core, Atome provides developers with an elegant and efficient way to write, extend, and script applications dynamically—on the fly, at runtime—empowering them to build without limits.
In a world dominated by Python and JavaScript, why choose Ruby? The answer is simple: Ruby is designed for developers who value elegance, expressiveness, and power. Unlike Python, which enforces strict conventions, or JavaScript, which carries historical inconsistencies, Ruby offers a seamless and enjoyable coding experience.
Ruby reads like natural language, making code more intuitive and enjoyable to write. While Python enforces strict indentation and JavaScript suffers from a verbose and sometimes inconsistent syntax, Ruby allows for clean, concise, and expressive code.
Ruby is a metaprogramming powerhouse. Unlike Python and JavaScript, which impose various restrictions, Ruby allows developers to dynamically modify classes, objects, and even the core language itself. This enables the creation of Domain-Specific Languages (DSLs) that simplify and enhance code readability.
Ruby treats everything as an object—no exceptions. Python and JavaScript both mix object-oriented and primitive data types, creating inconsistencies. With Ruby, everything from numbers to functions is an object, leading to a more uniform and logical design.
Ruby prioritizes developer happiness. While Python takes an academic approach and JavaScript often feels chaotic due to its rapid evolution, Ruby is built around the idea that programming should be fun and intuitive. The language is not just a tool—it's a pleasure to work with.
Ruby’s block syntax is a game-changer. Unlike Python’s limited lambda functions and JavaScript’s often cumbersome arrow functions, Ruby makes working with higher-order functions simple, resulting in cleaner and more readable code.
Ruby’s community values elegance, maintainability, and long-term solutions. Unlike JavaScript, which is fragmented by countless frameworks, and Python, which focuses on data science and machine learning, Ruby excels in providing robust and well-thought-out solutions.
RubyGems, paired with Bundler, offers a seamless dependency management experience. Unlike Python’s pip
, which can introduce compatibility issues, or JavaScript’s npm
, which has security concerns, RubyGems provides a stable, efficient, and well-structured ecosystem.
Ruby encourages freedom and creativity. Unlike Python, which enforces "one way to do things," Ruby embraces multiple approaches, allowing developers to choose the most expressive and efficient solution for any given problem.
Ruby on Rails transformed web development with its convention-over-configuration approach. While JavaScript frameworks constantly change and Python remains more research-oriented, Ruby provides a reliable, scalable, and refined development experience.
Thanks to Opal and Ruby Wasm, Ruby can now compile to JavaScript, offering an elegant alternative for modern web development. While JavaScript struggles with metaprogramming and Python lacks native browser integration, Ruby provides the best of both worlds: flexibility, expressiveness, and web compatibility.
Why Ruby? Because it’s not just a programming language—it’s a philosophy. With its clean syntax, powerful metaprogramming, true object-oriented nature, and developer-friendly design, Ruby surpasses Python and JavaScript by offering a more enjoyable, expressive, and innovative coding experience.
Ruby isn’t just a technical choice—it’s a commitment to writing better, more beautiful code.
Atome is an ambitious project with huge potential, but like any great vision, it needs a community to bring it to its full power. Right now, the core engine is functional, but still in proof-of-concept mode. The framework is flexible, powerful, and cross-platform, but to truly make it shine, we need your help!
🔹 Code Cleanup & Optimization – The foundation is there, but it needs refactoring and improvements to ensure scalability, maintainability, and performance.
📖 Documentation – Atome is designed to be intuitive, but without clear documentation, its full potential remains locked away. If you love explaining things clearly, help us make Atome accessible to all!
🛡 Security & Stability – We need contributors to harden the framework, improve security, and ensure robustness across all supported platforms.
📢 Evangelization & Outreach – Atome is an MIT-licensed open-source project that deserves visibility. If you love sharing knowledge, writing blog posts, or making videos, help spread the word!
🔧 Feature Enhancement & Testing – Whether it's debugging, testing, or suggesting new features, every contribution makes a difference.
🎨 UI/UX Improvements – Atome is about creativity and accessibility. If you have experience with front-end development, design, or UI/UX improvements, your input is invaluable!
- Be part of an innovative project that redefines cross-platform development.
- Learn and grow by contributing to a dynamic open-source framework.
- Make an impact on a tool that empowers developers to create with ease and flexibility.
- Work in a community that values simplicity, power, and creativity.
🛠 No matter your skills, there’s a place for you in Atome. If you're interested in helping, join us and shape the future of development!
📌 Get Started: [https://github.com/atomecorp/atome]
📢 Spread the Word: Tell your friends, write about Atome, or simply star the repo!
Let's build something amazing together! 🚀
- Ruby : is the language used to script all atome's apis (https://www.ruby-lang.org)
- 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)
- Opal : is a ruby gem used to compile the ruby language to JS (https://opalrb.com)
- Roda : is a ruby web framework that push the server version of atome (https://roda.jeremyevans.net)
- Puma : is a ruby web server to start the backend of atome (https://puma.io)
- 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/)
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
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.
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.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Atome project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
a website showing some apis demo
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.
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.
- 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.
The framework heavily utilizes meta-programming to avoid code redundancy and to keep the codebase small and efficient.
Atome Framework is designed to be easy for novices while also offering an optimized, academic mode for seasoned developers.
The framework is entirely open-source and comes with an MIT license, inviting collaboration and innovation.
Adding new features is made easy with an automated API system.
- 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.
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.