<!DOCTYPE html>
<html class="no-js">
<head>
	<!-- Basic Page Needs
        ================================================== -->
	<meta charset="utf-8">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<link rel="icon" type="image/png" href="images/favicon.ico">
	<title>Capella Days 2021</title>
	<meta name="description"
		content="Capella Day is a one-day event dedicated to Capella open source model-based systems engineering tool.">
	<meta name="keywords" content="">
	<meta name="author" content="">
	<!-- Mobile Specific Metas
        ================================================== -->
	<meta name="format-detection" content="telephone=no">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- Template CSS Files
        ================================================== -->
	<!-- Twitter Bootstrs CSS -->
	<link rel="stylesheet" href="css/bootstrap.min.css">
	<!-- animate css -->
	<link rel="stylesheet" href="css/animate.css">
	<link rel="stylesheet" href="css/jquery.fancybox.css">
	<!-- template main css file -->
	<link rel="stylesheet" href="css/main.css">
	<!-- responsive css -->
	<link rel="stylesheet" href="css/responsive.css">
	<link rel="stylesheet" href="css/latofonts.css">
	<script src="https://use.fontawesome.com/b51f77a16a.js"></script>
	<!-- Cookie content -->
	<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>
	<!-- 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 -->
	<!-- Template Javascript Files
        ================================================== -->
	<!-- Angular -->
	<base href="/capella/">
	<script src="js/angular-1.7.8.min.js"></script>
	<script src="angular/capella.js"></script>
	<!-- modernizr js -->
	<script src="js/vendor/modernizr-2.6.2.min.js"></script>
	<!-- jquery -->
	<script src="js/jquery-3.4.1.min.js"></script>
	<!-- bootstrap js -->
	<script src="js/bootstrap.min.js"></script>
	<!-- wow js -->
	<script src="js/wow.min.js"></script>
	<script src="js/jquery.fancybox.js"></script>
	<!-- template main js -->
	<script src="js/main.js"></script>
</head>
<body ng-app="capella" data-deferred-cloak>
	<!--
        ==================================================
        Header Section
        ================================================== -->
	<ng-include src="'angular/blocks/header.html'"></ng-include>
	<!--
        ==================================================
        Intro Section
        ================================================== -->
	<section class="hero-area contact">
		<div class="container">
			<div class="row">
				<div class="col-md-12 text-center">
					<div class="block wow fadeInUp" data-wow-delay=".3s">
						<section class="cd-intro">
							<h1 class="wow fadeInUp animated" data-wow-delay=".4s">
								Capella Days 2021<br>
							</h1>
						<h2 class="wow fadeInUp animated" data-wow-delay=".6s">
							November 16-18, 2021 | Online
						</h2>
						</section> <!-- cd-intro -->
						<h2 class="wow fadeInUp animated" data-wow-delay=".6s">
							<b>Call for proposals is open!</b>
						</h2>
						<a href="https://bit.ly/CapellaDays2021-CFP" target="_blank"
							class="btn btn-default btn-contact wow fadeInDown" data-wow-delay=".7s"
							data-wow-duration="500ms">Submit your talk</a>
					</div>
				</div>
			</div>
		</div>
	</section>
	<!--/#intro_banner-->
	<section id="cfp">
		<div class="container">
			<div class="row wow fadeInDown" data-wow-delay=".3s">
				<h2 class="title">Call for Proposals</h2>
				<p>After a great 2020 edition, Capella Days is coming back in November 2021.</p>
				<p>Take this opportunity to share your experience on MBSE and Capella.</p>
				<p>We are interested in these topics:</p>
				<ul>
					<li>industrial feedbacks,</li>
					<li>innovative experiences,</li>
					<li>extensions and integrations.</li>
				</ul>
						<a href="https://bit.ly/CapellaDays2021-CFP" target="_blank"
							class="btn btn-default btn-contact wow fadeInDown" data-wow-delay=".7s"
							data-wow-duration="500ms">Submit your talk</a>
				<p>&nbsp;</p>
				<p>Important dates:</p>
				<ul>
					<li><b>July 1:</b> Submissions open</li>
					<li><b>September 1:</b> Early submission deadline</li>
					<li><b>September 15:</b> Final submission deadline</li>
					<li><b>October 1:</b> Program announced</li>
					<li><b>November 16-18:</b> Online presentations</li>
				</ul>
			</div>
		</div>
	</section>
	<section id="organized_by">
		<div class="container">
			<div class="row wow fadeInDown" data-wow-delay=".3s">
				<h2 class="title">Organized by</h2>
				<p>Capella Days 2021 is organized by Obeo, in partnership with Thales.</p>
				<p></p>
				<a href="https://www.obeosoft.com/en/capella-professional-offer" target="_blank"><img src="images/logo_obeo.png" width="280"></a>
				<a href="industry-consortium/thales.html" target="_blank"><img src="images/logo_thales.png" width="280"></a>
			</div>
		</div>
	</section>
	<section id="sponsored_by">
		<div class="container">
			<div class="row wow fadeInDown" data-wow-delay=".3s">
				<h2 class="title">Sponsoring</h2>
				<p>You are a provider of services or products related to Capella? </p>
				<p>Support the event and gain visibility from the Capella practitioners by sponsoring Capella Days.</p>
			</div>
			<a href="resources/pdf/CapellaDays2021-Sponsorship.pdf"
							class="btn btn-default btn-contact wow fadeInDown" data-wow-delay=".7s"
							data-wow-duration="500ms">Sponsorship Program</a>
		</div>
	</section>
	<section id="previous">
		<div class="container">
			<div class="row wow fadeInDown" data-wow-delay=".3s">
				<h2 class="title">Previous editions</h2>
				<ul>
					<li><a href="capella_days_2020.html" target="_blank">Capella Days Online 2020</a></li>
					<li><a href="capella_day_munich_2019.html" target="_blank">Capella Day
							Munich 2019</a></li>
					<li><a href="https://wiki.eclipse.org/Capella_Day_Stuttgart_2018" target="_blank">Capella Day
							Stuttgart 2018</a></li>
					<li><a href="https://www.eclipsecon.org/france2017/capella-day" target="_blank">Capella Day Toulouse
							2017</a></li>
				</ul>
			</div>
			</div>
		</div>
	</section>
	<div id="back-to-top" data-spy="affix" data-offset-top="100" class="back-to-top hidden-xs hidden-sm affix-top">
		<button class="btn btn-default" title="Back to Top">
			<i class="fa fa-caret-up"></i>
		</button>
	</div>
	<script type="text/javascript">
		// Back to top
		jQuery('#back-to-top').on('click', function () {
			jQuery("html, body").animate({
				scrollTop: 0
			}, 500);
			return false;
		});
	</script>
	<!--
        ==================================================
        Call To Action Section Start
        ================================================== -->
	<ng-include src="'angular/blocks/call2action_capella_day.html'"></ng-include>
	<!--
        ==================================================
        Footer Section
        ================================================== -->
	<ng-include src="'angular/blocks/footer.html'"></ng-include>
	<script async src="js/googleAnalytics.js"></script>
</body>
</html>