CINXE.COM
Page not found ‒ Research ‐ EPFL
<!doctype html> <html lang="en-GB"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="https://gmpg.org/xfn/11"> <link rel="manifest" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/site.webmanifest" /> <link rel="shortcut icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon.ico"> <link rel="apple-touch-icon-precomposed" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-152.png"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-16.png" sizes="16x16"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-32.png" sizes="32x32"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-57.png" sizes="57x57"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-76.png" sizes="76x76"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-96.png" sizes="96x96"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-120.png" sizes="120x120"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-128.png" sizes="128x128"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-152.png" sizes="152x152"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-180.png" sizes="180x180"> <link rel="shortcut icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/android-chrome-192x192.png" sizes="192x192"> <link rel="shortcut icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/android-chrome-512x512.png" sizes="512x512"> <link rel="icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-228.png" sizes="228x228"> <link rel="apple-touch-icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/apple-touch-icon.png"> <link rel="apple-touch-icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-152.png" sizes="152x152"> <link rel="apple-touch-icon" href="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/favicon-180.png" sizes="180x180"> <meta name="application-name" content="Name"> <meta name="msapplication-tooltip" content="Tooltip"> <meta name="msapplication-config" content="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/favicons/browserconfig.xml"> <script type="text/javascript">window.svgPath = "https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/icons/icons.svg"</script> <script type="text/javascript">window.featherSvgPath = "https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/icons/feather-sprite.svg"</script> <title>Page not found ‒ Research ‐ EPFL</title> <meta name='robots' content='max-image-preview:large' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel="alternate" type="application/rss+xml" title="Research » Feed" href="https://www.epfl.ch/research/feed/" /> <link rel="alternate" type="application/rss+xml" title="Research » Comments Feed" href="https://www.epfl.ch/research/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/www.epfl.ch\/research\/wp-includes\/js\/wp-emoji.js?ver=6.7.2","twemoji":"https:\/\/www.epfl.ch\/research\/wp-includes\/js\/twemoji.js?ver=6.7.2"}}; /** * @output wp-includes/js/wp-emoji-loader.js */ /** * Emoji Settings as exported in PHP via _print_emoji_detection_script(). * @typedef WPEmojiSettings * @type {object} * @property {?object} source * @property {?string} source.concatemoji * @property {?string} source.twemoji * @property {?string} source.wpemoji * @property {?boolean} DOMReady * @property {?Function} readyCallback */ /** * Support tests. * @typedef SupportTests * @type {object} * @property {?boolean} flag * @property {?boolean} emoji */ /** * IIFE to detect emoji support and load Twemoji if needed. * * @param {Window} window * @param {Document} document * @param {WPEmojiSettings} settings */ ( function wpEmojiLoader( window, document, settings ) { if ( typeof Promise === 'undefined' ) { return; } var sessionStorageKey = 'wpEmojiSettingsSupports'; var tests = [ 'flag', 'emoji' ]; /** * Checks whether the browser supports offloading to a Worker. * * @since 6.3.0 * * @private * * @returns {boolean} */ function supportsWorkerOffloading() { return ( typeof Worker !== 'undefined' && typeof OffscreenCanvas !== 'undefined' && typeof URL !== 'undefined' && URL.createObjectURL && typeof Blob !== 'undefined' ); } /** * @typedef SessionSupportTests * @type {object} * @property {number} timestamp * @property {SupportTests} supportTests */ /** * Get support tests from session. * * @since 6.3.0 * * @private * * @returns {?SupportTests} Support tests, or null if not set or older than 1 week. */ function getSessionSupportTests() { try { /** @type {SessionSupportTests} */ var item = JSON.parse( sessionStorage.getItem( sessionStorageKey ) ); if ( typeof item === 'object' && typeof item.timestamp === 'number' && new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds. typeof item.supportTests === 'object' ) { return item.supportTests; } } catch ( e ) {} return null; } /** * Persist the supports in session storage. * * @since 6.3.0 * * @private * * @param {SupportTests} supportTests Support tests. */ function setSessionSupportTests( supportTests ) { try { /** @type {SessionSupportTests} */ var item = { supportTests: supportTests, timestamp: new Date().valueOf() }; sessionStorage.setItem( sessionStorageKey, JSON.stringify( item ) ); } catch ( e ) {} } /** * Checks if two sets of Emoji characters render the same visually. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.9.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} set1 Set of Emoji to test. * @param {string} set2 Set of Emoji to test. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( context, set1, set2 ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set1, 0, 0 ); var rendered1 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set2, 0, 0 ); var rendered2 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); return rendered1.every( function ( rendered2Data, index ) { return rendered2Data === rendered2[ index ]; } ); } /** * Determines if the browser properly renders Emoji that Twemoji can supplement. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.2.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} type Whether to test for support of "flag" or "emoji". * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browserSupportsEmoji( context, type, emojiSetsRenderIdentically ) { var isIdentical; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. Added in Unicode 13. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width joiner sequence '\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for UN flag compatibility. This is the least supported of the letter locale flags, * so gives us an easy test for full support. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([U] + [N]). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDDFA\uD83C\uDDF3', // as the sequence of two code points '\uD83C\uDDFA\u200B\uD83C\uDDF3' // as the two code points separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather a five letter sub-division code. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( context, // as the flag sequence '\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F', // with each code point separated by a zero-width space '\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F' ); return ! isIdentical; case 'emoji': /* * Four and twenty blackbirds baked in a pie. * * To test for Emoji 15.0 support, try to render a new emoji: Blackbird. * * The Blackbird is a ZWJ sequence combining 🐦 Bird and ⬛ large black square., * * 0x1F426 (\uD83D\uDC26) == Bird * 0x200D == Zero-Width Joiner (ZWJ) that links the code points for the new emoji or * 0x200B == Zero-Width Space (ZWS) that is rendered for clients not supporting the new emoji. * 0x2B1B == Large Black Square * * When updating this test for future Emoji releases, ensure that individual emoji that make up the * sequence come from older emoji standards. */ isIdentical = emojiSetsRenderIdentically( context, '\uD83D\uDC26\u200D\u2B1B', // as the zero-width joiner sequence '\uD83D\uDC26\u200B\u2B1B' // separated by a zero-width space ); return ! isIdentical; } return false; } /** * Checks emoji support tests. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.3.0 * * @private * * @param {string[]} tests Tests. * @param {Function} browserSupportsEmoji Reference to browserSupportsEmoji function, needed due to minification. * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * * @return {SupportTests} Support tests. */ function testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically ) { var canvas; if ( typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ) { canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement. } else { canvas = document.createElement( 'canvas' ); } var context = canvas.getContext( '2d', { willReadFrequently: true } ); /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering support to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; var supports = {}; tests.forEach( function ( test ) { supports[ test ] = browserSupportsEmoji( context, test, emojiSetsRenderIdentically ); } ); return supports; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {string} src The url where the script is located. * * @return {void} */ function addScript( src ) { var script = document.createElement( 'script' ); script.src = src; script.defer = true; document.head.appendChild( script ); } settings.supports = { everything: true, everythingExceptFlag: true }; // Create a promise for DOMContentLoaded since the worker logic may finish after the event has fired. var domReadyPromise = new Promise( function ( resolve ) { document.addEventListener( 'DOMContentLoaded', resolve, { once: true } ); } ); // Obtain the emoji support from the browser, asynchronously when possible. new Promise( function ( resolve ) { var supportTests = getSessionSupportTests(); if ( supportTests ) { resolve( supportTests ); return; } if ( supportsWorkerOffloading() ) { try { // Note that the functions are being passed as arguments due to minification. var workerScript = 'postMessage(' + testEmojiSupports.toString() + '(' + [ JSON.stringify( tests ), browserSupportsEmoji.toString(), emojiSetsRenderIdentically.toString() ].join( ',' ) + '));'; var blob = new Blob( [ workerScript ], { type: 'text/javascript' } ); var worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojiSupports' } ); worker.onmessage = function ( event ) { supportTests = event.data; setSessionSupportTests( supportTests ); worker.terminate(); resolve( supportTests ); }; return; } catch ( e ) {} } supportTests = testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically ); setSessionSupportTests( supportTests ); resolve( supportTests ); } ) // Once the browser emoji support has been obtained from the session, finalize the settings. .then( function ( supportTests ) { /* * Tests the browser support for flag emojis and other emojis, and adjusts the * support settings accordingly. */ for ( var test in supportTests ) { settings.supports[ test ] = supportTests[ test ]; settings.supports.everything = settings.supports.everything && settings.supports[ test ]; if ( 'flag' !== test ) { settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && settings.supports[ test ]; } } settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && ! settings.supports.flag; // Sets DOMReady to false and assigns a ready function to settings. settings.DOMReady = false; settings.readyCallback = function () { settings.DOMReady = true; }; } ) .then( function () { return domReadyPromise; } ) .then( function () { // When the browser can not render everything we need to load a polyfill. if ( ! settings.supports.everything ) { settings.readyCallback(); var src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } ); } )( window, document, window._wpemojiSettings ); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.epfl.ch/research/wp-includes/css/dist/block-library/style.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='wp-gutenberg-epfl-bases-style-css-css' href='https://www.epfl.ch/research/wp-content/plugins/wp-gutenberg-epfl/build/style-index.css?ver=1741815482' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /** * These rules are needed for backwards compatibility. * They should match the button element rules in the base theme.json file. */ .wp-block-button__link { color: #ffffff; background-color: #32373c; border-radius: 9999px; /* 100% causes an oval, but any explicit but really high value retains the pill shape. */ /* This needs a low specificity so it won't override the rules from the button element if defined in theme.json. */ box-shadow: none; text-decoration: none; /* The extra 2px are added to size solids the same as the outline versions.*/ padding: calc(0.667em + 2px) calc(1.333em + 2px); font-size: 1.125em; } .wp-block-file__button { background: #32373c; color: #ffffff; text-decoration: none; } </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='epfl-style-css' href='https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/style.css?ver=1741815403' type='text/css' media='all' /> <link rel='stylesheet' id='epfl-vendors-css' href='https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/css/vendors.min.css?ver=1741815403' type='text/css' media='all' /> <link rel='stylesheet' id='epfl-elements-css' href='https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/css/elements.min.css?ver=1741815403' type='text/css' media='all' /> <link rel='stylesheet' id='epfl-theme-css' href='https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/theme/style.min.css?ver=1741815403' type='text/css' media='all' /> <link rel='stylesheet' id='enlighterjs-css' href='https://www.epfl.ch/research/wp-content/plugins/enlighter/cache/enlighterjs.min.css?ver=efDSf1oldEH1s46' type='text/css' media='all' /> <script type="text/javascript" src="https://www.epfl.ch/research/wp-includes/js/jquery/jquery.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://www.epfl.ch/research/wp-includes/js/jquery/jquery-migrate.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://www.epfl.ch/research/wp-content/plugins/wp-gutenberg-epfl/frontend/lib/list.min.js?ver=1.5" id="lib-listjs-js"></script> <script type="text/javascript" src="https://www.epfl.ch/research/wp-content/plugins/flowpaper-lite-pdf-flipbook/assets/lity/lity.min.js" id="lity-js-js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js?ver=1741815403" id="epfl-js-jquery-js"></script> <link rel="https://api.w.org/" href="https://www.epfl.ch/research/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.epfl.ch/research/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.2" /> <!-- 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-PJGBG5R');</script> <!-- End Google Tag Manager --> <!-- Global Site Tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-5C3VK9437Y"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag("js", new Date()); gtag("config", "G-5C3VK9437Y", { "anonymize_ip": true }); </script> <!-- Open Graph / Facebook --> <meta property="og:type" content="website" /> <meta property="og:site_name" content="EPFL" /> <meta property="og:title" content="Research" /> <meta property="og:description" content="Research" /> <meta property="og:url" content="https://www.epfl.ch/research/collaborate/" /> <meta property="og:image" content="https://actu.epfl.ch/image/92055/1108x622.jpg" /> <meta property="og:image:secure_url" content="https://actu.epfl.ch/image/92055/1108x622.jpg" /> <meta property="og:image:alt" content="" /> <meta property="og:image:type" content="" /> <meta property="og:locale" content="en_GB" /> <meta property="og:locale:alternate" content="fr_FR" /> <meta property="og:locale:alternate" content="de_DE" /> <meta property="fb:app_id" content="966242223397117" /> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Research" /> <meta name="twitter:description" content="Research" /> <meta name="twitter:image" content="https://actu.epfl.ch/image/92055/1108x622.jpg" /> </head> <body class="error404 hfeed no-sidebar epfl-wp"> <div id="page" class="site"> <a class="sr-only" href="#content">Skip to content</a> <header role="banner" class="header"> <a class="logo" href="https://www.epfl.ch/en/"> <img src="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/svg/epfl-logo.svg?refresh=now" alt="Logo EPFL, École polytechnique fédérale de Lausanne" class="img-fluid"> </a> <ul aria-hidden="true" class="nav-header d-none d-xl-flex"> <!-- Top menu is in fallback mode --> <li id="menu-item-1"> <a class="nav-item" href="https://www.epfl.ch/about/">About</a> </li> <li id="menu-item-2"> <a class="nav-item" href="https://www.epfl.ch/education/">Education</a> </li> <li id="menu-item-3"> <a class="nav-item" href="https://www.epfl.ch/research/">Research</a> </li> <li id="menu-item-4"> <a class="nav-item" href="https://www.epfl.ch/innovation/">Innovation</a> </li> <li id="menu-item-5"> <a class="nav-item" href="https://www.epfl.ch/schools/">Schools</a> </li> <li id="menu-item-6"> <a class="nav-item" href="https://www.epfl.ch/campus/">Campus</a> </li> </ul> <div class="dropdown dropright search d-none d-xl-block"> <a class="dropdown-toggle" href="#" data-toggle="dropdown"> <svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"></use></svg> </a> <form action="https://search.epfl.ch/" class="dropdown-menu border-0 p-0"> <div class="search-form mt-1 input-group"> <label for="search" class="sr-only">Search on the site</label> <input type="text" class="form-control" name="q" placeholder="Search" > <button type="submit" class="d-none d-xl-block btn btn-primary input-group-append" type="button">Validate</button> </div> </form> </div> <form action="https://search.epfl.ch/" class="d-xl-none"> <a id="search-mobile-toggle" class="search-mobile-toggle searchform-controller" href="#"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-search"></use> </svg> <span class="toggle-label sr-only">Show / hide the search form</span> </a> <div class="input-group search-mobile" role="search"> <div class="input-group-prepend"> <span class="input-group-text"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-search"></use> </svg> </span> </div> <label for="search" class="sr-only">Search on the site</label> <input type="text" class="form-control" name="q" placeholder="Search"> <div class="input-group-append"> <a id="search-mobile-close" class="search-mobile-close searchform-controller" href="#"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-close"></use> </svg> <span class="toggle-label sr-only">Hide the search form</span> </a> </div> </div> </form> <!-- language switcher, 3 or more elements --> <nav class="nav-lang ml-auto dropdown" aria-label="Change language"> <button class="dropdown-toggle btn btn-secondary" aria-haspopup="true" aria-expanded="false" data-toggle="dropdown"> <svg class="icon" aria-hidden="true"><use xlink:href="#icon-planet"></use></svg> <span>EN</span> </button> <ul class="dropdown-menu"> <li> <a href="https://www.epfl.ch/research/fr/" aria-label="FRANçAIS" class="dropdown-item"> <span>FR</span> </a> </li> <li> <a aria-label="English (Current language)" class="active dropdown-item"> <svg class="icon" aria-hidden="true"><use xlink:href="#icon-planet"></use></svg> <span>EN</span> </a> </li> <li> <a href="https://www.epfl.ch/research/de/" aria-label="DEUTSCH" class="dropdown-item"> <span>DE</span> </a> </li> </ul> </nav> <button class="btn btn-secondary nav-toggle-mobile d-xl-none"> <span class="label">Menu</span> <div class="hamburger"> <span></span> <span></span> <span></span> </div> </button> </header> <div class="main-container"> <div id="primary" class="content-area"> <main id="main" class="content"> <section class="error-404 not-found"> <div class="page-content container"> <p class="h1 mt-4 error-title">404</p> <h1 class="h3 text-center">Oops! That page can’t be found.</h1> <div class="mt-5 pt-2"> <div class="dropdown dropright search"> <form action="https://www.epfl.ch/research/" class="border-0 p-0"> <div class="search-form mt-1 input-group"> <label for="search" class="sr-only">Search</label> <input type="text" class="form-control" name="q" placeholder="Search in the EPFL Web" > <button type="submit" class="btn btn-primary input-group-append" type="button">Validate</button> </div> </form> </div> </div> </div><!-- .page-content --> </section><!-- .error-404 --> </main><!-- #main --> </div><!-- #primary --> <div class="bg-gray-100 py-5 mt-5"> <div class="container"> <footer class="footer" role="contentinfo"> <div class="footer-group footer-sitemap"> <div class="footer-sitemap-col"> <button class="footer-title collapse-title collapsed" type="button" data-toggle="collapse" data-target="#collapse-footer-1" aria-expanded="false" aria-controls="collapse-footer-1"> <strong>About</strong> </button> <div class="collapse collapse-item" id="collapse-footer-1"> <ul class="footer-links"> <li> <a href="https://www.epfl.ch/about/overview/">Who we are</a> </li> <li> <a href="https://www.epfl.ch/about/campus/">Associated Campuses</a> </li> <li> <a href="https://www.epfl.ch/about/facts/">Facts</a> </li> <li> <a href="https://www.epfl.ch/about/presidency/">Presidency</a> </li> <li> <a href="https://www.epfl.ch/about/vice-presidencies/">Vice Presidencies</a> </li> <li> <a href="https://www.epfl.ch/about/working/">Working at EPFL</a> </li> <li> <a href="https://www.epfl.ch/about/recruiting/">Recruiting EPFL Talents</a> </li> <li> <a href="https://www.epfl.ch/about/news-and-media/">News & Media</a> </li> <li> <a href="https://www.epfl.ch/about/sustainability/">Sustainability</a> </li> <li> <a href="https://www.epfl.ch/about/equality/">Equality & Diversity</a> </li> <li> <a href="https://www.epfl.ch/about/respect/">Respect</a> </li> <li> <a href="https://www.epfl.ch/about/philanthropy/">Philanthropy</a> </li> <li> <a href="https://www.epflalumni.ch" target="_blank" rel="noopener">EPFL Alumni</a> </li> </ul> </div> </div> <div class="footer-sitemap-col"> <button class="footer-title collapse-title collapsed" type="button" data-toggle="collapse" data-target="#collapse-footer-2" aria-expanded="false" aria-controls="collapse-footer-2"> <strong>Education</strong> </button> <div class="collapse collapse-item" id="collapse-footer-2"> <ul class="footer-links"> <li> <a href="https://www.epfl.ch/education/bachelor/">Bachelor</a> </li> <li> <a href="https://www.epfl.ch/education/master/">Master</a> </li> <li> <a href="https://www.epfl.ch/education/phd/">Doctorate</a> </li> <li> <a href="https://www.epfl.ch/education/continuing-education/">Continuing Education</a> </li> <li> <a href="https://www.epfl.ch/education/international/en/">International</a> </li> <li> <a href="https://www.epfl.ch/education/teaching/">Teaching</a> </li> <li> <a href="https://www.epfl.ch/education/admission/">Admission</a> </li> <li> <a href="https://www.epfl.ch/education/studies/en/">Study Management</a> </li> <li> <a href="https://www.epfl.ch/education/educational-initiatives/">Educational Initiatives</a> </li> <li> <a href="https://www.epfl.ch/education/education-and-science-outreach/">Education & Science Outreach</a> </li> </ul> </div> </div> <div class="footer-sitemap-col"> <button class="footer-title collapse-title collapsed" type="button" data-toggle="collapse" data-target="#collapse-footer-3" aria-expanded="false" aria-controls="collapse-footer-3"> <strong>Research</strong> </button> <div class="collapse collapse-item" id="collapse-footer-3"> <ul class="footer-links"> <li> <a href="https://www.epfl.ch/research/domains/">Research Domains</a> </li> <li> <a href="https://www.epfl.ch/research/faculty-members/">Faculty Members</a> </li> <li> <a href="https://www.epfl.ch/research/awards/">Awards & Prizes</a> </li> <li> <a href="https://www.epfl.ch/research/collaborate/">Collaborate With Our Researchers</a> </li> <li> <a href="https://www.epfl.ch/research/facilities/">EPFL Research Facilities</a> </li> <li> <a href="https://www.epfl.ch/research/access-technology/">Access Our Technologies</a> </li> <li> <a href="https://www.epfl.ch/research/ethic-statement/">Research Ethics</a> </li> <li> <a href="https://www.epfl.ch/research/experimentation-research-with-animals/">Research With Animals</a> </li> <li> <a href="https://www.epfl.ch/research/meet-the-support-units-for-research/">Meet the Support Units For Research</a> </li> <li> <a href="https://www.epfl.ch/research/services/">Services to EPFL Laboratories</a> </li> <li> <a href="https://www.epfl.ch/research/open-science/">Open Science</a> </li> </ul> </div> </div> <div class="footer-sitemap-col"> <button class="footer-title collapse-title collapsed" type="button" data-toggle="collapse" data-target="#collapse-footer-4" aria-expanded="false" aria-controls="collapse-footer-4"> <strong>Innovation</strong> </button> <div class="collapse collapse-item" id="collapse-footer-4"> <ul class="footer-links"> <li> <a href="https://www.epfl.ch/innovation/domains/">Innovation Initiatives</a> </li> <li> <a href="https://www.epfl.ch/innovation/industry/">Industry Collaboration</a> </li> <li> <a href="https://www.epfl.ch/innovation/startup/">Startup Launchpad</a> </li> </ul> </div> </div> <div class="footer-sitemap-col"> <button class="footer-title collapse-title collapsed" type="button" data-toggle="collapse" data-target="#collapse-footer-5" aria-expanded="false" aria-controls="collapse-footer-5"> <strong>Campus</strong> </button> <div class="collapse collapse-item" id="collapse-footer-5"> <ul class="footer-links"> <li> <a href="https://www.epfl.ch/campus/services/en/">Services & Resources</a> </li> <li> <a href="https://www.epfl.ch/campus/library/">Library</a> </li> <li> <a href="https://www.epfl.ch/campus/restaurants-shops-hotels/">Restaurants, Shops & Hotels</a> </li> <li> <a href="https://www.epfl.ch/campus/security-safety/en/">Security, Prevention & Health</a> </li> <li> <a href="https://www.epfl.ch/campus/sports/en/">Sports</a> </li> <li> <a href="https://www.epfl.ch/campus/community/">Community & Support</a> </li> <li> <a href="https://www.epfl.ch/campus/spiritual-care/en/">Chaplaincy</a> </li> <li> <a href="https://www.epfl.ch/campus/events/">Events</a> </li> <li> <a href="https://www.epfl.ch/campus/art-culture/">Arts & Culture</a> </li> <li> <a href="https://www.epfl.ch/campus/associations/">Associations</a> </li> <li> <a href="https://www.epfl.ch/campus/visitors/">Visit EPFL</a> </li> <li> <a href="https://www.epfl.ch/campus/mobility/">Mobility & Travel</a> </li> </ul> </div> </div> </div> <div class="footer-group"> <div class="footer-faculties"> <button class="footer-title collapse-title collapsed" type="button" data-toggle="collapse" data-target="#collapse-fac" aria-expanded="false" aria-controls="collapse-fac"> Schools & Colleges </button> <div class="collapse collapse-item" id="collapse-fac"> <ul class="footer-links"> <li> <a href="https://www.epfl.ch/schools/enac/">School of Architecture, Civil & Environmental Engineering <strong>ENAC</strong></a> </li> <li> <a href="https://www.epfl.ch/schools/sb/">School of Basic Sciences <strong>SB</strong></a> </li> <li> <a href="https://sti.epfl.ch">School of Engineering <strong>STI</strong></a> </li> <li> <a href="https://www.epfl.ch/schools/ic/">School of Computer & Communication Sciences <strong>IC</strong></a> </li> <li> <a href="https://www.epfl.ch/schools/sv/">School of Life Sciences <strong>SV</strong></a> </li> <li> <a href="https://www.epfl.ch/schools/cdm/">College of Management of Technology <strong>CDM</strong></a> </li> <li> <a href="https://www.epfl.ch/schools/cdh/">College of Humanities <strong>CDH</strong></a> </li> </ul> </div> </div> </div> <div class="footer-group footer-buttons"> <p class="footer-title footer-title-no-underline">Practical</p> <a href="https://www.epfl.ch/campus/services/en/" class="btn btn-secondary btn-sm">Services & Resources</a> <a href="tel:+41216933000" class="btn btn-secondary btn-sm">Emergencies: +41 21 693 3000</a> <a href="https://www.epfl.ch/about/contact-en/" class="btn btn-secondary btn-sm">Contact</a> <a href="https://map.epfl.ch/?lang=en" class="btn btn-secondary btn-sm">Map</a> </div> <div class="footer-group footer-socials"> <p class="footer-title footer-title-no-underline">Follow EPFL on social media</p> <div class="footer-social"> <ul class="social-icon-list list-inline"> <li> <a href="https://www.facebook.com/epflcampus" class="social-icon social-icon-facebook social-icon-negative" target="_blank" rel="nofollow noopener"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-facebook"></use> </svg> <span class="sr-only">Follow us on Facebook</span> </a> </li> <li> <a href="https://instagram.com/epflcampus" class="social-icon social-icon-instagram social-icon-negative" target="_blank" rel="nofollow noopener"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-instagram"></use> </svg> <span class="sr-only">Follow us on Instagram</span> </a> </li> <li> <a href="https://www.linkedin.com/school/epfl/" class="social-icon social-icon-linkedin social-icon-negative" target="_blank" rel="nofollow noopener"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-linkedin"></use> </svg> <span class="sr-only">Follow us on LinkedIn</span> </a> </li> <li> <a href="https://x.com/epfl_en" class="social-icon social-icon-x social-icon-negative" target="_blank" rel="nofollow noopener"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-x"></use> </svg> <span class="sr-only">Follow us on X</span> </a> </li> <li> <a href="https://www.youtube.com/user/epflnews" class="social-icon social-icon-youtube social-icon-negative" target="_blank" rel="nofollow noopener"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-youtube"></use> </svg> <span class="sr-only">Follow us on Youtube</span> </a> </li> </ul> </div> </div> <div class="footer-legal"> <div class="footer-legal-links"> <a href="https://www.epfl.ch/about/overview/regulations-and-guidelines/disclaimer/">Accessibility</a> <a href="https://www.epfl.ch/about/overview/regulations-and-guidelines/disclaimer/">Disclaimer</a> <a href="https://go.epfl.ch/privacy-policy/">Privacy policy</a> </div> <div> <p>© 2023 EPFL, all rights reserved</p> </div> </div> </footer> <button id="back-to-top" class="btn btn-primary btn-back-to-top"> <span class="sr-only">Back to top</span> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-chevron-top"></use> </svg> </button> </div> </div> </div><!-- #page --> <style id='core-block-supports-inline-css' type='text/css'> /** * Core styles: block-supports */ </style> <script type="text/javascript" src="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/js/vendors.min.js?ver=1741815403" id="epfl-js-vendors-js"></script> <script type="text/javascript" src="https://www.epfl.ch/research/wp-content/themes/wp-theme-2018/assets/js/elements.min.js?ver=1741815403" id="epfl-js-js"></script> </body> </html>