{"id":2598,"date":"2026-05-25T00:33:12","date_gmt":"2026-05-25T00:33:12","guid":{"rendered":"https:\/\/millepiani.com\/research-and-development\/"},"modified":"2026-09-15T18:27:55","modified_gmt":"2026-09-15T18:27:55","slug":"research-and-development","status":"publish","type":"page","link":"https:\/\/millepiani.com\/en\/research-and-development\/","title":{"rendered":"RESEARCH AND DEVELOPMENT"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2598\" class=\"elementor elementor-2598 elementor-521\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36554df e-con-full e-flex e-con e-parent\" data-id=\"36554df\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a0e072c elementor-widget elementor-widget-html\" data-id=\"a0e072c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"mp-rd-page\">\r\n\r\n  <!-- HERO -->\r\n  <section class=\"mp-rd-hero\" id=\"top\">\r\n    <div class=\"mp-rd-hero-bg\"><\/div>\r\n    <div class=\"mp-rd-hero-overlay\"><\/div>\r\n\r\n    <div class=\"mp-rd-hero-content mp-reveal\">\r\n      <p class=\"mp-kicker\">Millepiani Group<\/p>\r\n\r\n      <h1>Research<br\/>and Development<\/h1>\r\n\r\n      <p>\r\n Research and development activity constitutes a fundamental asset for Millepiani Elevators:\r\n innovating, proposing new solutions, building skills, and constantly improving processes\r\n means charting new frontiers in the Italian and international markets.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n    <a href=\"#ricerca-sviluppo\" class=\"mp-scroll-arrow\" aria-label=\"Scorri alla sezione successiva\">\r\n      <span><\/span>\r\n    <\/a>\r\n  <\/section>\r\n\r\n\r\n  <!-- SEZIONE SPECIALE -->\r\n  <section class=\"mp-rd-system\" id=\"ricerca-sviluppo\">\r\n    <canvas class=\"mp-rd-canvas\" id=\"mpRdCanvas\" aria-hidden=\"true\"><\/canvas>\r\n\r\n    <div class=\"mp-rd-system-bg\"><\/div>\r\n    <div class=\"mp-rd-system-grid\"><\/div>\r\n\r\n    <div class=\"mp-rd-system-inner\">\r\n\r\n      <div class=\"mp-rd-system-head mp-reveal\">\r\n        <p class=\"mp-rd-system-kicker\">Innovation framework<\/p>\r\n\r\n        <h2>\r\n Designing<br\/> the future\r\n        <\/h2>\r\n\r\n        <p>\r\n An interactive section dedicated to the pillars of Millepiani Research and Development:\r\n innovation, investment, technical training, tools for the construction site,\r\n system monitoring, and the growth of corporate knowledge assets.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mp-rd-lab\">\r\n\r\n        <div class=\"mp-rd-lab-panel mp-reveal\">\r\n          <p id=\"mpRdPanelKicker\">Fundamental asset<\/p>\r\n\r\n          <h3 id=\"mpRdPanelTitle\">\r\n Innovating to<br\/> propose new<br\/> solutions\r\n          <\/h3>\r\n\r\n          <div class=\"mp-rd-panel-line\"><\/div>\r\n\r\n          <p id=\"mpRdPanelText\">\r\n Research and development activity has always constituted a fundamental asset\r\n for Millepiani Elevators. The ability to innovate and propose new solutions\r\n is among the defining characteristics of the company's success. \r\n          <\/p>\r\n\r\n          <div class=\"mp-rd-panel-tags\" id=\"mpRdPanelTags\">\r\n            <span>Innovation<\/span>\r\n            <span>New solutions<\/span>\r\n            <span>Success<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"mp-rd-cards\">\r\n\r\n          <button type=\"button\" class=\"mp-rd-card mp-reveal is-active\" data-rd-topic=\"innovazione\">\r\n            <span class=\"mp-rd-card-number\">01<\/span>\r\n            <span class=\"mp-rd-card-icon\">\r\n              <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M9 18h6\"><\/path>\r\n                <path d=\"M10 22h4\"><\/path>\r\n                <path d=\"M12 2a7 7 0 0 0-4 12c1 1 1 2 1 3h6c0-1 0-2 1-3a7 7 0 0 0-4-12z\"><\/path>\r\n              <\/svg>\r\n            <\/span>\r\n            <strong>Innovation<\/strong>\r\n            <p>The ability to innovate and propose new solutions is part of the company's success.<\/p>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"mp-rd-card mp-reveal\" data-rd-topic=\"investimenti\">\r\n            <span class=\"mp-rd-card-number\">02<\/span>\r\n            <span class=\"mp-rd-card-icon\">\r\n              <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M4 19h16\"><\/path>\r\n                <path d=\"M6 17l4-5 3 3 5-8\"><\/path>\r\n                <path d=\"M15 7h3v3\"><\/path>\r\n              <\/svg>\r\n            <\/span>\r\n            <strong>Investment<\/strong>\r\n            <p>Resources dedicated to R&D and training are considered fundamental investments.<\/p>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"mp-rd-card mp-reveal\" data-rd-topic=\"formazione\">\r\n            <span class=\"mp-rd-card-number\">03<\/span>\r\n            <span class=\"mp-rd-card-icon\">\r\n              <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M4 19.5V5a2 2 0 0 1 2-2h12v18H6a2 2 0 0 1-2-1.5z\"><\/path>\r\n                <path d=\"M8 7h6\"><\/path>\r\n                <path d=\"M8 11h8\"><\/path>\r\n              <\/svg>\r\n            <\/span>\r\n            <strong>Training<\/strong>\r\n            <p>An up-to-date training program maintains competence and reliability over time.<\/p>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"mp-rd-card mp-reveal\" data-rd-topic=\"cantiere\">\r\n            <span class=\"mp-rd-card-number\">04<\/span>\r\n            <span class=\"mp-rd-card-icon\">\r\n              <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M3 21h18\"><\/path>\r\n                <path d=\"M6 21V9l6-4 6 4v12\"><\/path>\r\n                <path d=\"M9 21v-6h6v6\"><\/path>\r\n              <\/svg>\r\n            <\/span>\r\n            <strong>Construction site<\/strong>\r\n            <p>R&D aims to provide useful tools to facilitate the work of clients on the construction site.<\/p>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"mp-rd-card mp-reveal\" data-rd-topic=\"monitoraggio\">\r\n            <span class=\"mp-rd-card-number\">05<\/span>\r\n            <span class=\"mp-rd-card-icon\">\r\n              <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M4 12h4l2-6 4 12 2-6h4\"><\/path>\r\n                <path d=\"M3 3v18h18\"><\/path>\r\n              <\/svg>\r\n            <\/span>\r\n            <strong>Monitoring<\/strong>\r\n            <p>Among the objectives is ensuring effective monitoring of installed systems.<\/p>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"mp-rd-card mp-reveal\" data-rd-topic=\"processi\">\r\n            <span class=\"mp-rd-card-number\">06<\/span>\r\n            <span class=\"mp-rd-card-icon\">\r\n              <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M12 3v4\"><\/path>\r\n                <path d=\"M12 17v4\"><\/path>\r\n                <path d=\"M3 12h4\"><\/path>\r\n                <path d=\"M17 12h4\"><\/path>\r\n                <circle cx=\"12\" cy=\"12\" r=\"5\"><\/circle>\r\n              <\/svg>\r\n            <\/span>\r\n            <strong>Processes<\/strong>\r\n            <p>Research and development improve effectiveness, efficiency, and corporate technical knowledge.<\/p>\r\n          <\/button>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/section>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8e227a4 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-shortcode\" data-id=\"8e227a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script>document.documentElement.classList.add(\"mp-js-ready\");\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Reveal animation\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const revealItems = document.querySelectorAll(\".mp-reveal\");\r\n\r\n  if (\"IntersectionObserver\" in window) {\r\n    const revealObserver = new IntersectionObserver(function (entries, observer) {\r\n      entries.forEach(function (entry) {\r\n        if (!entry.isIntersecting) return;\r\n\r\n        entry.target.classList.add(\"is-visible\");\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.16\r\n    });\r\n\r\n    revealItems.forEach(function (item) {\r\n      revealObserver.observe(item);\r\n    });\r\n  } else {\r\n    revealItems.forEach(function (item) {\r\n      item.classList.add(\"is-visible\");\r\n    });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Smooth scroll\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  document.querySelectorAll('a[href^=\"#\"]').forEach(function (anchor) {\r\n    anchor.addEventListener(\"click\", function (event) {\r\n      const targetId = anchor.getAttribute(\"href\");\r\n\r\n      if (!targetId || targetId === \"#\") return;\r\n\r\n      const target = document.querySelector(targetId);\r\n\r\n      if (!target) return;\r\n\r\n      event.preventDefault();\r\n\r\n      target.scrollIntoView({\r\n        behavior: \"smooth\",\r\n        block: \"start\"\r\n      });\r\n    });\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Language\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const pageLang = (document.documentElement.lang || \"it\")\r\n    .toLowerCase()\r\n    .split(\"-\")[0];\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | R&D translations\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const rdTranslations = {\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | ITALIANO\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    it: {\r\n\r\n      innovazione: {\r\n        kicker: \"Asset fondamentale\",\r\n        title: \"Innovare per<br>proporre nuove<br>soluzioni\",\r\n        text: \"Da sempre l\u2019attivit\u00e0 di ricerca e sviluppo costituisce un asset fondamentale per Millepiani Elevators. La capacit\u00e0 di innovare e proporre nuove soluzioni \u00e8 tra le caratteristiche determinanti del successo dell\u2019azienda.\",\r\n        tags: [\r\n          \"Innovazione\",\r\n          \"Nuove soluzioni\",\r\n          \"Successo\"\r\n        ]\r\n      },\r\n\r\n      investimenti: {\r\n        kicker: \"Risorse e crescita\",\r\n        title: \"R&S come<br>investimento<br>strategico\",\r\n        text: \"Millepiani Elevators ha investito, e continua a investire, ingenti risorse in attivit\u00e0 di ricerca e sviluppo e in formazione. Le spese in R&S non sono considerate meri oneri da budget, ma investimenti fondamentali per elevare la societ\u00e0 a leader del comparto.\",\r\n        tags: [\r\n          \"Investimenti\",\r\n          \"Formazione\",\r\n          \"Leadership\"\r\n        ]\r\n      },\r\n\r\n      formazione: {\r\n        kicker: \"Competenze aggiornate\",\r\n        title: \"Formazione<br>costante per<br>l\u2019ufficio tecnico\",\r\n        text: \"Millepiani Elevators eroga un programma di formazione costantemente aggiornato nei confronti dei propri consulenti, permettendo all\u2019ufficio tecnico di mantenere livelli di competenza e affidabilit\u00e0 costanti nel tempo.\",\r\n        tags: [\r\n          \"Consulenti\",\r\n          \"Ufficio tecnico\",\r\n          \"Affidabilit\u00e0\"\r\n        ]\r\n      },\r\n\r\n      cantiere: {\r\n        kicker: \"Obiettivi R&S\",\r\n        title: \"Strumenti per<br>facilitare il<br>lavoro in cantiere\",\r\n        text: \"Tra gli obiettivi del programma di Ricerca e Sviluppo c\u2019\u00e8 fornire ai clienti strumenti utili per facilitare il loro lavoro in cantiere, trasformando innovazione e conoscenza tecnica in supporto concreto.\",\r\n        tags: [\r\n          \"Cantiere\",\r\n          \"Clienti\",\r\n          \"Strumenti\"\r\n        ]\r\n      },\r\n\r\n      monitoraggio: {\r\n        kicker: \"Impianti installati\",\r\n        title: \"Monitoraggio<br>efficace degli<br>impianti\",\r\n        text: \"Il programma di Ricerca e Sviluppo mira anche a garantire un efficace monitoraggio degli impianti installati, rafforzando il controllo tecnico e la capacit\u00e0 di seguire nel tempo l\u2019evoluzione delle soluzioni realizzate.\",\r\n        tags: [\r\n          \"Monitoraggio\",\r\n          \"Impianti\",\r\n          \"Controllo\"\r\n        ]\r\n      },\r\n\r\n      processi: {\r\n        kicker: \"Efficienza interna\",\r\n        title: \"Processi pi\u00f9<br>efficaci e<br>conoscenza tecnica\",\r\n        text: \"La Ricerca e Sviluppo ha l\u2019obiettivo di migliorare in termini di efficacia ed efficienza i processi produttivi interni e di arricchire e sviluppare il patrimonio aziendale della conoscenza tecnica.\",\r\n        tags: [\r\n          \"Efficienza\",\r\n          \"Processi\",\r\n          \"Know-how\"\r\n        ]\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | ENGLISH\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    en: {\r\n\r\n      innovazione: {\r\n        kicker: \"A fundamental asset\",\r\n        title: \"Innovating to<br>develop new<br>solutions\",\r\n        text: \"Research and development has always been a fundamental asset for Millepiani Elevators. The ability to innovate and introduce new solutions is one of the key factors behind the company\u2019s success.\",\r\n        tags: [\r\n          \"Innovation\",\r\n          \"New solutions\",\r\n          \"Success\"\r\n        ]\r\n      },\r\n\r\n      investimenti: {\r\n        kicker: \"Resources and growth\",\r\n        title: \"R&D as a<br>strategic<br>investment\",\r\n        text: \"Millepiani Elevators has invested, and continues to invest, significant resources in research and development and in training. R&D expenditure is not regarded merely as a budget cost, but as a fundamental investment in establishing the company as a leader in its sector.\",\r\n        tags: [\r\n          \"Investment\",\r\n          \"Training\",\r\n          \"Leadership\"\r\n        ]\r\n      },\r\n\r\n      formazione: {\r\n        kicker: \"Up-to-date expertise\",\r\n        title: \"Continuous<br>training for the<br>technical department\",\r\n        text: \"Millepiani Elevators provides its consultants with a continuously updated training programme, enabling the technical department to maintain consistently high levels of expertise and reliability over time.\",\r\n        tags: [\r\n          \"Consultants\",\r\n          \"Technical department\",\r\n          \"Reliability\"\r\n        ]\r\n      },\r\n\r\n      cantiere: {\r\n        kicker: \"R&D objectives\",\r\n        title: \"Tools to<br>support work<br>on site\",\r\n        text: \"One of the objectives of the Research and Development programme is to provide customers with useful tools that simplify their work on site, transforming innovation and technical expertise into practical support.\",\r\n        tags: [\r\n          \"Worksite\",\r\n          \"Customers\",\r\n          \"Tools\"\r\n        ]\r\n      },\r\n\r\n      monitoraggio: {\r\n        kicker: \"Installed systems\",\r\n        title: \"Effective<br>system<br>monitoring\",\r\n        text: \"The Research and Development programme also aims to ensure effective monitoring of installed systems, strengthening technical control and the ability to follow the evolution of implemented solutions over time.\",\r\n        tags: [\r\n          \"Monitoring\",\r\n          \"Systems\",\r\n          \"Control\"\r\n        ]\r\n      },\r\n\r\n      processi: {\r\n        kicker: \"Internal efficiency\",\r\n        title: \"More efficient<br>processes and<br>technical knowledge\",\r\n        text: \"Research and Development aims to improve the effectiveness and efficiency of internal production processes while enriching and developing the company\u2019s technical knowledge base.\",\r\n        tags: [\r\n          \"Efficiency\",\r\n          \"Processes\",\r\n          \"Know-how\"\r\n        ]\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | FRAN\u00c7AIS\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    fr: {\r\n\r\n      innovazione: {\r\n        kicker: \"Un atout fondamental\",\r\n        title: \"Innover pour<br>proposer de nouvelles<br>solutions\",\r\n        text: \"La recherche et le d\u00e9veloppement constituent depuis toujours un atout fondamental pour Millepiani Elevators. La capacit\u00e9 \u00e0 innover et \u00e0 proposer de nouvelles solutions est l\u2019un des facteurs d\u00e9terminants de la r\u00e9ussite de l\u2019entreprise.\",\r\n        tags: [\r\n          \"Innovation\",\r\n          \"Nouvelles solutions\",\r\n          \"R\u00e9ussite\"\r\n        ]\r\n      },\r\n\r\n      investimenti: {\r\n        kicker: \"Ressources et croissance\",\r\n        title: \"La R&D comme<br>investissement<br>strat\u00e9gique\",\r\n        text: \"Millepiani Elevators a investi, et continue d\u2019investir, des ressources importantes dans la recherche et le d\u00e9veloppement ainsi que dans la formation. Les d\u00e9penses de R&D ne sont pas consid\u00e9r\u00e9es comme de simples co\u00fbts budg\u00e9taires, mais comme des investissements essentiels pour positionner l\u2019entreprise parmi les leaders de son secteur.\",\r\n        tags: [\r\n          \"Investissements\",\r\n          \"Formation\",\r\n          \"Leadership\"\r\n        ]\r\n      },\r\n\r\n      formazione: {\r\n        kicker: \"Comp\u00e9tences actualis\u00e9es\",\r\n        title: \"Une formation<br>continue pour le<br>bureau technique\",\r\n        text: \"Millepiani Elevators propose \u00e0 ses consultants un programme de formation constamment actualis\u00e9, permettant au bureau technique de maintenir dans le temps un niveau \u00e9lev\u00e9 de comp\u00e9tence et de fiabilit\u00e9.\",\r\n        tags: [\r\n          \"Consultants\",\r\n          \"Bureau technique\",\r\n          \"Fiabilit\u00e9\"\r\n        ]\r\n      },\r\n\r\n      cantiere: {\r\n        kicker: \"Objectifs R&D\",\r\n        title: \"Des outils pour<br>faciliter le travail<br>sur chantier\",\r\n        text: \"Parmi les objectifs du programme de Recherche et D\u00e9veloppement figure la mise \u00e0 disposition d\u2019outils utiles permettant aux clients de faciliter leur travail sur chantier, en transformant l\u2019innovation et les connaissances techniques en soutien concret.\",\r\n        tags: [\r\n          \"Chantier\",\r\n          \"Clients\",\r\n          \"Outils\"\r\n        ]\r\n      },\r\n\r\n      monitoraggio: {\r\n        kicker: \"Installations r\u00e9alis\u00e9es\",\r\n        title: \"Un suivi<br>efficace des<br>installations\",\r\n        text: \"Le programme de Recherche et D\u00e9veloppement vise \u00e9galement \u00e0 garantir un suivi efficace des installations r\u00e9alis\u00e9es, en renfor\u00e7ant le contr\u00f4le technique et la capacit\u00e9 \u00e0 suivre dans le temps l\u2019\u00e9volution des solutions mises en \u0153uvre.\",\r\n        tags: [\r\n          \"Suivi\",\r\n          \"Installations\",\r\n          \"Contr\u00f4le\"\r\n        ]\r\n      },\r\n\r\n      processi: {\r\n        kicker: \"Efficacit\u00e9 interne\",\r\n        title: \"Des processus plus<br>efficaces et des<br>connaissances techniques\",\r\n        text: \"La Recherche et D\u00e9veloppement vise \u00e0 am\u00e9liorer l\u2019efficacit\u00e9 et la performance des processus de production internes, tout en enrichissant et en d\u00e9veloppant le patrimoine de connaissances techniques de l\u2019entreprise.\",\r\n        tags: [\r\n          \"Efficacit\u00e9\",\r\n          \"Processus\",\r\n          \"Savoir-faire\"\r\n        ]\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | \u0420\u0423\u0421\u0421\u041a\u0418\u0419\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    ru: {\r\n\r\n      innovazione: {\r\n        kicker: \"\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441\",\r\n        title: \"\u0418\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u0438 \u0434\u043b\u044f<br>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445<br>\u0440\u0435\u0448\u0435\u043d\u0438\u0439\",\r\n        text: \"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 Millepiani Elevators. \u0421\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0443\u0441\u043f\u0435\u0445\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.\",\r\n        tags: [\r\n          \"\u0418\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u0438\",\r\n          \"\u041d\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\",\r\n          \"\u0423\u0441\u043f\u0435\u0445\"\r\n        ]\r\n      },\r\n\r\n      investimenti: {\r\n        kicker: \"\u0420\u0435\u0441\u0443\u0440\u0441\u044b \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\",\r\n        title: \"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<br>\u043a\u0430\u043a \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435<br>\u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438\",\r\n        text: \"Millepiani Elevators \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435. \u0420\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 R&D \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b, \u0430 \u043a\u0430\u043a \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0435 \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0443\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u0434\u0435\u0440\u0441\u043a\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u043e\u0442\u0440\u0430\u0441\u043b\u0438.\",\r\n        tags: [\r\n          \"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438\",\r\n          \"\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\",\r\n          \"\u041b\u0438\u0434\u0435\u0440\u0441\u0442\u0432\u043e\"\r\n        ]\r\n      },\r\n\r\n      formazione: {\r\n        kicker: \"\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0438\",\r\n        title: \"\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435<br>\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445<br>\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432\",\r\n        text: \"Millepiani Elevators \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u0430\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043e\u0442\u0434\u0435\u043b\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\",\r\n        tags: [\r\n          \"\u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u044b\",\r\n          \"\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0442\u0434\u0435\u043b\",\r\n          \"\u041d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\"\r\n        ]\r\n      },\r\n\r\n      cantiere: {\r\n        kicker: \"\u0426\u0435\u043b\u0438 R&D\",\r\n        title: \"\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f<br>\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b<br>\u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435\",\r\n        text: \"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0446\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0445 \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u0438 \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443.\",\r\n        tags: [\r\n          \"\u041e\u0431\u044a\u0435\u043a\u0442\",\r\n          \"\u041a\u043b\u0438\u0435\u043d\u0442\u044b\",\r\n          \"\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\"\r\n        ]\r\n      },\r\n\r\n      monitoraggio: {\r\n        kicker: \"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\",\r\n        title: \"\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439<br>\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<br>\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f\",\r\n        text: \"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\",\r\n        tags: [\r\n          \"\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\",\r\n          \"\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\",\r\n          \"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\"\r\n        ]\r\n      },\r\n\r\n      processi: {\r\n        kicker: \"\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\",\r\n        title: \"\u0411\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435<br>\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435<br>\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439\",\r\n        text: \"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0431\u0430\u0437\u044b \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439.\",\r\n        tags: [\r\n          \"\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\",\r\n          \"\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u044b\",\r\n          \"\u041d\u043e\u0443-\u0445\u0430\u0443\"\r\n        ]\r\n      }\r\n    }\r\n  };\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Active language\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const rdTopics =\r\n    rdTranslations[pageLang] ||\r\n    rdTranslations.it;\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | R&D interactive cards\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const rdCards = document.querySelectorAll(\"[data-rd-topic]\");\r\n  const panelKicker = document.querySelector(\"#mpRdPanelKicker\");\r\n  const panelTitle = document.querySelector(\"#mpRdPanelTitle\");\r\n  const panelText = document.querySelector(\"#mpRdPanelText\");\r\n  const panelTags = document.querySelector(\"#mpRdPanelTags\");\r\n  const panel = document.querySelector(\".mp-rd-lab-panel\");\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Panel animation\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function animatePanel() {\r\n    if (!panel) return;\r\n\r\n    panel.animate([\r\n      {\r\n        opacity: 0.45,\r\n        transform: \"translateY(18px) scale(0.985)\"\r\n      },\r\n      {\r\n        opacity: 1,\r\n        transform: \"translateY(0) scale(1)\"\r\n      }\r\n    ], {\r\n      duration: 520,\r\n      easing: \"cubic-bezier(0.22, 1, 0.36, 1)\"\r\n    });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Set R&D topic\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function setRdTopic(topicKey) {\r\n    const topic = rdTopics[topicKey];\r\n\r\n    if (!topic) return;\r\n\r\n    if (panelKicker) {\r\n      panelKicker.textContent = topic.kicker;\r\n    }\r\n\r\n    if (panelTitle) {\r\n      panelTitle.innerHTML = topic.title;\r\n    }\r\n\r\n    if (panelText) {\r\n      panelText.textContent = topic.text;\r\n    }\r\n\r\n    if (panelTags) {\r\n      panelTags.innerHTML = \"\";\r\n\r\n      topic.tags.forEach(function (tag) {\r\n        const span = document.createElement(\"span\");\r\n\r\n        span.textContent = tag;\r\n\r\n        panelTags.appendChild(span);\r\n      });\r\n    }\r\n\r\n    rdCards.forEach(function (card) {\r\n      card.classList.toggle(\r\n        \"is-active\",\r\n        card.getAttribute(\"data-rd-topic\") === topicKey\r\n      );\r\n    });\r\n\r\n    animatePanel();\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | R&D events\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  rdCards.forEach(function (card) {\r\n    card.addEventListener(\"click\", function () {\r\n      setRdTopic(\r\n        card.getAttribute(\"data-rd-topic\")\r\n      );\r\n    });\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Initial R&D topic\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  setRdTopic(\"innovazione\");\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Background canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const canvas = document.querySelector(\"#mpRdCanvas\");\r\n  const section = document.querySelector(\".mp-rd-system\");\r\n  const ctx = canvas ? canvas.getContext(\"2d\") : null;\r\n\r\n  let width = 0;\r\n  let height = 0;\r\n\r\n  let dpr = Math.min(\r\n    window.devicePixelRatio || 1,\r\n    2\r\n  );\r\n\r\n  let particles = [];\r\n  let lines = [];\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Resize canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function resizeCanvas() {\r\n    if (!canvas || !ctx || !section) return;\r\n\r\n    const rect = section.getBoundingClientRect();\r\n\r\n    width = Math.max(\r\n      1,\r\n      rect.width\r\n    );\r\n\r\n    height = Math.max(\r\n      1,\r\n      rect.height\r\n    );\r\n\r\n    dpr = Math.min(\r\n      window.devicePixelRatio || 1,\r\n      2\r\n    );\r\n\r\n    canvas.width = Math.floor(\r\n      width * dpr\r\n    );\r\n\r\n    canvas.height = Math.floor(\r\n      height * dpr\r\n    );\r\n\r\n    canvas.style.width =\r\n      width + \"px\";\r\n\r\n    canvas.style.height =\r\n      height + \"px\";\r\n\r\n    ctx.setTransform(\r\n      dpr,\r\n      0,\r\n      0,\r\n      dpr,\r\n      0,\r\n      0\r\n    );\r\n\r\n    particles = [];\r\n    lines = [];\r\n\r\n    const amount = Math.min(\r\n      150,\r\n      Math.max(\r\n        70,\r\n        Math.floor(width \/ 12)\r\n      )\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Particles\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (let i = 0; i < amount; i += 1) {\r\n      particles.push({\r\n        x: Math.random() * width,\r\n        y: Math.random() * height,\r\n        vx: -0.18 + Math.random() * 0.36,\r\n        vy: -0.14 + Math.random() * 0.28,\r\n        r: 0.6 + Math.random() * 2.1,\r\n        alpha: 0.08 + Math.random() * 0.24,\r\n        phase: Math.random() * Math.PI * 2\r\n      });\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Lines\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (let i = 0; i < 8; i += 1) {\r\n      lines.push({\r\n        t: Math.random(),\r\n        speed: 0.0015 + Math.random() * 0.0025,\r\n        from: i % 5,\r\n        to: (i + 2) % 5\r\n      });\r\n    }\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Network points\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function getNetworkPoints() {\r\n    return [\r\n      {\r\n        x: width * 0.20,\r\n        y: height * 0.42\r\n      },\r\n      {\r\n        x: width * 0.38,\r\n        y: height * 0.26\r\n      },\r\n      {\r\n        x: width * 0.62,\r\n        y: height * 0.32\r\n      },\r\n      {\r\n        x: width * 0.78,\r\n        y: height * 0.58\r\n      },\r\n      {\r\n        x: width * 0.48,\r\n        y: height * 0.74\r\n      }\r\n    ];\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Network line\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function drawNetworkLine(a, b, alpha) {\r\n    const gradient = ctx.createLinearGradient(\r\n      a.x,\r\n      a.y,\r\n      b.x,\r\n      b.y\r\n    );\r\n\r\n    gradient.addColorStop(\r\n      0,\r\n      \"rgba(255,255,255,0)\"\r\n    );\r\n\r\n    gradient.addColorStop(\r\n      0.5,\r\n      \"rgba(255,255,255,\" + alpha + \")\"\r\n    );\r\n\r\n    gradient.addColorStop(\r\n      1,\r\n      \"rgba(255,255,255,0)\"\r\n    );\r\n\r\n    ctx.beginPath();\r\n\r\n    ctx.moveTo(\r\n      a.x,\r\n      a.y\r\n    );\r\n\r\n    ctx.lineTo(\r\n      b.x,\r\n      b.y\r\n    );\r\n\r\n    ctx.strokeStyle = gradient;\r\n    ctx.lineWidth = 1;\r\n\r\n    ctx.stroke();\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Draw canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function drawCanvas(time) {\r\n    if (!ctx || !canvas) return;\r\n\r\n    ctx.clearRect(\r\n      0,\r\n      0,\r\n      width,\r\n      height\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Background glow\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const centerX =\r\n      width * 0.5;\r\n\r\n    const centerY =\r\n      height * 0.52;\r\n\r\n    const glow = ctx.createRadialGradient(\r\n      centerX,\r\n      centerY,\r\n      0,\r\n      centerX,\r\n      centerY,\r\n      Math.min(\r\n        width,\r\n        height\r\n      ) * 0.58\r\n    );\r\n\r\n    glow.addColorStop(\r\n      0,\r\n      \"rgba(255,255,255,0.11)\"\r\n    );\r\n\r\n    glow.addColorStop(\r\n      0.38,\r\n      \"rgba(255,255,255,0.04)\"\r\n    );\r\n\r\n    glow.addColorStop(\r\n      1,\r\n      \"rgba(255,255,255,0)\"\r\n    );\r\n\r\n    ctx.fillStyle = glow;\r\n\r\n    ctx.fillRect(\r\n      0,\r\n      0,\r\n      width,\r\n      height\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Particles\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    particles.forEach(function (p) {\r\n      p.x += p.vx;\r\n      p.y += p.vy;\r\n\r\n      p.x +=\r\n        Math.sin(\r\n          time * 0.0006 +\r\n          p.phase\r\n        ) * 0.08;\r\n\r\n      p.y +=\r\n        Math.cos(\r\n          time * 0.0005 +\r\n          p.phase\r\n        ) * 0.08;\r\n\r\n      if (p.x < -20) {\r\n        p.x = width + 20;\r\n      }\r\n\r\n      if (p.x > width + 20) {\r\n        p.x = -20;\r\n      }\r\n\r\n      if (p.y < -20) {\r\n        p.y = height + 20;\r\n      }\r\n\r\n      if (p.y > height + 20) {\r\n        p.y = -20;\r\n      }\r\n\r\n      ctx.beginPath();\r\n\r\n      ctx.arc(\r\n        p.x,\r\n        p.y,\r\n        p.r,\r\n        0,\r\n        Math.PI * 2\r\n      );\r\n\r\n      ctx.fillStyle =\r\n        \"rgba(255,255,255,\" +\r\n        p.alpha +\r\n        \")\";\r\n\r\n      ctx.fill();\r\n    });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Network\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const points =\r\n      getNetworkPoints();\r\n\r\n    for (\r\n      let i = 0;\r\n      i < points.length;\r\n      i += 1\r\n    ) {\r\n      drawNetworkLine(\r\n        points[i],\r\n        points[\r\n          (i + 1) %\r\n          points.length\r\n        ],\r\n        0.11\r\n      );\r\n\r\n      drawNetworkLine(\r\n        points[i],\r\n        points[\r\n          (i + 2) %\r\n          points.length\r\n        ],\r\n        0.055\r\n      );\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Animated packets\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    lines.forEach(function (line) {\r\n      const from =\r\n        points[line.from];\r\n\r\n      const to =\r\n        points[line.to];\r\n\r\n      line.t += line.speed;\r\n\r\n      if (line.t > 1) {\r\n        line.t = 0;\r\n\r\n        line.from = Math.floor(\r\n          Math.random() *\r\n          points.length\r\n        );\r\n\r\n        line.to = Math.floor(\r\n          Math.random() *\r\n          points.length\r\n        );\r\n      }\r\n\r\n      const x =\r\n        from.x +\r\n        (\r\n          to.x -\r\n          from.x\r\n        ) *\r\n        line.t;\r\n\r\n      const y =\r\n        from.y +\r\n        (\r\n          to.y -\r\n          from.y\r\n        ) *\r\n        line.t;\r\n\r\n      ctx.beginPath();\r\n\r\n      ctx.arc(\r\n        x,\r\n        y,\r\n        3.1,\r\n        0,\r\n        Math.PI * 2\r\n      );\r\n\r\n      ctx.fillStyle =\r\n        \"rgba(255,255,255,0.82)\";\r\n\r\n      ctx.shadowColor =\r\n        \"rgba(255,255,255,0.82)\";\r\n\r\n      ctx.shadowBlur = 16;\r\n\r\n      ctx.fill();\r\n\r\n      ctx.shadowBlur = 0;\r\n    });\r\n\r\n    requestAnimationFrame(\r\n      drawCanvas\r\n    );\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Start canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  if (ctx) {\r\n    resizeCanvas();\r\n\r\n    window.addEventListener(\r\n      \"resize\",\r\n      resizeCanvas\r\n    );\r\n\r\n    requestAnimationFrame(\r\n      drawCanvas\r\n    );\r\n  }\r\n\r\n});<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Millepiani Group Researchand Development Research and development activity constitutes a fundamental asset for Millepiani Elevators: innovating, proposing new solutions, building skills, and constantly improving processes means charting new frontiers in the Italian and international markets. Innovation framework Designing the future An interactive section dedicated to the pillars of Millepiani Research and Development: innovation, investment, technical [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2598","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/millepiani.com\/en\/research-and-development\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"millepiani.com -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Research and development for elevators | Millepiani\" \/>\n\t\t<meta property=\"og:description\" content=\"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/millepiani.com\/en\/research-and-development\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-25T00:33:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-15T18:27:55+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Research and development for elevators | Millepiani\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/research-and-development\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/millepiani.com\\\/en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/research-and-development\\\/#listItem\",\"name\":\"RESEARCH AND DEVELOPMENT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/research-and-development\\\/#listItem\",\"position\":2,\"name\":\"RESEARCH AND DEVELOPMENT\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/#organization\",\"name\":\"millepiani.com\",\"url\":\"https:\\\/\\\/millepiani.com\\\/en\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/research-and-development\\\/#webpage\",\"url\":\"https:\\\/\\\/millepiani.com\\\/en\\\/research-and-development\\\/\",\"name\":\"Research and development for elevators | Millepiani\",\"description\":\"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/research-and-development\\\/#breadcrumblist\"},\"datePublished\":\"2026-05-25T00:33:12+00:00\",\"dateModified\":\"2026-09-15T18:27:55+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/millepiani.com\\\/en\\\/\",\"name\":\"millepiani.com\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Research and development for elevators | Millepiani","description":"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.","canonical_url":"https:\/\/millepiani.com\/en\/research-and-development\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/millepiani.com\/en\/research-and-development\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/millepiani.com\/en\/#listItem","position":1,"name":"Home","item":"https:\/\/millepiani.com\/en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/millepiani.com\/en\/research-and-development\/#listItem","name":"RESEARCH AND DEVELOPMENT"}},{"@type":"ListItem","@id":"https:\/\/millepiani.com\/en\/research-and-development\/#listItem","position":2,"name":"RESEARCH AND DEVELOPMENT","previousItem":{"@type":"ListItem","@id":"https:\/\/millepiani.com\/en\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/millepiani.com\/en\/#organization","name":"millepiani.com","url":"https:\/\/millepiani.com\/en\/"},{"@type":"WebPage","@id":"https:\/\/millepiani.com\/en\/research-and-development\/#webpage","url":"https:\/\/millepiani.com\/en\/research-and-development\/","name":"Research and development for elevators | Millepiani","description":"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/millepiani.com\/en\/#website"},"breadcrumb":{"@id":"https:\/\/millepiani.com\/en\/research-and-development\/#breadcrumblist"},"datePublished":"2026-05-25T00:33:12+00:00","dateModified":"2026-09-15T18:27:55+00:00"},{"@type":"WebSite","@id":"https:\/\/millepiani.com\/en\/#website","url":"https:\/\/millepiani.com\/en\/","name":"millepiani.com","inLanguage":"en-US","publisher":{"@id":"https:\/\/millepiani.com\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"millepiani.com -","og:type":"article","og:title":"Research and development for elevators | Millepiani","og:description":"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.","og:url":"https:\/\/millepiani.com\/en\/research-and-development\/","article:published_time":"2026-05-25T00:33:12+00:00","article:modified_time":"2026-09-15T18:27:55+00:00","twitter:card":"summary_large_image","twitter:title":"Research and development for elevators | Millepiani","twitter:description":"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility."},"aioseo_meta_data":{"post_id":"2598","title":"Research and development for elevators | Millepiani","description":"Discover Millepiani research and development: innovation, technical training, system monitoring, and new solutions for vertical mobility.","keywords":null,"keyphrases":{"focus":{"keyphrase":"ricerca e sviluppo ascensori","score":0,"analysis":[]},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-15 18:27:54","updated":"2026-09-15 18:50:22","focus_keyword":"ricerca e sviluppo ascensori","additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/millepiani.com\/en\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tRESEARCH AND DEVELOPMENT\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/millepiani.com\/en\/"},{"label":"RESEARCH AND DEVELOPMENT","link":"https:\/\/millepiani.com\/en\/research-and-development\/"}],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/pages\/2598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/comments?post=2598"}],"version-history":[{"count":1,"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/pages\/2598\/revisions"}],"predecessor-version":[{"id":2599,"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/pages\/2598\/revisions\/2599"}],"wp:attachment":[{"href":"https:\/\/millepiani.com\/en\/wp-json\/wp\/v2\/media?parent=2598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}