<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  
    <title>Sirius | Home</title>
  
    <meta name="description" content="The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks">
    <link rel="shortcut icon" type="image/png" href="/sirius/images/favicon_sirius.ico"/>
  
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
    <link rel="stylesheet" href="/sirius/common_assets/css/styles.css">
    <link rel="stylesheet" href="/sirius/common_assets/css/animate.css">
    <link rel="stylesheet" href="/sirius/common_assets/css/media.css"/>
    <link rel="stylesheet" href="/sirius/assets/css/main.css"/>

    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
    <script src="/sirius/common_assets/js/magnific-popup.video.js"></script>
    <script src="/sirius/common_assets/js/magnific-popup.min.js"></script>

    <!-- Eclipse Foundation Google Tag Manager -->
	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
        })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
        <!-- End Google Tag Manager -->  
        
        <!-- Eclipse Foundation cookie consent: -->
        <link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
        <script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>  
        
        <script src= "/sirius/assets/js/ga.js"></script>

    <!-- Old version of font awesome for some icons -->
    <script src="https://use.fontawesome.com/b51f77a16a.js"></script>    
    <!-- Bootstrap JS -->
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
    
    <script>
        jQuery(function($){ $(".hasTooltip").tooltip({"html": true,"container": "body"}); });
    </script>
    <!-- Triggers tooltips -->
    <script>
        jQuery(document).ready(function() {
            jQuery('.hasTooltip').tooltip();
        });
    </script>
</head>
  
  <body>

    <!-- Navigation -->
<header id="top-bar" class="navbar navbar-expand-xl fixed-top">
    <div class="container">
        <div id="super-menu" class="d-flex">
            <nav class="main-menu ml-auto">
                <ul class="nav navbar-nav">
                    <li class="current"><a href=".">Sirius Desktop</a></li>
                    <li><a class="txt_purple" href="sirius-web.html">Sirius Web</a></li>
                </ul>
            </nav>
        </div>
        <div class="d-flex" id="main-menu-items">
            <a class="navbar-brand" href="/sirius">
                <img src="/sirius/common_assets/images/logos/logo_sirius.png" alt="Logo Sirius">
            </a>
            <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive"
                aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                <i class="fa fa-bars"></i>
            </button> 
            <nav class="navbar-collapse collapse" id="navbarResponsive">
                <div class="main-menu ml-auto">
                    <ul class="nav navbar-nav">
                        <li>
                            <a href="overview.html">Overview</a>
                        </li>
                        <li>
                            <a href="gallery.html">Gallery</a>
                        </li>
                        <li>
                            <a href="getstarted.html">Get Started</a>
                        </li>
                        <li>
                            <a href="features.html">Features</a>
                        </li>
                        <li>
                            <a href="resource-center.html">Resources</a>
                        </li>
                        <li>
                            <a href="support.html">Support</a>
                        </li>
                        <li id="dwnld">
                            <a href="download.html">Download</a>
                        </li>
                    </ul>
                </div>
            </nav>
        </div>
    </div>
</header>
<section id="sirius-web-bar" class="bg_purple">
    <div class="container">
        <div class="row">
            <div class="col-md-1 col-xs-12 my-auto">
                <p class="cloud txt_white text-center"><i class="fas fa-cloud" aria-hidden="true"></i></p>
            </div>
            <div class="col-md-8 col-xs-12">
                <h5 class="txt_white">Web version is now available!</h5>
                <p class="descr txt_white">What you like in Sirius Desktop, in a modern cloud-based stack.</p>
            </div>                                
            <div class="col-md-3 col-xs-12 my-auto">
                <p><a class="text-uppercase txt_yellow" href="sirius-web.html" target="">Discover Sirius Web <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i></a></p>
            </div>
        </div>
    </div>
</section>
    
    <section id="intro" class="">
    <div class="container">
        <div class="row align-items-end">
            <div class="col-md-5 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <h1>The easiest way to get your own Modeling Tool</h1>
    <p>Eclipse Sirius dramatically reduces the time for creating domain-specific modeling workbenches.</p>
    <p>
        
        <a href="download.html" class="btn btn-default span-right wow fadeInUp" data-wow-delay=".6s" target="_self">
            Download
        </a>
        
        
        <a href="overview.html" class="btn btn-primary wow fadeInUp" data-wow-delay=".6s" target="_self">
            Overview
        </a>
        
    </p>                                
</div>
    
<div class="col-md-7 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <p>
        <a href="overview.html" class="wow fadeInUp" data-wow-delay=".6s" target="_self">
            <img src="images/illustrations/sirius-overview.png" alt="Some text">
        </a>
    </p>                                
</div>
        </div>
    </div>
</section>

<section id="sirius_versions" class="bg_indigo txt_white text-center">
    <div class="container">
            <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Choose your favorite flavor</h2> 
<h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>




        <div class="row">
            <div class="col-md-6 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="fas fa-desktop fa-3x pa2 txt_white" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Sirius Desktop</h4>
        <p>Full-featured modeling tools deployed and running<br>in Eclipse workbench on your desktop</p>
        <p><a class="" href="getstarted.html" target="">Get started <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>




            <div class="col-md-6 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="fas fa-cloud fa-3x pa2 txt_white" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4><span class='badge bg_yellow txt_indigo'>New!</span> Sirius Web</h4>
        <p>Modern modeling studios deployed to a web server<br> and rendered in a web browser</p>
        <p><a class="" href="sirius-web.html" target="">Learn more <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>



        </div>
    </div>
</section>

<section id="why_sirius" class="text-center">
    <div class="container">
            <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Why Sirius</h2> 
<h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>




        <div class="row">
            <div class="col-md-6 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="fas fa-sliders-h fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Reduce the Tooling Learning Curve</h4>
        <p>By using a modeling tool which natively supports their own vocabulary, users don't have to learn concepts which are external to their business domain. They just have to learn the views provided by the tool and how to navigate between them. With Sirius, they can rapidly master a new tool and start industrializing their modeling activities.</p>
        <p><a class="" href="" target=""> <i class="" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>




            <div class="col-md-6 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="fas fa-dollar-sign fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Decrease the Cost of your Tools</h4>
        <p>Don't pay for overkill tools providing unnecessary functionalities! Sirius is fully Open Source, but most of all, as it is completely customizable, a modeling workbench created with Sirius is natively based on your own business domain and provides the representations and features which really correspond to your different user's needs.</p>
        <p><a class="" href="" target=""> <i class="" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>



        </div>
    </div>
</section>

<section id="benefits" class="bg_lightest_grey text-center">
    <div class="container">
            <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Benefits</h2> 
<h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>




        <div class="row">
            <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="far fa-eye fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Visual</h4>
        <p>Diagrams, tables and trees</p>
        <p><a class="" href="" target=""> <i class="" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>




            <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="fas fa-stream fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Declarative</h4>
        <p>No code generation</p>
        <p><a class="" href="" target=""> <i class="" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>



           
            <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="far fa-clock fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Easy</h4>
        <p>Your modeling workbench in hours</p>
        <p><a class="" href="" target=""> <i class="" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>



        </div>
    </div>
</section>

<section id="complexity_management">
    <div class="container">
        <div class="row">
    <div class="col-md-5 order-1 wow fadeInLeft" data-wow-delay=".1s">
        <h3>Complexity Management</h3>
        
            <p>Managing complexity requires breaking down a problem into simpler parts. With its multi-viewpoints approach, Sirius allows the user to easily manipulate sub-parts of a model in order to focus on what really matters. In addition, Sirius provides conditional styles, layers and filters to automatically simplify the graphical representations and highlight the elements of interest.
            </p>
        <p><a href="" target="_">  <i class="" aria-hidden="true"></i></a></p>
    </div>
    <div class="col-md-7 text-center order-2 wow fadeInUp" data-wow-delay=".2s">
        <iframe class="shadow popup-youtube" width="510" height="290" src="https://www.youtube.com/embed/XUD4nqIOzLc?fs=1&amp;loop=1&amp;autohide=1&amp;theme=light&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
    </div>
</div>
    </div>
</section>

<section id="support" class="bg_lightest_grey text-center">
    <div class="container">
        <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Need Support?</h2> 
<h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>




    <div class="row">
        <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="far fa-file-alt fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Documentation</h4>
        <p>Learn how to use Sirius, thanks to online complete user guides and reference manuals</p>
        <p><a class="" href="http://www.eclipse.org/sirius/doc/" target="">Learn more <i class="far fa-arrow-alt-circle-right" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>




        <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="far fa-comment fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Forum</h4>
        <p>Find relevant posts/answers. No solution yet to your concern? Come and ask your question</p>
        <p><a class="" href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=262" target="_blank">Learn more <i class="far fa-arrow-alt-circle-right" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>




        <div class="col-md-4 col-xs-12 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">
    <div>
        <i class="far fa-life-ring fa-3x pa2 txt_indigo" aria-hidden="true"></i>
    </div>                                
    <div>
        <h4>Professional support</h4>
        <p>Obeo, co-leader of Sirius, provides training, expertise, custom development and support plans</p>
        <p><a class="" href="https://www.obeodesigner.com/en/services" target="_blank">Learn more <i class="fas fa-arrow-alt-circle-right" aria-hidden="true"></i>
        </a></p>                                
    </div>
</div>



    </div>
    </div>
</section>

<section id="sponsors" class="text-center">
    <div class="container">
        <h2 class="title wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".2s">Sponsors</h2> 
<h3 class="wow fadeInDown" data-wow-duration="500ms" data-wow-delay=".3s"></h3>
<p class="wow fadeInDown" data-wow-duration="500ms" data-w ow-delay=".4s"></p>



        <div class="row align-items-center">
            <div class="col-md-4 offset-md-2 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">            
                <p><a href="http://www.obeosoft.com" title="Logo Obeo" target="_blank"><img src="/sirius/common_assets/images/logos/logo_obeo.png"></a></p>
            </div>
            <div class="col-md-4 wow fadeInLeft" data-wow-duration="500ms" data-wow-delay="300ms">            
                <p><a href="https://www.thalesgroup.com/en" title="Logo Thales" target="_blank"><img src="/sirius/common_assets/images/logos/logo_thales.png"></a></p>
            </div>
        </div>
    </div>       
</div>
</section>

<footer>
  <div class="container">
      <div class="row">    
        
<div class="col-md-3">
    <p><a href="http://www.eclipse.org/"  target="_blank"><img src="/sirius/common_assets/images/logos/logo-eclipse-foundation.png" alt="Eclipse Foundation logo"></a></p>
    <p id="copyright">Copyright © 2021 Eclipse Foundation, Inc.<br>All Rights Reserved.</p>
</div>

<div class="col-md-3">
    <h6>Eclipse Foundation</h6>
    <ul>
        <li><a href="http://www.eclipse.org/legal/privacy.php" target="_blank">Privacy Policy</a></li>
        <li><a href="http://eclipse.org/" target="_blank">Eclipse</a></li>
        <li><a href="http://www.eclipse.org/legal/termsofuse.php" target="_blank">Terms of Use</a></li>
        <li><a href="http://www.eclipse.org/legal/copyright.php" target="_blank">Copyright Agent</a></li>
        <li><a href="http://www.eclipse.org/legal/" target="_blank">Legal</a></li>
        <li><a href="http://www.eclipse.org/org/foundation/contact.php" target="_blank"> Contact Us</a></li>
    </ul>
</div>

        
<div class="col-md-3">
    <h6>Project Links</h6>
    <ul>
        <li><a href="https://projects.eclipse.org/projects/modeling.sirius" target="_blank">About this project</a></li>
        <li><a href="https://wiki.eclipse.org/Sirius" target="_blank">Wiki</a></li>
        <li><a href="https://www.eclipse.org/forums/index.php?t=thread&frm_id=262" target="_blank">Forum</a></li>
        <li><a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=6776579&classification=Modeling&query_format=advanced&product=Sirius" target="_blank">Bugs</a></li>
        <li><a href="https://git.eclipse.org/c/sirius/org.eclipse.sirius.git" target="_blank">Source Code</a></li>
    </ul>
</div>
    </div>
  </div>
</footer>

    
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous" defer></script>

<script src="/sirius/common_assets/js/wow.min.js" defer></script>
<script src="/sirius/common_assets/js/main.js" defer></script>
<script src="/sirius/common_assets/js/magnific-popup.min.js" defer></script>
<script src="/sirius/common_assets/js/magnific-popup.video.js" defer></script>
<!-- Call wow function -->
<script>
        jQuery(document).ready(function(){
            "use strict";
            new WOW().init();
            jQuery('.smooth-scroll').scrollingTo();

            var url = window.location;
            // Will only work if string in href matches with location
            jQuery('ul.nav a[href="'+ url +'"]').parent().addClass('active');

            // Will also work for relative and absolute hrefs
            jQuery('ul.nav a').filter(function() {
                return this.href == url;
            }).parent().addClass('active');

            jQuery(".nav a").on("click", function(){
                jQuery(".nav").find(".active").removeClass("active");
                jQuery(this).parent().addClass("active");
            });
        });
</script>
  
  </body>
</html>
