1d80f13ce5
- Weekly automated scraping of 10 competitors - Structured data storage (competitors.json) - Validation and alerting scripts - First weekly report (2026-07-11) with 4 critical findings: 1. Premise Data acquired by Culmen (Aug 2025) 2. Streetbees bankruptcy (Aug 2025) 3. Moody's/Cape Analytics integration progressing 4. Sweden Platform Work Act proposed (Dec 2026) - Cron scheduled for Saturdays 07:00 UTC
1404 lines
128 KiB
HTML
1404 lines
128 KiB
HTML
<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Fri Jul 10 2026 11:09:26 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.cyclomedia.com" data-wf-page="69bd3518dd960ca00ae76dc4" data-wf-site="69bd3518dd960ca00ae76dcc" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Cyclomedia | Trusted Data. Powerful Insights.</title><link rel="alternate" hrefLang="x-default" href="https://cyclomedia.com/"/><link rel="alternate" hrefLang="en" href="https://cyclomedia.com/"/><link rel="alternate" hrefLang="en-US" href="https://cyclomedia.com/en-us"/><link rel="alternate" hrefLang="nl-NL" href="https://cyclomedia.com/nl-nl"/><link rel="alternate" hrefLang="de-DE" href="https://cyclomedia.com/de-de"/><link rel="alternate" hrefLang="fr-FR" href="https://cyclomedia.com/fr-fr"/><link rel="alternate" hrefLang="pl-PL" href="https://cyclomedia.com/pl-pl"/><meta content="Cyclomedia delivers accurate geospatial data and visual intelligence that help public authorities and infrastructure organisations across Europe understand, manage, and improve public space with confidence." name="description"/><meta content="Cyclomedia | Trusted Data. Powerful Insights." property="og:title"/><meta content="Cyclomedia delivers accurate geospatial data and visual intelligence that help public authorities and infrastructure organisations across Europe understand, manage, and improve public space with confidence." property="og:description"/><meta content="Cyclomedia | Trusted Data. Powerful Insights." name="twitter:title"/><meta content="Cyclomedia delivers accurate geospatial data and visual intelligence that help public authorities and infrastructure organisations across Europe understand, manage, and improve public space with confidence." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="qJMHPaO5X8zAzlREvcK-RGDInt17taZec9S0Ps5Opk8" name="google-site-verification"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/css/cyclomediaxwidehue.webflow.shared.003c85af3.css" rel="stylesheet" type="text/css" integrity="sha384-ADyFrzRS1G/i6U2urOtdZtKvfI/O1PRryalUDGoB/9a/MKASKmJF6oRBvUNSHiF7" crossorigin="anonymous"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1e26dd6e2e34590f58dcd_favicon2.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1e27da9864dd7932b50a3_webclip.png" rel="apple-touch-icon"/><link href="https://cyclomedia.com/" rel="canonical"/><script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "Organization",
|
||
"@id": "https://cyclomedia.com/#organization",
|
||
"name": "Cyclomedia",
|
||
"url": "https://cyclomedia.com/",
|
||
"logo": "https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1e2133ab75490c11f0f4e_logo%20dark2.svg",
|
||
"description": "Cyclomedia is a global leader in geospatial technology, transforming how organisations capture, visualise, and analyse the built environment. With decades of experience in street-level imagery and LiDAR data capture, Cyclomedia supports public authorities, infrastructure owners, and enterprises with a clear and consistent digital view of the outdoor environment.",
|
||
"inLanguage": "en",
|
||
"address": {
|
||
"@type": "PostalAddress",
|
||
"streetAddress": "Van Voordenpark 1b",
|
||
"addressLocality": "Zaltbommel",
|
||
"postalCode": "5301 KP",
|
||
"addressCountry": "NL"
|
||
},
|
||
"telephone": "+31-418-556100",
|
||
"email": "info@cyclomedia.com",
|
||
"sameAs": [
|
||
"https://cyclomedia.com/en-us/",
|
||
"https://cyclomedia.com/nl-nl/",
|
||
"https://cyclomedia.com/de-de/",
|
||
"https://cyclomedia.com/fr-fr/",
|
||
"https://cyclomedia.com/pl-pl/",
|
||
"https://www.linkedin.com/company/cyclomedia",
|
||
"https://www.youtube.com/@cyclomedia"
|
||
]
|
||
}
|
||
</script>
|
||
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="f23b141a-ffde-4cc4-a9cd-eada8a23ea6d" data-blockingmode="auto" type="text/javascript"></script>
|
||
<style>
|
||
@media screen and (min-width: 992px) {
|
||
.home-benefit_list.swiper-wrapper {
|
||
flex-flow: row!important;
|
||
max-height:43.75rem!important;
|
||
}
|
||
.sticky-child {
|
||
height: 100vh!important;
|
||
}
|
||
.sticky-child .swiper {
|
||
height: 100%!important;
|
||
max-height: calc(100vh - 10rem)!important;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
<!-- 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-K2VSP89');</script>
|
||
<!-- End Google Tag Manager -->
|
||
|
||
<!-- Product and web design by Widelab.co | UX/UI for SaaS and Fintech startups --><style>
|
||
.loader-overlay {
|
||
display: flex;
|
||
}
|
||
</style><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc%2F689e5ba67671442434f3ca35%2F69cccf75cf1baaf550fd2c1a%2Ffinsweet_attributes_loader-1.0.0.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc%2F689e5ba67671442434f3ca35%2F69cce59cd300307883a32226%2Fpolicy_tabs_styling-1.0.0.js" type="text/javascript"></script></head><body><div class="custom-code_css w-embed"><style>
|
||
.section.is-home-ind {
|
||
overflow: clip;
|
||
}
|
||
</style></div><div class="hide"><div class="is-z-index-1"></div><div class="is-grid-3-column"></div></div><div class="custom-code-wrapper"><div class="global-code w-embed w-script"><script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/SplitText.min.js"></script></div><div class="global-code w-embed"><style>
|
||
:root {
|
||
--font-from: 16;
|
||
--font-to: 18;
|
||
--vw-from: calc(1920 / 100);
|
||
--vw-to: calc(2400 / 100);
|
||
--coefficient: calc((var(--font-to) - var(--font-from)) / (var(--vw-to) - var(--vw-from)));
|
||
--base: calc((var(--font-from) - var(--vw-from) * var(--coefficient)) / 16);
|
||
}
|
||
|
||
html {
|
||
font-size: calc(var(--base) * 1rem + var(--coefficient) * 1vw);
|
||
}
|
||
|
||
@media screen and (max-width: 1920px) {
|
||
:root {
|
||
--font-from: 14;
|
||
--font-to: 16;
|
||
--vw-from: calc(1440 / 100);
|
||
--vw-to: calc(1920 / 100);
|
||
}
|
||
}
|
||
|
||
@media screen and (max-width: 1440px) {
|
||
:root {
|
||
--font-from: 12;
|
||
--font-to: 14;
|
||
--vw-from: calc(992 / 100);
|
||
--vw-to: calc(1440 / 100);
|
||
}
|
||
}
|
||
|
||
@media screen and (max-width: 992px) {
|
||
:root {
|
||
--font-from: 14;
|
||
--font-to: 16;
|
||
--vw-from: calc(479 / 100);
|
||
--vw-to: calc(992 / 100);
|
||
}
|
||
}
|
||
|
||
@media screen and (max-width: 479px) {
|
||
:root {
|
||
--font-from: 15;
|
||
--font-to: 16;
|
||
--vw-from: calc(1 / 100);
|
||
--vw-to: calc(479 / 100);
|
||
}
|
||
}
|
||
</style></div><div class="global-code w-embed"><style>
|
||
|
||
/* Make text look crisper and more legible in all browsers */
|
||
body {
|
||
-webkit-font-smoothing: antialiased;
|
||
-moz-osx-font-smoothing: grayscale;
|
||
font-smoothing: antialiased;
|
||
text-rendering: optimizeLegibility;
|
||
}
|
||
|
||
/* Focus state style for keyboard navigation for the focusable elements */
|
||
*[tabindex]:focus-visible,
|
||
input[type="file"]:focus-visible {
|
||
outline: 0.125rem solid #4d65ff;
|
||
outline-offset: 0.125rem;
|
||
}
|
||
|
||
/* Set color style to inherit */
|
||
.inherit-color * {
|
||
color: inherit;
|
||
}
|
||
|
||
/* Get rid of top margin on first element in any rich text element */
|
||
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
|
||
margin-top: 0 !important;
|
||
}
|
||
|
||
/* Get rid of bottom margin on last element in any rich text element */
|
||
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
|
||
margin-bottom: 0 !important;
|
||
}
|
||
|
||
|
||
/* Make sure containers never lose their center alignment */
|
||
.container-medium,.container-small, .container-large {
|
||
margin-right: auto !important;
|
||
margin-left: auto !important;
|
||
}
|
||
|
||
/*
|
||
Make the following elements inherit typography styles from the parent and not have hardcoded values.
|
||
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
|
||
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
|
||
*/
|
||
/*
|
||
a,
|
||
.w-input,
|
||
.w-select,
|
||
.w-tab-link,
|
||
.w-nav-link,
|
||
.w-dropdown-btn,
|
||
.w-dropdown-toggle,
|
||
.w-dropdown-link {
|
||
color: inherit;
|
||
text-decoration: inherit;
|
||
font-size: inherit;
|
||
}
|
||
*/
|
||
|
||
/* Apply "..." after 3 lines of text */
|
||
.text-style-3lines {
|
||
display: -webkit-box;
|
||
overflow: hidden;
|
||
-webkit-line-clamp: 3;
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
|
||
/* Apply "..." after 2 lines of text */
|
||
.text-style-2lines {
|
||
display: -webkit-box;
|
||
overflow: hidden;
|
||
-webkit-line-clamp: 2;
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
|
||
/* These classes are never overwritten */
|
||
.hide {
|
||
display: none !important;
|
||
}
|
||
|
||
@media screen and (max-width: 991px) {
|
||
.hide, .hide-tablet {
|
||
display: none !important;
|
||
}
|
||
}
|
||
@media screen and (max-width: 767px) {
|
||
.hide-mobile-landscape{
|
||
display: none !important;
|
||
}
|
||
}
|
||
@media screen and (max-width: 479px) {
|
||
.hide-mobile{
|
||
display: none !important;
|
||
}
|
||
}
|
||
|
||
.margin-0 {
|
||
margin: 0rem !important;
|
||
}
|
||
|
||
.padding-0 {
|
||
padding: 0rem !important;
|
||
}
|
||
|
||
.spacing-clean {
|
||
padding: 0rem !important;
|
||
margin: 0rem !important;
|
||
}
|
||
|
||
.margin-top {
|
||
margin-right: 0rem !important;
|
||
margin-bottom: 0rem !important;
|
||
margin-left: 0rem !important;
|
||
}
|
||
|
||
.padding-top {
|
||
padding-right: 0rem !important;
|
||
padding-bottom: 0rem !important;
|
||
padding-left: 0rem !important;
|
||
}
|
||
|
||
.margin-right {
|
||
margin-top: 0rem !important;
|
||
margin-bottom: 0rem !important;
|
||
margin-left: 0rem !important;
|
||
}
|
||
|
||
.padding-right {
|
||
padding-top: 0rem !important;
|
||
padding-bottom: 0rem !important;
|
||
padding-left: 0rem !important;
|
||
}
|
||
|
||
.margin-bottom {
|
||
margin-top: 0rem !important;
|
||
margin-right: 0rem !important;
|
||
margin-left: 0rem !important;
|
||
}
|
||
|
||
.padding-bottom {
|
||
padding-top: 0rem !important;
|
||
padding-right: 0rem !important;
|
||
padding-left: 0rem !important;
|
||
}
|
||
|
||
.margin-left {
|
||
margin-top: 0rem !important;
|
||
margin-right: 0rem !important;
|
||
margin-bottom: 0rem !important;
|
||
}
|
||
|
||
.padding-left {
|
||
padding-top: 0rem !important;
|
||
padding-right: 0rem !important;
|
||
padding-bottom: 0rem !important;
|
||
}
|
||
|
||
.margin-horizontal {
|
||
margin-top: 0rem !important;
|
||
margin-bottom: 0rem !important;
|
||
}
|
||
|
||
.padding-horizontal {
|
||
padding-top: 0rem !important;
|
||
padding-bottom: 0rem !important;
|
||
}
|
||
|
||
.margin-vertical {
|
||
margin-right: 0rem !important;
|
||
margin-left: 0rem !important;
|
||
}
|
||
|
||
.padding-vertical {
|
||
padding-right: 0rem !important;
|
||
padding-left: 0rem !important;
|
||
}
|
||
|
||
</style></div><div class="custom-code_css w-embed"><style>
|
||
/* BENEFIT CARD */
|
||
@media screen and (max-width: 991px) {
|
||
.benefit_grid .benefit_item,
|
||
.demo-benefits_grid .benefit_item {
|
||
width: 100%;
|
||
}
|
||
}
|
||
@media screen and (min-width: 992px) {
|
||
.benefit_grid .benefit_item {
|
||
min-height: 32.5rem;
|
||
}
|
||
}
|
||
|
||
/* BACKGROUDN COLOR TRANSITION */
|
||
.is-dark-mode .logo-carousel_logo {
|
||
filter: saturate(0%);
|
||
}
|
||
.bsg-color-wrapper .home-benefit_icon {
|
||
filter: hue-rotate(120deg) invert(100%) contrast(200%);
|
||
|
||
}
|
||
.bg-color-wrapper .home-benefit_icon {
|
||
filter: invert(1) hue-rotate(180deg) brightness(1.4);
|
||
}
|
||
.is-dark-mode .home-benefit_icon {
|
||
filter: hue-rotate(0deg) invert(0%) contrast(100%);
|
||
}
|
||
|
||
.bg-color-wrapper,
|
||
.bg-color-wrapper * {
|
||
transition:
|
||
color 0.6s ease,
|
||
padding 0.6s ease,
|
||
background-color 1s ease,
|
||
border-color 0.6s ease;
|
||
}
|
||
.bg-color-wrapper .image-fade-in_scale-parent {
|
||
transition: transform 0.3s ease !important;
|
||
}
|
||
.bg-color-wrapper .primary-button {
|
||
transition: padding 0.3s ease !important;
|
||
}
|
||
@media screen and (max-width: 991px) {
|
||
.is-mobile-swiper-component .swiper-wrapper {
|
||
transition: transform 0.6s ease !important;
|
||
}
|
||
}
|
||
|
||
/* SLIDER MOBILE */
|
||
@media screen and (max-width: 991px) {
|
||
.is-mobile-swiper-component .swiper-wrapper .home-products_item,
|
||
.is-mobile-swiper-component .swiper-wrapper .benefit_item {
|
||
width: 90% !important;
|
||
}
|
||
}
|
||
|
||
.is-image-hover-scale-parent:hover .image-fade-in_scale-parent {
|
||
transform: scale(1.05);
|
||
}
|
||
|
||
.arrow_component[bg-color="white"] {
|
||
background-color: white;
|
||
}
|
||
|
||
.is-arrow-hover-parent:hover .arrow_component {
|
||
background-color: #00b385;
|
||
color: white;
|
||
}
|
||
|
||
.primary-button:hover .button_icon:nth-child(1) {
|
||
opacity: 1;
|
||
transform: translate(0rem, 0px);
|
||
}
|
||
|
||
.support-faq_item-toggle {
|
||
cursor: pointer;
|
||
}
|
||
|
||
/* ANSWER */
|
||
.support-faq_item-answer {
|
||
display: grid;
|
||
grid-template-rows: 0fr;
|
||
transition: grid-template-rows 0.35s ease;
|
||
}
|
||
|
||
.support-faq_item-answer-inner {
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* OPEN STATE */
|
||
.support-faq_item.is-open .support-faq_item-answer {
|
||
grid-template-rows: 1fr;
|
||
}
|
||
|
||
/* ICON */
|
||
|
||
.support-faq_icon-line {
|
||
transition:
|
||
transform 0.35s ease,
|
||
opacity 0.35s ease;
|
||
}
|
||
|
||
/* OPEN ICON STATE */
|
||
.support-faq_item.is-open .support-faq_icon-line.is-vertical {
|
||
transform: rotate(90deg);
|
||
}
|
||
|
||
/* Hero RTE */
|
||
.company-hero_rte.is-dark-green h1 {
|
||
color: #2d2d2e;
|
||
}
|
||
.company-hero_rte.is-dark-green h1 strong {
|
||
color: #00b385;
|
||
}
|
||
|
||
.company-hero_rte.is-dark-grey h1 {
|
||
color: #2d2d2e;
|
||
}
|
||
.company-hero_rte.is-dark-grey h1 strong {
|
||
color: #b3b5b6;
|
||
}
|
||
/* Video / Image Component */
|
||
.video-image_play-button {
|
||
display: none;
|
||
}
|
||
.video-image_lightbox.has-video .video-image_play-button {
|
||
display: block; /* or flex */
|
||
}
|
||
.video-image_lightbox {
|
||
cursor: default;
|
||
}
|
||
|
||
.video-image_lightbox.has-video {
|
||
cursor: pointer;
|
||
}
|
||
.video-image_lightbox:hover .video-image_play-button {
|
||
box-shadow: rgba(0, 0, 0, 0) 0px 0px 10px 10px;
|
||
transform: scale(0.9);
|
||
}
|
||
</style></div><div class="is-text-medium"></div><div class="is-tablet-both-full"></div><div class="is-landscape-hide"></div></div><div class="page-wrapper"><div class="main-wrapper"><nav class="nav"><div class="w-layout-blockcontainer container-nav is-nav w-container"><div class="custom-css_navbar w-embed"><style>
|
||
.nav.is-scroll .navbar_menu-divider,
|
||
.nav.is-dark .navbar_menu-divider {
|
||
background-image: linear-gradient(
|
||
90deg,
|
||
rgba(45, 45, 46, 0),
|
||
#2d2d2e 10%,
|
||
#2d2d2e 90%,
|
||
rgba(45, 45, 46, 0)
|
||
);
|
||
}
|
||
.dropdown_link-block {
|
||
background-position: 1.25rem 50%;
|
||
}
|
||
@media screen and (max-width: 991px) {
|
||
.dropdown_content-nav-left .section_title-wrapper {
|
||
display: none;
|
||
}
|
||
.dropdown_button .primary-button .is-text-16-aeonik {
|
||
font-size:0.75rem;
|
||
font-family: var(--_typography-xd---text-16-aeonik--font-family);
|
||
}
|
||
.navbar_menu-link-item.is-open .dropdown_arrow-nav {
|
||
color: white;
|
||
background-color: #00B385;
|
||
}
|
||
}
|
||
.is-scroll .navbar_logo.is-dark,
|
||
.is-dark .navbar_logo.is-dark {
|
||
opacity: 1;
|
||
}
|
||
.is-scroll .navbar_logo.is-light,
|
||
.is-dark .navbar_logo.is-light {
|
||
opacity: 0;
|
||
}
|
||
@media screen and (min-width: 992px) {
|
||
.navbar_menu-link-item.is-open .dropdown_toggle-nav {
|
||
color: #00b385;
|
||
}
|
||
.navbar_menu-link-item.is-open .dropdown_content-wrapper {
|
||
opacity: 1;
|
||
display: block;
|
||
transform: translateY(0rem);
|
||
}
|
||
}
|
||
|
||
.dropdown_link-block:hover {
|
||
opacity: 60%;
|
||
}
|
||
|
||
.navbar_menu-link-item.is-open .dropdown_arrow-nav {
|
||
transform: rotate(180deg);
|
||
}
|
||
.nav.is-scroll .dropdown_wrap-nav,
|
||
.nav.is-scroll .is-nav-login,
|
||
.nav.is-dark .dropdown_wrap-nav,
|
||
.nav.is-dark .is-nav-login {
|
||
color: #2d2d2e;
|
||
}
|
||
.nav.is-scroll .dropdown_wrap-nav:hover,
|
||
.nav.is-scroll .is-nav-login:hover,
|
||
.nav.is-dark .dropdown_wrap-nav:hover,
|
||
.nav.is-dark .is-nav-login:hover {
|
||
color: #00b385;
|
||
}
|
||
@media screen and (max-width: 991px) {
|
||
.dropdown_wrap-nav .section-title_wrapper {
|
||
display: none;
|
||
}
|
||
.is-open .dropdown_content-wrapper {
|
||
position: relative;
|
||
}
|
||
.dropdown_content-wrapper {
|
||
display: grid;
|
||
grid-template-rows: 0fr;
|
||
transition: grid-template-rows 0.35s ease;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.dropdown_content-nav {
|
||
min-height: 0;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.navbar_menu-link-item.is-open .dropdown_content-wrapper {
|
||
grid-template-rows: 1fr;
|
||
}
|
||
.is-open .dropdown_content-nav {
|
||
opacity: 1;
|
||
}
|
||
.is-scroll .nav_hamburger-line-after-scroll,
|
||
.is-dark .nav_hamburger-line-after-scroll {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
@media screen and (min-width: 992px) {
|
||
|
||
.is-hidden .is-hidden-target {
|
||
opacity: 0;
|
||
height: 0;
|
||
overflow: hidden;
|
||
-webkit-transform: translateZ(0);
|
||
}
|
||
|
||
.is-hidden .navbar_menu-divider {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
*/
|
||
</style></div><div class="nav_wrap"><a aria-label="Go to home page" href="/?r=0" aria-current="page" class="navbar_branding-logo w-nav-brand w--current"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69df850cec412fcd246a8f36_logo%20white2.svg" alt="" class="navbar_logo is-light"/><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1e2133ab75490c11f0f4e_logo%20dark2.svg" alt="" class="navbar_logo is-dark"/><img width="Auto" loading="lazy" alt="" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1e2133ab75490c11f0f4e_logo%20dark2.svg" class="navbar_logo is-open-logo"/></a><div class="navbar_menu-wrapper"><div class="navbar_mobile-top-bar-bg"></div><div class="nav_mobile-bg"></div><ul role="list" class="navbar_menu-list-wrappr"><li id="w-node-b84c024d-aed3-8712-51be-ff158726b8b2-8726b8a8" class="navbar_menu-link-item is-hidden-target"><div class="dropdown_wrap-nav"><div class="dropdown_toggle-nav is-smaller"><div class="is-text-18 is-text-15-avenir">Resources</div><div class="dropdown_arrow-nav w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="0.5rem" height="auto" viewBox="0 0 9 7">
|
||
<path id="Polygon_4" data-name="Polygon 4" d="M3.659,1.308a1,1,0,0,1,1.682,0L8.01,5.459A1,1,0,0,1,7.168,7H1.832A1,1,0,0,1,.99,5.459Z" transform="translate(9 7) rotate(180)" fill="CurrentColor"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper"><div class="dropdown_content-nav"><div class="dropdown_content-nav-left"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Resources</div></div><p class="is-text-26 is-color-grey-900">Browse through our resources</p><div class="dropdown_button"><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="base" href="/resources" class="primary-button w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon"/><div class="is-text-16-aeonik">View all resources</div><div class="button_icon w-embed"><svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="currentColor"/>
|
||
</svg></div></a></div></div><div class="dropdown_content-height"><ul role="list" class="dropdown_list is-nav"><li class="dropdown_list-item is-1st"><a href="/resources/case-studies" class="dropdown_link-block w-inline-block"><div class="is-text-20">Case Studies</div></a></li><li class="dropdown_list-item is-1st"><a href="/resources/webinars-and-videos" class="dropdown_link-block w-inline-block"><div class="is-text-20">Webinars & Videos</div></a></li><li class="dropdown_list-item is-1st"><a href="/resources/news-and-blogs" class="dropdown_link-block w-inline-block"><div class="is-text-20">News & Blog</div></a></li><li class="dropdown_list-item is-1st"><a href="/resources/event-agenda" class="dropdown_link-block w-inline-block"><div class="is-text-20">Event Agenda</div></a></li></ul></div></div></div></div></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b8dc-8726b8a8" class="navbar_menu-link-item is-padding is-hidden-target"><a href="/products/street-smart" class="is-text-18 is-nav-login is-text-15-avenir">Street Smart</a></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b906-8726b8a8" class="navbar_menu-link-item is-hidden-target"><div class="dropdown_wrap-nav"><div class="dropdown_toggle-nav is-smaller"><div class="is-text-18 is-text-15-avenir">Company</div><div class="dropdown_arrow-nav w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="0.5rem" height="auto" viewBox="0 0 9 7">
|
||
<path id="Polygon_4" data-name="Polygon 4" d="M3.659,1.308a1,1,0,0,1,1.682,0L8.01,5.459A1,1,0,0,1,7.168,7H1.832A1,1,0,0,1,.99,5.459Z" transform="translate(9 7) rotate(180)" fill="CurrentColor"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper"><div class="dropdown_content-nav"><div class="dropdown_content-nav-left"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Company</div></div><p class="is-text-26 is-color-grey-900">Cyclomedia, leading the way in innovative workflow solutions and geospatial technology.</p><div class="dropdown_button"><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="base" href="/company" class="primary-button w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon"/><div class="is-text-16-aeonik">View our company info</div><div class="button_icon w-embed"><svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="currentColor"/>
|
||
</svg></div></a></div></div><div class="dropdown_content-height"><ul role="list" class="dropdown_list is-nav"><li class="dropdown_list-item is-1st"><a href="/about" class="dropdown_link-block w-inline-block"><div class="is-text-20">About Us</div></a></li><li class="dropdown_list-item is-1st"><a href="/careers" class="dropdown_link-block w-inline-block"><div class="is-text-20">Careers</div></a></li><li class="dropdown_list-item is-1st"><a href="/company#driving-schedule" class="dropdown_link-block w-inline-block"><div class="is-text-20">Driving Schedule</div></a></li><li class="dropdown_list-item is-1st"><a href="/company#partners" class="dropdown_link-block w-inline-block"><div class="is-text-20">Partners</div></a></li><li class="dropdown_list-item is-1st"><a href="/sustainability" class="dropdown_link-block w-inline-block"><div class="is-text-20">Sustainability</div></a></li><li class="dropdown_list-item is-1st"><a href="/leadership" class="dropdown_link-block w-inline-block"><div class="is-text-20">Leadership Team</div></a></li></ul></div></div></div></div></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b934-8726b8a8" class="navbar_menu-link-item is-padding is-hidden-target"><a href="/contact" class="is-text-18 is-nav-login is-text-15-avenir">Contact</a></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b95e-8726b8a8" class="navbar_menu-link-item is-hidden-target is-lang"><div class="dropdown_wrap-nav is-lang w-locales-list"><div class="dropdown_toggle-nav is-smaller is-lang"><div class="is-text-18 is-text-15-avenir is-current-lang">EU</div><div class="dropdown_arrow-nav w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="0.5rem" height="auto" viewBox="0 0 9 7">
|
||
<path id="Polygon_4" data-name="Polygon 4" d="M3.659,1.308a1,1,0,0,1,1.682,0L8.01,5.459A1,1,0,0,1,7.168,7H1.832A1,1,0,0,1,.99,5.459Z" transform="translate(9 7) rotate(180)" fill="CurrentColor"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper"><div class="dropdown_content-nav"><div class="dropdown_content-nav-left"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Language</div></div><p class="is-text-26 is-color-grey-900">Choose your language</p></div><div class="dropdown_content-height"><div role="list" class="dropdown_list is-nav w-locales-items"><div role="listitem" class="dropdown_list-item w-locales-item"><a hreflang="en" href="/?r=0" aria-current="page" class="dropdown_link-block is-lang w-inline-block w--current"><div class="is-text-20 is-capital">EU</div><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1ecee94dd72788f0a42e0_eu.svg" loading="lazy" alt="" class="nav_lang-flag"/></a></div><div role="listitem" class="dropdown_list-item w-locales-item"><a hreflang="en-US" href="/en-us" class="dropdown_link-block is-lang w-inline-block"><div class="is-text-20 is-capital">US</div><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1473475caa45572854fe9_us-um.svg" loading="lazy" alt="" class="nav_lang-flag"/></a></div><div role="listitem" class="dropdown_list-item w-locales-item"><a hreflang="nl-NL" href="/nl-nl" class="dropdown_link-block is-lang w-inline-block"><div class="is-text-20 is-capital">NL</div><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1472f03ffbcb60744d114_nl.svg" loading="lazy" alt="" class="nav_lang-flag"/></a></div><div role="listitem" class="dropdown_list-item w-locales-item"><a hreflang="de-DE" href="/de-de" class="dropdown_link-block is-lang w-inline-block"><div class="is-text-20 is-capital">DE</div><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1471caf0a075733846b34_de.svg" loading="lazy" alt="" class="nav_lang-flag"/></a></div><div role="listitem" class="dropdown_list-item w-locales-item"><a hreflang="fr-FR" href="/fr-fr" class="dropdown_link-block is-lang w-inline-block"><div class="is-text-20 is-capital">FR</div><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e147170f00af16d417d4b9_fr.svg" loading="lazy" alt="" class="nav_lang-flag"/></a></div><div role="listitem" class="dropdown_list-item w-locales-item"><a hreflang="pl-PL" href="/pl-pl" class="dropdown_link-block is-lang w-inline-block"><div class="is-text-20 is-capital">PL</div><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e147133a4774d5ed28148c_pl.svg" loading="lazy" alt="" class="nav_lang-flag"/></a></div></div></div></div></div></div></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b9a0-8726b8a8" class="navbar_menu-link-item is-search is-hidden-target"><div class="dropdown_wrap-nav"><div class="dropdown_toggle-nav is-search"><div class="dropdown_search-icon w-embed"><svg width="100%" height="auto" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M20.37 20.5L15 15M17.5 9C17.5 13.6944 13.6944 17.5 9 17.5C4.30558 17.5 0.5 13.6944 0.5 9C0.5 4.30558 4.30558 0.5 9 0.5C13.6944 0.5 17.5 4.30558 17.5 9Z" stroke="CurrentColor" stroke-linecap="round"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper is-search-mobile"><div class="dropdown_content-nav is-search"><div class="dropdown_content-height is-lang"><ul role="list" class="dropdown_list is-nav is-search"><li id="w-node-b84c024d-aed3-8712-51be-ff158726b9a8-8726b8a8" class="dropdown_list-item is-search-mobile"><form action="/search" class="nav_search w-form"><input class="nav_search-input w-input" maxlength="256" name="query" placeholder="Search…" type="search" id="search" required=""/><input type="submit" class="nav_search-button w-button" value="Search"/><div class="nav_search-close w-embed"><svg width="100%" height="auto" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M8.98528 8.98619L0.5 0.500907M8.99309 0.5L0.507812 8.98528" stroke="CurrentColor" stroke-linecap="round"/>
|
||
</svg></div></form></li></ul></div></div></div></div></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b9ad-8726b8a8" class="navbar_menu-link-item is-padding is-hidden-target is-login"><a href="https://streetsmart.cyclomedia.com" target="_blank" class="is-text-18 is-nav-login is-text-15-avenir">Login</a></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b9b0-8726b8a8" class="navbar_menu-link-item is-nav-cta"><a href="/demo" class="navbar_cta w-button">Request a demo</a></li><li class="navbar_menu-link-item"><div class="dropdown_wrap-nav"><div class="dropdown_toggle-nav"><div class="is-text-18-2">Industries</div><div class="dropdown_arrow-nav-2 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="0.5rem" height="auto" viewBox="0 0 9 7">
|
||
<path id="Polygon_4" data-name="Polygon 4" d="M3.659,1.308a1,1,0,0,1,1.682,0L8.01,5.459A1,1,0,0,1,7.168,7H1.832A1,1,0,0,1,.99,5.459Z" transform="translate(9 7) rotate(180)" fill="CurrentColor"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper"><div class="dropdown_content-nav"><div class="dropdown_content-nav-left"><div class="section_title-wrapper"><div class="section-title_dot-2"></div><div class="is-text-15-aeonik-2 is-color-green">Industries</div></div><p class="is-text-26 is-color-grey-900">Delivering tailored solutions across diverse industries with cutting-edge technology and industry expertise.</p><div class="dropdown_button"><a href="/industries" id="w-node-ecc71cd5-0585-de24-8c0a-4a1cb47dd807-8726b8a8" class="primary-button w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" alt="" class="button_icon"/><div class="is-text-16-aeonik">View all industries</div><div class="button_icon w-embed"><svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="currentColor"/>
|
||
</svg></div></a></div></div><div class="dropdown_content-height"><ul role="list" class="dropdown_list is-nav"><li class="dropdown_list-item is-1st"><a href="/industries/construction-and-engineering" class="dropdown_link-block w-inline-block"><div class="is-text-20">Construction & Engineering</div></a></li><li class="dropdown_list-item is-1st"><a href="/industries/government" class="dropdown_link-block w-inline-block"><div class="is-text-20">Government</div></a></li><li class="dropdown_list-item is-1st"><a href="/industries/insurance" class="dropdown_link-block w-inline-block"><div class="is-text-20">Insurance</div></a></li><li class="dropdown_list-item is-1st"><a href="/industries/transportation-us-infrastructure-eu" class="dropdown_link-block w-inline-block"><div class="is-text-20">Infrastructure</div></a></li><li class="dropdown_list-item is-1st"><a href="/industries/utilities-and-energy" class="dropdown_link-block w-inline-block"><div class="is-text-20">Utilities & Energy</div></a></li><li class="dropdown_list-item is-1st"><a href="/industries/telecommunications" class="dropdown_link-block w-inline-block"><div class="is-text-20">Telecommunications</div></a></li></ul></div></div></div></div></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726b9dd-8726b8a8" class="navbar_menu-link-item"><div class="dropdown_wrap-nav"><div class="dropdown_toggle-nav"><div class="is-text-18">Use cases</div><div class="dropdown_arrow-nav w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="0.5rem" height="auto" viewBox="0 0 9 7">
|
||
<path id="Polygon_4" data-name="Polygon 4" d="M3.659,1.308a1,1,0,0,1,1.682,0L8.01,5.459A1,1,0,0,1,7.168,7H1.832A1,1,0,0,1,.99,5.459Z" transform="translate(9 7) rotate(180)" fill="CurrentColor"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper"><div class="dropdown_content-nav"><div class="dropdown_content-nav-left"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Use cases</div></div><p class="is-text-26 is-color-grey-900">Powerful, industry-specific solutions designed to solve your most complex challenges with cutting-edge technology.</p><div class="dropdown_button"><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="base" href="/use-cases" class="primary-button w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon"/><div class="is-text-16-aeonik">View all use cases</div><div class="button_icon w-embed"><svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="currentColor"/>
|
||
</svg></div></a></div></div><div class="dropdown_content-height"><ul role="list" class="dropdown_list is-nav"><li class="dropdown_list-item is-1st"><a href="/use-cases/asset-management" class="dropdown_link-block w-inline-block"><div class="is-text-20">Asset Management</div></a></li><li class="dropdown_list-item is-1st"><a href="/use-cases/pavement-and-surface" class="dropdown_link-block w-inline-block"><div class="is-text-20">Pavement & Surface</div></a></li><li class="dropdown_list-item is-1st"><a href="/use-cases/smart-city" class="dropdown_link-block w-inline-block"><div class="is-text-20">Smart City</div></a></li><li class="dropdown_list-item is-1st"><a href="/use-cases/tax-assessment" class="dropdown_link-block w-inline-block"><div class="is-text-20">Tax Assessment</div></a></li><li class="dropdown_list-item is-1st"><a href="/use-cases/pedestrian-safety" class="dropdown_link-block w-inline-block"><div class="is-text-20">Pedestrian Safety</div></a></li><li class="dropdown_list-item is-1st"><a href="/use-cases/road-safety" class="dropdown_link-block w-inline-block"><div class="is-text-20">Road Safety</div></a></li></ul></div></div></div></div></li><li id="w-node-b84c024d-aed3-8712-51be-ff158726ba07-8726b8a8" class="navbar_menu-link-item"><div class="dropdown_wrap-nav"><div class="dropdown_toggle-nav"><div class="is-text-18">Products & technologies</div><div class="dropdown_arrow-nav w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="0.5rem" height="auto" viewBox="0 0 9 7">
|
||
<path id="Polygon_4" data-name="Polygon 4" d="M3.659,1.308a1,1,0,0,1,1.682,0L8.01,5.459A1,1,0,0,1,7.168,7H1.832A1,1,0,0,1,.99,5.459Z" transform="translate(9 7) rotate(180)" fill="CurrentColor"/>
|
||
</svg></div></div><div class="dropdown_content-wrapper"><div class="dropdown_content-nav"><div class="dropdown_content-nav-left"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Products & technologies</div></div><p class="is-text-26 is-color-grey-900">Discover our comprehensive suite of geospatial solutions designed to transform infrastructure management.</p><div class="dropdown_button"><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="base" href="/products" class="primary-button w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon"/><div class="is-text-16-aeonik">View all our products & technologies</div><div class="button_icon w-embed"><svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="currentColor"/>
|
||
</svg></div></a></div></div><div class="dropdown_content-height"><ul role="list" class="dropdown_list is-nav"><li class="dropdown_list-item is-1st"><a href="/products/captured-data-landing" class="dropdown_link-block w-inline-block"><div class="is-text-20">Captured Data</div></a></li><li class="dropdown_list-item is-1st"><a href="/products/assets" class="dropdown_link-block w-inline-block"><div class="is-text-20">Assets</div></a></li><li class="dropdown_list-item is-1st"><a href="/products/street-smart" class="dropdown_link-block w-inline-block"><div class="is-text-20">Street Smart</div></a></li><li class="dropdown_list-item is-1st"><a href="/products/integrations-and-apis" class="dropdown_link-block w-inline-block"><div class="is-text-20">Integrations & APIs</div></a></li></ul></div></div></div></div></li></ul><div class="navbar_menu-divider"></div></div><a href="#" class="nav_hamburger w-inline-block"><div data-w-id="b84c024d-aed3-8712-51be-ff158726ba2b" class="nav_hamburger-line"><div class="nav_hamburger-line-after-scroll"></div></div><div data-w-id="b84c024d-aed3-8712-51be-ff158726ba2d" class="nav_hamburger-line"><div class="nav_hamburger-line-after-scroll"></div></div><div data-w-id="b84c024d-aed3-8712-51be-ff158726ba2f" class="nav_hamburger-line"><div class="nav_hamburger-line-after-scroll"></div></div></a></div></div><div class="nav_blur-overlay"></div></nav><section class="section is-seq"><div id="sequence-wrapper" class="div-block"><div class="code-embed w-embed"><!-- HTML Embed block zawartość: -->
|
||
<canvas id="sequence-canvas"
|
||
style="width: 100%; height: 100%; object-fit: cover; display: block;">
|
||
</canvas></div><div class="w-layout-blockcontainer container is-home-hero w-container"><div class="home-hero_component"><div class="home-hero_h1-wrapper"><h1 class="is-text-58 is-color-white-100 is-home-hero">Capture. </h1><h1 class="is-text-58 is-color-white-100 is-home-hero">Insight.</h1><h1 class="is-text-58 is-color-white-100 is-home-hero">Intelligence.</h1><h1 class="is-text-58 is-color-white-100 is-home-hero">Vision.</h1></div><div class="home-hero_subtext"><div class="home-hero_subtext-overflow"><p class="is-text-20 is-color-white-100">We capture the world in unmatched detail, turning reality into insights that saves time and cost and helps governments and companies operate smarter and safer.<br/><br/><strong>Trusted Data. Powerful Insights.</strong></p></div></div></div><div class="home-hero_scroll-lottie" data-w-id="813a0ca0-0819-9af1-7335-d3f466b16407" data-animation-type="lottie" data-src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/6a17f4cca89dd333ca816a64_Animation%20-%201738935223261.json" data-loop="1" data-direction="1" data-autoplay="1" data-is-ix2-target="0" data-renderer="svg" data-default-duration="0" data-duration="0" data-loading="lazy"></div></div></div></section><section class="section is-top-full"><div class="w-layout-blockcontainer container w-container"><div layout="" data-wf--section-header--variant="2-column" class="section_header"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Who we are</div></div><div data-header-width="" id="w-node-_3771049e-1144-9a37-862e-9b91e58c44f7-e58c44f4" class="section_header-right"><p data-highlight-text="" class="is-text-40 is-color-grey-900">Cyclomedia is a global leader in geospatial data and intelligence, transforming how organisations capture, visualise, and analyse the built environment.</p><div class="section-header_rte w-richtext"><p>Cyclomedia digitises the outside world at scale. Using highly accurate street‑level imagery and LiDAR data and AI-powered analytics, we create reliable digital representations of cities and infrastructure that support planning, maintenance, and public safety. We empower governments and businesses to make smarter, data-driven decisions.</p><p>Our data helps professionals assess assets remotely, reduce field visits, and make decisions based on consistent, measurable information rather than fragmented local surveys or outdated records.</p></div><div class="section-header_button-wrapper"><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/about" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">Read more about us</div><div class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-embed"><svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="currentColor"/>
|
||
</svg></div></a></div></div></div></div></section><div class="bg-color-wrapper"><div class="custom-code_css w-embed"><style>
|
||
@media screen and (min-width: 992px) {
|
||
.home-benefit_list-item .is-text-32 {
|
||
margin-top: 3rem;
|
||
}
|
||
|
||
.sticky-child .home-products_item {
|
||
width: 34.875rem;
|
||
flex: 0 0 auto;
|
||
}
|
||
}
|
||
</style></div><section class="section"><div class="w-layout-blockcontainer container w-container"><div class="grid-sticky_component"><div class="grid-sticky_left is-480"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Our products + technologies</div></div><div class="grid-sticky_left-heading"><p data-highlight-text="" class="is-text-32 is-color-grey-900">Discover our comprehensive suite of geospatial solutions designed to support public space and infrastructure management.</p></div><p class="is-text-18 is-color-grey-900">Cyclomedia provides a connected set of geospatial assets that help organisations understand, analyse, and manage the outdoor environment. From captured data to visualisation, insight, and system integration, each asset plays a distinct role in turning real‑world conditions into reliable information for professional decision‑making.</p></div><div id="w-node-_2115d6d2-f79b-f9c7-c505-b5a558456e42-0ae76dc4" class="grid-sticky_right is-1146"><a data-wf--product-item-card--variant="base" href="/products/captured-data-landing" class="home-products_item is-image-hover-scale-parent is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69de03f9b1d42363c277036c_desktop-monitor-street-smart-mapping-interface-office.webp" alt="Desktop monitor on an office desk displaying a street-level mapping interface in Street Smart with map and imagery views" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69de03f9b1d42363c277036c_desktop-monitor-street-smart-mapping-interface-office-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69de03f9b1d42363c277036c_desktop-monitor-street-smart-mapping-interface-office-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69de03f9b1d42363c277036c_desktop-monitor-street-smart-mapping-interface-office-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69de03f9b1d42363c277036c_desktop-monitor-street-smart-mapping-interface-office.webp 1600w" class="image-fade-in"/></div></div><div class="home-products_item-bottom"><div class="home-products_text-wrapper"><div class="home-products_text-top"><p class="is-text-26 is-color-grey-900">Data</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom"><p class="is-text-18 is-color-grey-900">High‑accuracy street‑level imagery (Cyclorama's), LiDAR point clouds, and aerial data create a consistent and measurable digital representation of public space. These datasets form the foundation for inspection, measurement, comparison over time, and large‑scale analysis without repeated site visits.</p></div></div></div></a><a data-wf--product-item-card--variant="base" href="/products/assets" class="home-products_item is-image-hover-scale-parent is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfeb493f535d7db2f9a793_digital-city-street-location-data-overlay-blue.webp" alt="Digital city street visualization with building outlines, road markings, and a location data overlay showing a unique ID and coordinates" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfeb493f535d7db2f9a793_digital-city-street-location-data-overlay-blue-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfeb493f535d7db2f9a793_digital-city-street-location-data-overlay-blue-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfeb493f535d7db2f9a793_digital-city-street-location-data-overlay-blue-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfeb493f535d7db2f9a793_digital-city-street-location-data-overlay-blue.webp 1600w" class="image-fade-in"/></div></div><div class="home-products_item-bottom"><div class="home-products_text-wrapper"><div class="home-products_text-top"><p class="is-text-26 is-color-grey-900">Insights</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom"><p class="is-text-18 is-color-grey-900">Cyclomedia transforms geospatial data into structured and usable insight. Automated analysis supports objective assessments, scalable asset inventories, and consistent decision‑making across departments and regions.</p></div></div></div></a><a data-wf--product-item-card--variant="base" href="/products/street-smart" class="home-products_item is-image-hover-scale-parent is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69df6081ff724b7403d32fdd_f960fe0f64f9596a72067abfecc4402a_street-smart-presentation-meeting-room-team-collaboration.webp" alt="" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69df6081ff724b7403d32fdd_f960fe0f64f9596a72067abfecc4402a_street-smart-presentation-meeting-room-team-collaboration-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69df6081ff724b7403d32fdd_f960fe0f64f9596a72067abfecc4402a_street-smart-presentation-meeting-room-team-collaboration-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69df6081ff724b7403d32fdd_f960fe0f64f9596a72067abfecc4402a_street-smart-presentation-meeting-room-team-collaboration-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69df6081ff724b7403d32fdd_f960fe0f64f9596a72067abfecc4402a_street-smart-presentation-meeting-room-team-collaboration.webp 1600w" class="image-fade-in"/></div></div><div class="home-products_item-bottom"><div class="home-products_text-wrapper"><div class="home-products_text-top"><p class="is-text-26 is-color-grey-900">Street Smart</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom"><p class="is-text-18 is-color-grey-900">Street Smart is the central environment for viewing, measuring, and comparing geospatial data. It enables professionals to inspect assets, validate conditions, and analyse change directly from their desktop using reliable visual and spatial context.</p></div></div></div></a><a data-wf--product-item-card--variant="base" href="/products/integrations-and-apis" class="home-products_item is-image-hover-scale-parent is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfebad6f0c6b569ff51ed3_team-using-mapping-software-desktop-monitor.webp" alt="Two colleagues viewing mapping and street-level imagery software on a desktop monitor in an office" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfebad6f0c6b569ff51ed3_team-using-mapping-software-desktop-monitor-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfebad6f0c6b569ff51ed3_team-using-mapping-software-desktop-monitor-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfebad6f0c6b569ff51ed3_team-using-mapping-software-desktop-monitor-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69dfebad6f0c6b569ff51ed3_team-using-mapping-software-desktop-monitor.webp 1600w" class="image-fade-in"/></div></div><div class="home-products_item-bottom"><div class="home-products_text-wrapper"><div class="home-products_text-top"><p class="is-text-26 is-color-grey-900">Integrations & APIs</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom"><p class="is-text-18 is-color-grey-900">Open integrations and APIs connect Cyclomedia data with existing GIS, asset management, and enterprise systems. This ensures accurate and consistent information flows across tools, teams, and workflows.</p></div></div></div></a></div></div></div></section><div class="bg-color-trigger-section-wrapper"><div class="bg-color-trigger"></div><section data-theme-trigger="dark" class="section is-home-ind"><div class="w-layout-blockcontainer container is-z-index-1 w-container"><div class="home-benefit_component is-mobile-swiper-component"><div class="section_header"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Industries we serve</div></div><div id="w-node-c8d61bee-a0e8-6ef3-ae1a-e069b2b3c8d7-0ae76dc4" class="section_header-right"><h2 data-highlight-text="" class="is-text-40 is-color-grey-900">Supporting public sector and infrastructure organisations across Europe</h2><p class="is-text-18 is-color-grey-900">Across Europe, public authorities and infrastructure organisations rely on Cyclomedia to understand and manage real‑world conditions. Our solutions support sector‑specific workflows while providing a shared and consistent foundation for collaboration, analysis, and long‑term planning.</p></div></div><div class="sticky-parent"><div class="sticky-child"><div class="swiper"><div class="home-benefit_list swiper-wrapper"><a data-wf--product-item-card--variant="home-industries-fixed-height-img" href="/industries/construction-and-engineering" class="home-products_item is-image-hover-scale-parent w-variant-13df0544-df71-296f-3b31-53648fc9f1a2 is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11426899ec5c695a6f33d_156634ad322710ad95f443ca2510d862_Cyclomedia-hero-image-industries-construction-engineering.webp" alt="Digital visualization of a construction site with equipment, structures, and site activity highlighted in a blue data-driven environment" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11426899ec5c695a6f33d_156634ad322710ad95f443ca2510d862_Cyclomedia-hero-image-industries-construction-engineering-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11426899ec5c695a6f33d_156634ad322710ad95f443ca2510d862_Cyclomedia-hero-image-industries-construction-engineering-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11426899ec5c695a6f33d_156634ad322710ad95f443ca2510d862_Cyclomedia-hero-image-industries-construction-engineering-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11426899ec5c695a6f33d_156634ad322710ad95f443ca2510d862_Cyclomedia-hero-image-industries-construction-engineering-p-1600.webp 1600w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11426899ec5c695a6f33d_156634ad322710ad95f443ca2510d862_Cyclomedia-hero-image-industries-construction-engineering.webp 1920w" class="image-fade-in"/></div></div><div class="home-products_item-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-top w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-26 is-color-grey-900">Construction & engineering</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-18 is-color-grey-900">Construction and engineering teams use Cyclomedia to gain early insight into site conditions, surroundings, and constraints before work begins. Accurate spatial data and remote measurements support design validation, reduce rework, and improve coordination across planning, engineering, and delivery phases.</p></div></div></div></a><a data-wf--product-item-card--variant="home-industries-fixed-height-img" href="/industries/government" class="home-products_item is-image-hover-scale-parent w-variant-13df0544-df71-296f-3b31-53648fc9f1a2 is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11157f86bba9699cb7e8a_35ab4e63fa3fdc53ce22ed4a3499cf7f_Cyclomedia-hero-image-industries-utilities.webp" alt="Smart city street intersection with pedestrians, vehicles, and crossings visualized in a blue digital urban environment" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11157f86bba9699cb7e8a_35ab4e63fa3fdc53ce22ed4a3499cf7f_Cyclomedia-hero-image-industries-utilities-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11157f86bba9699cb7e8a_35ab4e63fa3fdc53ce22ed4a3499cf7f_Cyclomedia-hero-image-industries-utilities-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11157f86bba9699cb7e8a_35ab4e63fa3fdc53ce22ed4a3499cf7f_Cyclomedia-hero-image-industries-utilities-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11157f86bba9699cb7e8a_35ab4e63fa3fdc53ce22ed4a3499cf7f_Cyclomedia-hero-image-industries-utilities-p-1600.webp 1600w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11157f86bba9699cb7e8a_35ab4e63fa3fdc53ce22ed4a3499cf7f_Cyclomedia-hero-image-industries-utilities.webp 1920w" class="image-fade-in"/></div></div><div class="home-products_item-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-top w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-26 is-color-grey-900">Government</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-18 is-color-grey-900">Public authorities use Cyclomedia to manage streets, buildings, and public assets more efficiently. Accurate geospatial intelligence supports asset management, inspections, permitting, and urban planning while reducing reliance on manual surveys and repeated site visits.</p></div></div></div></a><a data-wf--product-item-card--variant="home-industries-fixed-height-img" href="/industries/transportation-us-infrastructure-eu" class="home-products_item is-image-hover-scale-parent w-variant-13df0544-df71-296f-3b31-53648fc9f1a2 is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1127e750912904d5784e8_a86dff1c2353a603f60ae89b7110da4e_Cyclomedia-hero-image-industries-infrastructure.webp" alt="Roadwork scene on a highway with maintenance activity and infrastructure elements shown in a blue digital visualization" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1127e750912904d5784e8_a86dff1c2353a603f60ae89b7110da4e_Cyclomedia-hero-image-industries-infrastructure-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1127e750912904d5784e8_a86dff1c2353a603f60ae89b7110da4e_Cyclomedia-hero-image-industries-infrastructure-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1127e750912904d5784e8_a86dff1c2353a603f60ae89b7110da4e_Cyclomedia-hero-image-industries-infrastructure-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1127e750912904d5784e8_a86dff1c2353a603f60ae89b7110da4e_Cyclomedia-hero-image-industries-infrastructure-p-1600.webp 1600w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1127e750912904d5784e8_a86dff1c2353a603f60ae89b7110da4e_Cyclomedia-hero-image-industries-infrastructure.webp 1920w" class="image-fade-in"/></div></div><div class="home-products_item-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-top w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-26 is-color-grey-900">Infrastructure</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-18 is-color-grey-900">Infrastructure owners and operators rely on Cyclomedia to manage linear and area‑based assets throughout long life cycles. A complete digital representation of the outdoor environment supports investment planning, coordination, and long‑term asset strategies.</p></div></div></div></a><a data-wf--product-item-card--variant="home-industries-fixed-height-img" href="/industries/utilities-and-energy" class="home-products_item is-image-hover-scale-parent w-variant-13df0544-df71-296f-3b31-53648fc9f1a2 is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1138794bad30ab6770bbc_9292b1ed64c9937b37460b3aaf21830f_Cyclomedia-hero-image-industries-utilities.webp" alt="Power utility site with transmission towers and field service activity shown in a blue digital landscape" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1138794bad30ab6770bbc_9292b1ed64c9937b37460b3aaf21830f_Cyclomedia-hero-image-industries-utilities-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1138794bad30ab6770bbc_9292b1ed64c9937b37460b3aaf21830f_Cyclomedia-hero-image-industries-utilities-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1138794bad30ab6770bbc_9292b1ed64c9937b37460b3aaf21830f_Cyclomedia-hero-image-industries-utilities-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1138794bad30ab6770bbc_9292b1ed64c9937b37460b3aaf21830f_Cyclomedia-hero-image-industries-utilities-p-1600.webp 1600w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1138794bad30ab6770bbc_9292b1ed64c9937b37460b3aaf21830f_Cyclomedia-hero-image-industries-utilities.webp 1920w" class="image-fade-in"/></div></div><div class="home-products_item-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-top w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-26 is-color-grey-900">Utilities & energy</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-18 is-color-grey-900">Utility and energy providers use Cyclomedia to plan, inspect, and manage networks more effectively. Reliable insight into assets and their surroundings supports maintenance planning and network expansion while reducing operational risk.</p></div></div></div></a><a data-wf--product-item-card--variant="home-industries-fixed-height-img" href="/industries/telecommunications" class="home-products_item is-image-hover-scale-parent w-variant-13df0544-df71-296f-3b31-53648fc9f1a2 is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11207e5d15a6890833ab4_06354e0b7045cc3e24b861507e9243e7_Cyclomedia-hero-image-industries-telecommunications.webp" alt="Urban utility worksite with underground network measurements highlighted in a blue digital visualization" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11207e5d15a6890833ab4_06354e0b7045cc3e24b861507e9243e7_Cyclomedia-hero-image-industries-telecommunications-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11207e5d15a6890833ab4_06354e0b7045cc3e24b861507e9243e7_Cyclomedia-hero-image-industries-telecommunications-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11207e5d15a6890833ab4_06354e0b7045cc3e24b861507e9243e7_Cyclomedia-hero-image-industries-telecommunications-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11207e5d15a6890833ab4_06354e0b7045cc3e24b861507e9243e7_Cyclomedia-hero-image-industries-telecommunications-p-1600.webp 1600w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e11207e5d15a6890833ab4_06354e0b7045cc3e24b861507e9243e7_Cyclomedia-hero-image-industries-telecommunications.webp 1920w" class="image-fade-in"/></div></div><div class="home-products_item-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-top w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-26 is-color-grey-900">Telecommunications</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-18 is-color-grey-900">Telecommunications providers use Cyclomedia to assess locations, surroundings, and physical constraints during network planning and rollout. Remote insight enables faster evaluations and more confident deployment decisions.</p></div></div></div></a><a data-wf--product-item-card--variant="home-industries-fixed-height-img" href="/industries/insurance" class="home-products_item is-image-hover-scale-parent w-variant-13df0544-df71-296f-3b31-53648fc9f1a2 is-arrow-hover-parent swiper-slide w-inline-block"><div class="home-products_img-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="image-fade-in_scale-parent"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1130f127be3eb82294d7f_8304bc0fd18cf899188eff7cefa53bb3_Cyclomedia-hero-image-industries-insurance.webp" alt="Desktop monitor displaying a digital street-level risk visualization in a blue office environment" sizes="(max-width: 767px) 100vw, (max-width: 991px) 95vw, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1130f127be3eb82294d7f_8304bc0fd18cf899188eff7cefa53bb3_Cyclomedia-hero-image-industries-insurance-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1130f127be3eb82294d7f_8304bc0fd18cf899188eff7cefa53bb3_Cyclomedia-hero-image-industries-insurance-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1130f127be3eb82294d7f_8304bc0fd18cf899188eff7cefa53bb3_Cyclomedia-hero-image-industries-insurance-p-1080.webp 1080w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1130f127be3eb82294d7f_8304bc0fd18cf899188eff7cefa53bb3_Cyclomedia-hero-image-industries-insurance-p-1600.webp 1600w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69e1130f127be3eb82294d7f_8304bc0fd18cf899188eff7cefa53bb3_Cyclomedia-hero-image-industries-insurance.webp 1920w" class="image-fade-in"/></div></div><div class="home-products_item-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-wrapper w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><div class="home-products_text-top w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-26 is-color-grey-900">Insurance</p><div class="home-products_arrow"><div bg-color="" class="arrow_component"><div class="arrow_icon-link w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="auto" viewBox="0 0 28.643 24.737">
|
||
<g id="Group_26129" data-name="Group 26129" transform="translate(0.5 0.707)">
|
||
<path id="Path_55615" data-name="Path 55615" d="M-4642.639-7082.961l11.987,11.661-11.987,11.662" transform="translate(4658.077 7082.961)" fill="none" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
<path id="Path_55616" data-name="Path 55616" d="M24.382,0H-2.53" transform="translate(2.53 11.662)" fill="#00b385" stroke="CurrentColor" stroke-linecap="round" stroke-width="1"/>
|
||
</g>
|
||
</svg></div></div></div></div><div class="home-products_text-bottom w-variant-13df0544-df71-296f-3b31-53648fc9f1a2"><p class="is-text-18 is-color-grey-900">Insurance organisations use Cyclomedia to support assessment and validation workflows. Objective visual evidence and spatial context improve transparency, consistency, and efficiency when reviewing locations, properties, and risk factors.</p></div></div></div></a></div></div></div></div></div></div></section></div><section class="section is-bottom-0"><div class="w-layout-blockcontainer container w-container"><div class="grid-sticky_component is-home-use"><div class="grid-sticky_left"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Use cases we offer</div></div><h2 data-highlight-text="" class="is-text-32 is-color-grey-900">Practical geospatial solutions for critical infrastructure and operational challenges.</h2><div class="grid-sticky_left-image-wrapper"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69da99fcb7a49ee708fe3861_00dc0710fcfb8ea05aef7c3082ff9c5c_aerial-road-intersection-location-data-overlay.webp" loading="lazy" sizes="(max-width: 767px) 100vw, (max-width: 991px) 728px, 940px" srcset="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69da99fcb7a49ee708fe3861_00dc0710fcfb8ea05aef7c3082ff9c5c_aerial-road-intersection-location-data-overlay-p-500.webp 500w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69da99fcb7a49ee708fe3861_00dc0710fcfb8ea05aef7c3082ff9c5c_aerial-road-intersection-location-data-overlay-p-800.webp 800w, https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69da99fcb7a49ee708fe3861_00dc0710fcfb8ea05aef7c3082ff9c5c_aerial-road-intersection-location-data-overlay.webp 950w" alt="Aerial view of a road intersection with digital location markers, unique IDs, and coordinate data overlays" class="image-fade-in"/></div></div><div id="w-node-cbe9eabe-4901-4b71-e39c-d2c7c7e0d8c4-0ae76dc4" class="home-solution_right"><div class="home-solution_right-item"><div class="home-solution_inline-wrapper"><p class="is-text-32 is-inline">Asset management:</p><p class="is-text-32 is-inline is-color-grey-600"> Centralise asset inventories using accurate street-level imagery, LiDAR, and AI-derived attributes to monitor condition, plan maintenance, and reduce site visits across the full asset lifecycle.</p></div><div><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/use-cases/asset-management" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">More about Asset Management</div></a></div></div><div class="home-solution_right-item"><div class="home-solution_inline-wrapper"><p class="is-text-32 is-inline">Pavement & surface:</p><p class="is-text-32 is-inline is-color-grey-600">Automatically detect pavement defects, surface types, and deterioration using high-resolution imagery and AI to support maintenance prioritisation, budget planning, and network-level condition assessment.</p></div><div><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/use-cases/pavement-and-surface" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">More about Pavement & Surface</div></a></div></div><div class="home-solution_right-item"><div class="home-solution_inline-wrapper"><p class="is-text-32 is-inline">Smart city:</p><p class="is-text-32 is-inline is-color-grey-600">Create a shared digital representation of public space that supports cross-department collaboration, data-led planning, and consistent decision-making using objective, up-to-date geospatial data.</p></div><div><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/use-cases/smart-city" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">More about Smart City</div></a></div></div><div class="home-solution_right-item"><div class="home-solution_inline-wrapper"><p class="is-text-32 is-inline">Tax assessment:</p><p class="is-text-32 is-inline is-color-grey-600">Support fair and defensible property valuations using current visual evidence and measurements, reducing reliance on site visits while improving accuracy, transparency, and review efficiency.</p></div><div><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/use-cases/tax-assessment" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">More about Tax Assessment</div></a></div></div><div class="home-solution_right-item"><div class="home-solution_inline-wrapper"><p class="is-text-32 is-inline">Pedestrian safety:</p><p class="is-text-32 is-inline is-color-grey-600">Identify, measure, and assess footways, dropped kerbs, crossings, and streetscape assets to support accessibility compliance, risk reduction, and safer public spaces without extensive fieldwork.</p></div><div><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/use-cases/pedestrian-safety" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">More about Pedestrian Safety</div></a></div></div><div class="home-solution_right-item"><div class="home-solution_inline-wrapper"><p class="is-text-32 is-inline">Road safety:</p><p class="is-text-32 is-inline is-color-grey-600">Analyse road environments, signage, markings, and surrounding context at scale to support safety audits, risk assessments, and targeted improvements based on consistent visual and spatial data.</p></div><div><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="alternate" href="/use-cases/road-safety" class="primary-button w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402 w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402"/><div class="is-text-16-aeonik w-variant-5d10aa60-c7e8-23fb-91fd-7d9775880402">More about Road Safety</div></a></div></div></div></div></div></section></div><section class="section is-banner"><div class="w-layout-blockcontainer container w-container"><div class="banner_component is-home"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Get started</div></div><h3 data-highlight-text="" class="is-text-40">Experience Cyclomedia’s innovative solutions - request your free demo</h3><div class="banner_button"><a id="w-node-_884776b0-85d3-9a33-7cdb-0fd667feaf35-67feaf35" data-wf--button-ui--variant="base" href="/demo" class="primary-button w-inline-block"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76deb_Screenshot%202026-03-04%20at%2017.07.45%201.avif" loading="lazy" alt="" class="button_icon"/><div class="is-text-16-aeonik">Request a demo</div></a></div></div></div></section><section class="section is-footer"><footer class="footer"><div class="w-layout-blockcontainer container w-container"><div class="footer_layout"><div class="footer_grid"><a href="/?r=0" id="w-node-f4149cc4-8c76-c825-bad6-4fa7292d7f44-292d7f3e" aria-current="page" class="footer_logo-link w-inline-block w--current"><img loading="lazy" src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69bd3518dd960ca00ae76dfa_logo%20white.svg" alt="" class="fc-logo"/></a><div id="w-node-f5a3f3c1-293f-2213-e9ee-7691c3665215-292d7f3e" class="footer_contant"><div class="p-wrapper is-footer"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Contact</div></div><div class="footer_links"><div class="footer_contact-row"><p class="is-text-16-avenir is-color-white-100">t: </p><a href="tel:+31(0)418-556100" class="is-text-16-avenir is-color-white-100">+31 (0) 418 - 55 61 00</a></div><div class="footer_contact-row"><p class="is-text-16-avenir is-color-white-100">e: </p><a href="mailto:info@cyclomedia.nl" class="is-text-16-avenir is-color-white-100">info@cyclomedia.nl</a></div><p class="is-text-16-avenir is-color-white-100">Van Voordenpark 1b 5301 KP Zaltbommel (NL)</p></div></div><div class="footer_sm-link_wrapper"><a href="https://www.facebook.com/" target="_blank" class="footer_sm-link hide w-inline-block"><div class="footer_sm-link_icon w-embed"><svg width="7" height="14" viewBox="0 0 7 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.45243 14H1.48354V6.99912H0V4.58685H1.48354V3.1386C1.48354 1.17079 2.32078 0 4.70097 0H6.68204V2.41315H5.44387C4.51729 2.41315 4.45606 2.75025 4.45606 3.37939L4.45198 4.58685H6.69565L6.43305 6.99912H4.45198V14H4.45243Z" fill="#2B1708"/>
|
||
</svg></div></a><a href="https://www.linkedin.com/company/cyclomedia/" target="_blank" class="footer_sm-link hide w-inline-block"><div class="footer_sm-link_icon w-embed"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1111 0H3.88889C1.74112 0 0 1.74112 0 3.88889V10.1111C0 12.2589 1.74112 14 3.88889 14H10.1111C12.2589 14 14 12.2589 14 10.1111V3.88889C14 1.74112 12.2589 0 10.1111 0ZM12.6389 10.1111C12.6346 11.5054 11.5054 12.6346 10.1111 12.6389H3.88889C2.49461 12.6346 1.36538 11.5054 1.36111 10.1111V3.88889C1.36538 2.49461 2.49461 1.36538 3.88889 1.36111H10.1111C11.5054 1.36538 12.6346 2.49461 12.6389 3.88889V10.1111ZM10.6944 4.08333C11.124 4.08333 11.4722 3.73511 11.4722 3.30556C11.4722 2.876 11.124 2.52778 10.6944 2.52778C10.2649 2.52778 9.91667 2.876 9.91667 3.30556C9.91667 3.73511 10.2649 4.08333 10.6944 4.08333ZM7 3.5C5.067 3.5 3.5 5.067 3.5 7C3.5 8.93301 5.067 10.5 7 10.5C8.93301 10.5 10.5 8.93301 10.5 7C10.5021 6.0711 10.134 5.17967 9.47715 4.52284C8.82031 3.86601 7.9289 3.49793 7 3.5ZM4.86111 7C4.86111 8.18129 5.81871 9.13889 7 9.13889C8.18129 9.13889 9.13889 8.18129 9.13889 7C9.13889 5.81871 8.18129 4.86111 7 4.86111C5.81871 4.86111 4.86111 5.81871 4.86111 7Z" fill="#2B1708"/>
|
||
</svg></div></a><a href="https://www.linkedin.com/company/cyclomedia/" target="_blank" class="footer_sm-link w-inline-block"><div class="footer_sm-link_icon w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="auto" viewBox="0 0 15.079 14.414">
|
||
<path id="_5282542_linkedin_network_social_network_linkedin_logo_icon" data-name="5282542_linkedin_network_social network_linkedin logo_icon" d="M16.489,28.725V19H13.256v9.725Zm11.656,0V23.148c0-2.987-1.595-4.377-3.722-4.377a3.211,3.211,0,0,0-2.913,1.606V19H18.278c.043.913,0,9.725,0,9.725H21.51V23.294a2.21,2.21,0,0,1,.107-.789,1.769,1.769,0,0,1,1.658-1.182c1.169,0,1.637.892,1.637,2.2v5.2h3.232ZM14.894,14.311a1.685,1.685,0,1,0-.043,3.361h.021a1.686,1.686,0,1,0,.022-3.361Z" transform="translate(-13.065 -14.311)" fill="#062E60" fill-rule="evenodd"/>
|
||
</svg></div></a><a href="https://x.com" target="_blank" class="footer_sm-link hide w-inline-block"><div class="footer_sm-link_icon w-embed"><svg width="14" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M11.0259 0H13.1726L8.48252 5.27131L14 12.4444H9.67991L6.29619 8.09402L2.42451 12.4444H0.276453L5.29291 6.80618L0 0H4.42979L7.48837 3.97648L11.0259 0ZM10.2723 11.1809H11.462L3.78343 1.19722H2.50693L10.2723 11.1809Z" fill="#2B1708"/>
|
||
</svg></div></a></div></div><div id="w-node-f4149cc4-8c76-c825-bad6-4fa7292d7f57-292d7f3e" class="footer_menu-grid"><div class="footer_menu is-1"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Industries</div></div><ul role="list" class="footer_menu-list w-list-unstyled"><li class="footer_menu-list_item"><a href="/industries/construction-and-engineering" class="footer_menu-link">Construction & Engineering</a></li><li class="footer_menu-list_item"><a href="/industries/government" class="footer_menu-link">Government</a></li><li class="footer_menu-list_item"><a href="/industries/insurance" class="footer_menu-link">Insurance</a></li><li class="footer_menu-list_item"><a href="/industries/transportation-us-infrastructure-eu" class="footer_menu-link">Infrastructure</a></li><li class="footer_menu-list_item"><a href="/industries/utilities-and-energy" class="footer_menu-link">Utilities & Energy</a></li><li class="footer_menu-list_item"><a href="/industries/telecommunications" class="footer_menu-link">Telecommunications</a></li></ul></div><div class="footer_menu is-1"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Use cases</div></div><ul role="list" class="footer_menu-list w-list-unstyled"><li class="footer_menu-list_item"><a href="/use-cases/asset-management" class="footer_menu-link">Asset Management</a></li><li class="footer_menu-list_item"><a href="/use-cases/pavement-and-surface" class="footer_menu-link">Pavement & Surface</a></li><li class="footer_menu-list_item"><a href="/use-cases/smart-city" class="footer_menu-link">Smart City</a></li><li class="footer_menu-list_item"><a href="/use-cases/tax-assessment" class="footer_menu-link">Tax Assessment</a></li><li class="footer_menu-list_item"><a href="/use-cases/pedestrian-safety" class="footer_menu-link">Pedestrian Safety</a></li><li class="footer_menu-list_item"><a href="/use-cases/road-safety" class="footer_menu-link">Road Safety</a></li></ul></div><div class="footer_menu is-1"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Products & technologies</div></div><ul role="list" class="footer_menu-list w-list-unstyled"><li class="footer_menu-list_item"><a href="/products/captured-data-landing" class="footer_menu-link">Captured Data</a></li><li class="footer_menu-list_item"><a href="/products/assets" class="footer_menu-link">Assets</a></li><li class="footer_menu-list_item"><a href="/products/street-smart" class="footer_menu-link">Street Smart</a></li><li class="footer_menu-list_item"><a href="/products/integrations-and-apis" class="footer_menu-link">Integrations & APIs</a></li></ul></div><div class="footer_menu is-1"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Resources</div></div><ul role="list" class="footer_menu-list w-list-unstyled"><li class="footer_menu-list_item"><a href="/resources/case-studies" class="footer_menu-link">Case Studies</a></li><li class="footer_menu-list_item"><a href="/resources/webinars-and-videos" class="footer_menu-link">Webinars & Videos</a></li><li class="footer_menu-list_item"><a href="/resources/news-and-blogs" class="footer_menu-link">News & Blog</a></li><li class="footer_menu-list_item"><a href="/resources/event-agenda" class="footer_menu-link">Event Agenda</a></li></ul></div><div class="footer_menu is-1"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Support</div></div><ul role="list" class="footer_menu-list w-list-unstyled"><li class="footer_menu-list_item"><a href="https://developer.cyclomedia.com/" target="_blank" class="footer_menu-link">Developer Portal</a></li><li class="footer_menu-list_item"><a href="/servicedesk-contact-streetsmart" class="footer_menu-link">Contact Support</a></li><li class="footer_menu-list_item"><a href="/support" class="footer_menu-link">Street Smart Support</a></li></ul></div><div class="footer_menu is-1"><div class="section_title-wrapper"><div class="section-title_dot"></div><div class="is-text-15-aeonik is-color-green">Company</div></div><ul role="list" class="footer_menu-list w-list-unstyled"><li class="footer_menu-list_item"><a href="/about" class="footer_menu-link">About Us</a></li><li class="footer_menu-list_item"><a href="/careers" class="footer_menu-link">Careers</a></li><li class="footer_menu-list_item"><a href="/?r=0" aria-current="page" class="footer_menu-link w--current">Driving Schedule</a></li><li class="footer_menu-list_item"><a href="/company#partners" class="footer_menu-link">Partners</a></li><li class="footer_menu-list_item"><a href="/leadership" class="footer_menu-link">Sustainability</a></li><li class="footer_menu-list_item"><a href="/leadership" class="footer_menu-link">Leadership Team</a></li></ul></div></div></div><div class="footer_flex"><div class="footer_text-wrapper"><img src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/6a1d62930c95635f99dd5042_Trusted%20Data.%20Powerful%20Insights..svg" loading="lazy" alt="Capture. Insight. Intelligence. Vision." class="footer_text-svg"/></div><ul role="list" class="footer_menu-list is-bottom w-list-unstyled"><li class="footer_menu-list_item"><div href="#" class="is-text-14 is-color-white is-footer-mobile-10">© <span class="year">2026</span> Cyclomedia</div></li><li class="footer_menu-list_item"><a href="/policy#terms" class="footer_menu-link w-inline-block"><div href="#" class="is-text-14 is-footer-mobile-10">Terms & conditions</div></a></li><li class="footer_menu-list_item"><a href="/policy#privacy" class="footer_menu-link w-inline-block"><div class="is-text-14 is-footer-mobile-10">Privacy</div></a></li><li class="footer_menu-list_item"><a href="/policy#cookies" class="footer_menu-link w-inline-block"><div class="is-text-14 is-footer-mobile-10">Cookies</div></a></li><li class="footer_menu-list_item is-impressum"><a href="/impressum" class="footer_menu-link w-inline-block"><div class="is-text-14 is-footer-mobile-10">Impressum</div></a></li></ul><div class="auto-date_code w-embed w-script"><script> let yearElements = document.getElementsByClassName('year'); [].slice.call(yearElements).forEach(function (div) { div.innerHTML = new Date().getFullYear(); });
|
||
</script></div><div class="footer_icons-block"><div class="footer_icon is-cards w-embed"><svg width="52" height="16" viewBox="0 0 52 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M2.22222 0C0.996528 0 0 0.996528 0 2.22222V13.7778C0 15.0035 0.996528 16 2.22222 16H20C21.2257 16 22.2222 15.0035 22.2222 13.7778V2.22222C22.2222 0.996528 21.2257 0 20 0H2.22222ZM13.1944 5.51389C13.8003 5.51389 14.4306 5.76389 14.4306 5.76389L14.2083 6.84722C14.2083 6.84722 13.7292 6.52778 13.3056 6.52778C12.6528 6.52778 12.4167 6.74132 12.4167 7.02778C12.4167 7.58854 14.2361 7.6875 14.2361 8.94444C14.2361 9.98958 12.9392 10.7083 12 10.7083C11.0608 10.7083 10.5694 10.4306 10.5694 10.4306L10.8056 9.375C10.8056 9.375 11.2969 9.66667 12.0556 9.66667C12.8125 9.66667 12.9167 9.34375 12.9167 9.20833C12.9167 8.40625 11.1111 8.63021 11.1111 7.06944C11.1111 6.2066 11.816 5.51389 13.1944 5.51389ZM7.31944 5.61111H8.72222L6.72222 10.5556H5.27778L4.22222 6.55556C4.22222 6.55556 5.3316 7.12153 6.01389 8.65278C6.0434 8.83854 6.125 9.13889 6.125 9.13889L7.31944 5.61111ZM9.23611 5.61111H10.5694L9.77778 10.5556H8.45833L9.23611 5.61111ZM16.3611 5.61111H17.7361L18.75 10.5556H17.5556L17.4167 9.84722H15.7778L15.5139 10.5556H14.2083L16.3611 5.61111ZM2.77778 5.625H4.80556C5.32292 5.625 5.51389 6.11111 5.51389 6.11111L5.95833 8.36111C5.35764 6.42361 2.77778 5.625 2.77778 5.625ZM16.8611 7.04167L16.1389 8.90278H17.2222L16.8611 7.04167Z" fill="#2B1708"/>
|
||
<path d="M27.581 0H50.3411C51.0915 0 51.6999 0.60836 51.6999 1.35881V14.6412C51.6999 15.3916 51.0915 16 50.3411 16H27.581C26.8305 16 26.2222 15.3916 26.2222 14.6412V1.35881C26.2222 0.60836 26.8305 0 27.581 0ZM33.7 14.3242V13.4801C33.7 13.1563 33.503 12.9454 33.1796 12.9454C33.0098 12.9454 32.828 13.0018 32.7013 13.1832C32.6028 13.0283 32.4635 12.9454 32.2512 12.9454C32.0909 12.9385 31.9378 13.0125 31.8436 13.1424V12.9726H31.5762V14.3232H31.8436V13.5504C31.8436 13.3126 31.9842 13.1988 32.1812 13.1988C32.3783 13.1988 32.4907 13.3255 32.4907 13.5504V14.3242H32.758V13.5504C32.758 13.3126 32.8987 13.1988 33.0957 13.1988C33.2927 13.1988 33.4052 13.3255 33.4052 13.5504V14.3242H33.7ZM38.0897 12.9875H37.5971V12.5799H37.3304V12.9875H37.0492V13.2253H37.3304V13.8599C37.3304 14.1693 37.4429 14.3524 37.7806 14.3524C37.9085 14.3498 38.0338 14.316 38.1457 14.2539L38.0611 14.0161C37.9852 14.0636 37.8972 14.088 37.8077 14.0865C37.6671 14.0865 37.5968 14.0019 37.5968 13.8612V13.2144H38.0893V12.9892L38.0897 12.9875ZM40.594 12.9454C40.4458 12.9421 40.3069 13.0169 40.2281 13.1424V12.9726H39.9608V14.3232H40.2281V13.5647C40.2281 13.3394 40.3406 13.1988 40.5237 13.1988C40.5854 13.2013 40.6467 13.2108 40.7064 13.227L40.791 12.9736C40.7265 12.9573 40.6605 12.9479 40.594 12.9454ZM36.8093 13.086C36.6687 12.9875 36.4717 12.9454 36.2607 12.9454C35.9231 12.9454 35.7121 13.1003 35.7121 13.3676C35.7121 13.5929 35.867 13.7192 36.1622 13.7617L36.3028 13.7756C36.4578 13.8038 36.5563 13.8602 36.5563 13.9305C36.5563 14.029 36.4438 14.1004 36.2325 14.1004C36.0712 14.1037 35.9132 14.0543 35.7824 13.9597L35.6418 14.1707C35.8388 14.3113 36.078 14.3406 36.2193 14.3406C36.6133 14.3406 36.8243 14.1578 36.8243 13.9044C36.8243 13.6666 36.6544 13.5528 36.3599 13.5103L36.2193 13.4964C36.0926 13.4825 35.9815 13.44 35.9815 13.3558C35.9815 13.2572 36.0939 13.1859 36.2488 13.1859C36.4187 13.1859 36.5865 13.2562 36.6711 13.2983L36.8093 13.086ZM40.8895 13.6489C40.8895 14.0566 41.1569 14.3524 41.593 14.3524C41.7901 14.3524 41.9307 14.3103 42.0713 14.1975L41.9307 13.9866C41.8311 14.0672 41.7072 14.1119 41.5791 14.1133C41.3413 14.1133 41.1569 13.9305 41.1569 13.6632C41.1569 13.3958 41.3389 13.2144 41.5791 13.2144C41.7072 13.2159 41.8311 13.2605 41.9307 13.3411L42.0713 13.1302C41.9307 13.0177 41.7901 12.9753 41.593 12.9753C41.1708 12.9471 40.8895 13.2426 40.8895 13.6506V13.6489ZM39.0042 12.9454C38.6101 12.9454 38.3428 13.2267 38.3428 13.6489C38.3428 14.0712 38.624 14.3524 39.032 14.3524C39.2305 14.3566 39.4243 14.2921 39.5806 14.1697L39.44 13.9727C39.327 14.0603 39.1889 14.1095 39.0459 14.1133C38.8632 14.1133 38.6662 14.0008 38.6383 13.7617H39.6374V13.6493C39.6374 13.227 39.384 12.9457 39.0042 12.9457V12.9454ZM38.9902 13.1988C39.1873 13.1988 39.3279 13.3255 39.3418 13.5365H38.6104C38.6526 13.3394 38.7803 13.1988 38.9902 13.1988ZM35.3462 13.6489V12.9736H35.0789V13.1434C34.9804 13.0167 34.8411 12.9464 34.6427 12.9464C34.2629 12.9464 33.9813 13.242 33.9813 13.6499C33.9813 14.0579 34.2626 14.3535 34.6427 14.3535C34.8397 14.3535 34.9804 14.2831 35.0789 14.1564V14.3263H35.3462V13.6489ZM34.2629 13.6489C34.2629 13.3955 34.4178 13.1988 34.6852 13.1988C34.9386 13.1988 35.0928 13.3958 35.0928 13.6489C35.0928 13.9163 34.923 14.099 34.6852 14.099C34.4178 14.113 34.2629 13.902 34.2629 13.6489ZM44.6606 12.9454C44.5124 12.9421 44.3735 13.0169 44.2947 13.1424V12.9726H44.0273V14.3232H44.2944V13.5647C44.2944 13.3394 44.4068 13.1988 44.5899 13.1988C44.6517 13.2013 44.713 13.2108 44.7727 13.227L44.8572 12.9736C44.7927 12.9573 44.7267 12.9479 44.6602 12.9454H44.6606ZM43.6194 13.6489V12.9736H43.352V13.1434C43.2535 13.0167 43.1142 12.9464 42.9158 12.9464C42.5361 12.9464 42.2544 13.242 42.2544 13.6499C42.2544 14.0579 42.5357 14.3535 42.9158 14.3535C43.1129 14.3535 43.2535 14.2831 43.352 14.1564V14.3263H43.6194V13.6489ZM42.5361 13.6489C42.5361 13.3955 42.691 13.1988 42.9583 13.1988C43.2117 13.1988 43.3659 13.3958 43.3659 13.6489C43.3659 13.9163 43.1961 14.099 42.9583 14.099C42.691 14.113 42.5361 13.902 42.5361 13.6489ZM46.3349 13.6489V12.4389H46.0676V13.1424C45.9691 13.0157 45.8298 12.9454 45.6314 12.9454C45.2516 12.9454 44.97 13.2409 44.97 13.6489C44.97 14.0569 45.2513 14.3524 45.6314 14.3524C45.8285 14.3524 45.9691 14.2821 46.0676 14.1554V14.3253H46.3349V13.6489ZM45.2516 13.6489C45.2516 13.3955 45.4065 13.1988 45.6739 13.1988C45.9273 13.1988 46.0815 13.3958 46.0815 13.6489C46.0815 13.9163 45.9117 14.099 45.6739 14.099C45.4062 14.1133 45.2513 13.9023 45.2513 13.6489H45.2516ZM45.4775 3.13002C43.7296 1.38115 40.9736 1.15214 38.961 2.58854C37.4175 1.48879 35.3889 1.34348 33.7044 2.212C32.0199 3.08051 30.9617 4.8173 30.9624 6.71253C30.9617 8.60775 32.0199 10.3445 33.7044 11.2131C35.3889 12.0816 37.4175 11.9363 38.961 10.8365C40.5045 11.9363 42.5331 12.0816 44.2176 11.2131C45.9021 10.3445 46.9603 8.60775 46.9597 6.71253C46.9637 5.36842 46.4299 4.07854 45.4772 3.13036L45.4775 3.13002ZM38.961 10.0348C38.0102 9.19265 37.4659 7.98338 37.4659 6.71321C37.4659 5.44304 38.0102 4.23377 38.961 3.39159C39.9112 4.23411 40.4551 5.44326 40.4551 6.71321C40.4551 7.98316 39.9112 9.1923 38.961 10.0348ZM36.0273 11.1423C33.5816 11.1423 31.599 9.1596 31.599 6.71389C31.599 4.26817 33.5816 2.28552 36.0273 2.28552C36.8851 2.2826 37.7246 2.53237 38.4413 3.00365C37.4133 3.96323 36.8296 5.30643 36.8296 6.7127C36.8296 8.11897 37.4133 9.46216 38.4413 10.4217C37.7249 10.8939 36.8853 11.1445 36.0273 11.1423ZM41.8947 11.1423C41.0377 11.1448 40.1989 10.895 39.4828 10.4241C40.5103 9.46405 41.0936 8.1208 41.0936 6.71457C41.0936 5.30833 40.5103 3.96508 39.4828 3.00501C40.1993 2.53325 41.0389 2.283 41.8967 2.28552C44.3425 2.28552 46.3251 4.26817 46.3251 6.71389C46.3251 9.1596 44.3425 11.1423 41.8967 11.1423H41.8947Z" fill="#2B1708"/>
|
||
</svg></div><div class="footer_icon is-pp w-embed"><svg width="61" height="16" viewBox="0 0 61 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M40.5173 0H35.8467C35.5274 0 35.2556 0.232375 35.2058 0.547667L33.317 12.5239C33.2796 12.7603 33.4621 12.9744 33.7016 12.9744H36.098C36.3213 12.9744 36.5121 12.8117 36.5465 12.5909L37.0824 9.19552C37.132 8.88002 37.4038 8.64785 37.7235 8.64785H39.2015C42.2778 8.64785 44.0533 7.15893 44.5174 4.20795C44.7263 2.9176 44.5258 1.9033 43.9215 1.19357C43.2573 0.412692 42.0799 0 40.5173 0ZM41.0563 4.37399C40.8011 6.05058 39.5208 6.05058 38.2821 6.05058H37.5779L38.072 2.92033C38.102 2.73141 38.2651 2.59203 38.4566 2.59203H38.7796C39.6226 2.59203 40.4193 2.59203 40.8296 3.07231C41.075 3.35947 41.1493 3.78539 41.0563 4.37399Z" fill="#2B1708"/>
|
||
<path d="M7.20531 0H2.53471C2.21543 0 1.94359 0.232375 1.89363 0.547667L0.00481435 12.5239C-0.0323405 12.7603 0.150285 12.9744 0.389588 12.9744H2.61972C2.939 12.9744 3.21084 12.742 3.2608 12.4265L3.77047 9.19552C3.82022 8.88002 4.09206 8.64785 4.41134 8.64785H5.88935C8.96586 8.64785 10.7413 7.15893 11.2054 4.20795C11.4143 2.9176 11.2138 1.9033 10.6097 1.19357C9.9449 0.412692 8.7677 0 7.20531 0ZM7.74416 4.37399C7.4889 6.05058 6.20842 6.05058 4.97014 6.05058H4.26545L4.75959 2.92033C4.78961 2.73141 4.9525 2.59203 5.14415 2.59203H5.46721C6.31023 2.59203 7.10665 2.59203 7.51703 3.07231C7.76263 3.35947 7.83694 3.78539 7.74416 4.37399Z" fill="#2B1708"/>
|
||
<path d="M21.1651 4.32069H18.9289C18.7374 4.32069 18.5743 4.46007 18.5443 4.64941L18.4458 5.27475L18.2895 5.04846C17.805 4.34504 16.7256 4.11035 15.6477 4.11035C13.177 4.11035 11.0661 5.98279 10.6553 8.60924C10.4414 9.91911 10.7449 11.1713 11.4878 12.0449C12.1702 12.8478 13.1442 13.182 14.3046 13.182C16.2961 13.182 17.4009 11.9024 17.4009 11.9024L17.301 12.5241C17.2634 12.7605 17.446 12.9746 17.6855 12.9746H19.6997C20.0189 12.9746 20.2906 12.7423 20.3405 12.427L21.5498 4.77074C21.5868 4.53417 21.4044 4.32069 21.1651 4.32069ZM18.0481 8.6739C17.8323 9.95186 16.8177 10.8096 15.5238 10.8096C14.8752 10.8096 14.3559 10.6009 14.0221 10.2061C13.6913 9.81436 13.5668 9.25662 13.6718 8.63527C13.8731 7.36886 14.904 6.48323 16.1781 6.48323C16.8131 6.48323 17.3289 6.69398 17.6692 7.0924C18.0117 7.49397 18.1463 8.05549 18.0481 8.6739Z" fill="#2B1708"/>
|
||
<path d="M54.4782 4.32069H52.2419C52.0503 4.32069 51.8872 4.46007 51.8574 4.64941L51.7587 5.27475L51.6025 5.04846C51.1178 4.34504 50.0387 4.11035 48.9608 4.11035C46.4899 4.11035 44.3792 5.98279 43.9686 8.60924C43.7545 9.91911 44.0584 11.1713 44.8011 12.0449C45.4835 12.8478 46.4577 13.182 47.6179 13.182C49.6094 13.182 50.7142 11.9024 50.7142 11.9024L50.6143 12.5241C50.5767 12.7605 50.7591 12.9746 50.9988 12.9746H53.013C53.3322 12.9746 53.6037 12.7423 53.6538 12.427L54.8629 4.77074C54.9003 4.53417 54.7175 4.32069 54.4782 4.32069ZM51.3616 8.6739C51.1456 9.95186 50.1312 10.8096 48.8373 10.8096C48.1883 10.8096 47.6694 10.6009 47.3354 10.2061C47.0048 9.81436 46.8801 9.25662 46.985 8.63527C47.1866 7.36886 48.217 6.48323 49.4912 6.48323C50.126 6.48323 50.6418 6.69398 50.9824 7.0924C51.3246 7.49397 51.4594 8.05549 51.3616 8.6739Z" fill="#2B1708"/>
|
||
<path d="M33.0772 4.32031H30.8292C30.6142 4.32031 30.4134 4.42716 30.2922 4.60475L27.1914 9.17186L25.8771 4.78338C25.7946 4.50861 25.5421 4.32031 25.2555 4.32031H23.0458C22.779 4.32031 22.5913 4.58271 22.6772 4.83544L25.1525 12.101L22.8243 15.3858C22.6415 15.6437 22.826 16.0004 23.1421 16.0004H25.3876C25.6006 16.0004 25.7999 15.8961 25.921 15.7212L33.3971 4.93158C33.5759 4.67339 33.391 4.32031 33.0772 4.32031Z" fill="#2B1708"/>
|
||
<path d="M57.1137 0.329494L55.1966 12.5249C55.1594 12.7613 55.3419 12.9752 55.5812 12.9752H57.5092C57.8285 12.9752 58.1003 12.7428 58.1505 12.4275L60.0406 0.451244C60.0779 0.214881 59.8955 0.000977507 59.656 0.000977507H57.4985C57.3067 0.000557678 57.1435 0.140151 57.1137 0.329494Z" fill="#2B1708"/>
|
||
</svg></div><div class="footer_icon is-transfer w-embed"><svg width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M7.64179 0H11.4627C15.0651 0 16.8662 0 17.9854 1.11911C18.7911 1.92488 19.0167 3.08425 19.0799 5.01493H0.0245649C0.0877342 3.08425 0.313344 1.92488 1.11911 1.11911C2.23823 0 4.03942 0 7.64179 0Z" fill="#2B1708"/>
|
||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.104 8.42271L18.7138 8.03249C17.8744 7.19315 16.5136 7.19315 15.6743 8.03249L14.9087 8.79804C14.6033 7.98307 13.8171 7.40299 12.8955 7.40299C11.7085 7.40299 10.7463 8.36524 10.7463 9.55224V11.2371C10.2783 11.2891 9.82416 11.4945 9.46532 11.8534C8.62599 12.6927 8.62599 14.0536 9.46532 14.8929L9.85602 15.2836H7.64179C4.03942 15.2836 2.23823 15.2836 1.11911 14.1645C0 13.0454 0 11.2442 0 7.64179C0 7.21965 0 6.82224 0.00180088 6.44776H19.1027C19.1045 6.82224 19.1045 7.21965 19.1045 7.64179C19.1045 7.91208 19.1045 8.17223 19.104 8.42271ZM3.8209 10.7463C3.42523 10.7463 3.10448 11.067 3.10448 11.4627C3.10448 11.8584 3.42523 12.1791 3.8209 12.1791H7.64179C8.03746 12.1791 8.35821 11.8584 8.35821 11.4627C8.35821 11.067 8.03746 10.7463 7.64179 10.7463H3.8209Z" fill="#2B1708"/>
|
||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.8955 8.83582C13.2912 8.83582 13.6119 9.15657 13.6119 9.55224V13.554L14.2994 12.8665C14.5792 12.5868 15.0328 12.5868 15.3126 12.8665C15.5923 13.1463 15.5923 13.5999 15.3126 13.8797L13.4021 15.7902C13.1223 16.0699 12.6687 16.0699 12.3889 15.7902L10.4785 13.8797C10.1987 13.5999 10.1987 13.1463 10.4785 12.8665C10.7583 12.5868 11.2119 12.5868 11.4917 12.8665L12.1791 13.554V9.55224C12.1791 9.15657 12.4999 8.83582 12.8955 8.83582ZM16.6874 9.04566C16.9672 8.76588 17.4208 8.76588 17.7006 9.04566L19.6111 10.9561C19.8908 11.2359 19.8908 11.6895 19.6111 11.9693C19.3313 12.249 18.8777 12.249 18.5979 11.9693L17.9104 11.2818V15.2836C17.9104 15.6792 17.5897 16 17.194 16C16.7984 16 16.4776 15.6792 16.4776 15.2836V11.2818L15.7902 11.9693C15.5104 12.249 15.0568 12.249 14.777 11.9693C14.4972 11.6895 14.4972 11.2359 14.777 10.9561L16.6874 9.04566Z" fill="#2B1708"/>
|
||
</svg></div></div></div></div></div></footer></section><div class="nav-combo-class-trigger"></div><div class="loader-overlay"><div class="loader-content"><div class="loader_spinner-embed" data-w-id="f25dd4ff-c890-6924-09bd-203818245fb2" data-animation-type="lottie" data-src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/69d78a498f653eee8cb3828d_Cyclomedia-logo-icon-load.json" data-loop="1" data-direction="1" data-autoplay="1" data-is-ix2-target="0" data-renderer="svg" data-default-duration="0" data-duration="5" data-loading="eager"></div><div class="loader-percent">0%</div></div></div></div></div><div class="custom-code_script-bg-color w-embed w-script"><script>
|
||
// ============================================================================
|
||
// BACKGROUND COLOR CHANGE ON SCROLL
|
||
// Works with horizontal scroll pin — uses refreshPriority to recalc AFTER pin
|
||
// ============================================================================
|
||
window.Webflow ||= [];
|
||
window.Webflow.push(() => {
|
||
if (typeof gsap === "undefined" || typeof ScrollTrigger === "undefined") {
|
||
console.warn("[BG Color Change] GSAP or ScrollTrigger not loaded");
|
||
return;
|
||
}
|
||
gsap.registerPlugin(ScrollTrigger);
|
||
|
||
let scrollTriggerInstance = null;
|
||
|
||
function initBgColorChange() {
|
||
if (scrollTriggerInstance) {
|
||
scrollTriggerInstance.kill();
|
||
scrollTriggerInstance = null;
|
||
}
|
||
|
||
const wrapper = document.querySelector(".bg-color-wrapper");
|
||
const trigger = document.querySelector(".bg-color-trigger");
|
||
if (!wrapper || !trigger) {
|
||
console.warn("[BG Color Change] Missing .bg-color-wrapper or .bg-color-trigger");
|
||
return;
|
||
}
|
||
|
||
scrollTriggerInstance = ScrollTrigger.create({
|
||
trigger: trigger,
|
||
start: "top bottom",
|
||
end: "bottom bottom",
|
||
toggleClass: {
|
||
targets: wrapper,
|
||
className: "is-dark-mode",
|
||
},
|
||
invalidateOnRefresh: true,
|
||
refreshPriority: -1, // recalc AFTER horizontal scroll pin
|
||
});
|
||
|
||
console.log("[BG Color Change] Initialized");
|
||
}
|
||
|
||
initBgColorChange();
|
||
|
||
// Refresh gdy wszystko (obrazki, fonty, layout) gotowe
|
||
if (document.readyState === "complete") {
|
||
ScrollTrigger.refresh();
|
||
} else {
|
||
window.addEventListener("load", () => ScrollTrigger.refresh(), { once: true });
|
||
}
|
||
|
||
// Debounced resize
|
||
let resizeTimer;
|
||
window.addEventListener("resize", () => {
|
||
clearTimeout(resizeTimer);
|
||
resizeTimer = setTimeout(() => ScrollTrigger.refresh(), 250);
|
||
});
|
||
});
|
||
</script></div><div class="custom-code_script w-embed w-script"><script>
|
||
gsap.registerPlugin(ScrollTrigger);
|
||
|
||
(() => {
|
||
const SEL = {
|
||
parent: ".sticky-parent",
|
||
child: ".sticky-child",
|
||
list: ".home-benefit_list",
|
||
};
|
||
const BREAKPOINT = "(min-width: 991px)";
|
||
const END_BUFFER = 100;
|
||
|
||
const waitForAssets = async () => {
|
||
const imgs = [...document.querySelectorAll("img")];
|
||
const imgP = imgs.map(img =>
|
||
img.complete && img.naturalWidth !== 0
|
||
? Promise.resolve()
|
||
: new Promise(res => {
|
||
img.addEventListener("load", res, { once: true });
|
||
img.addEventListener("error", res, { once: true });
|
||
})
|
||
);
|
||
await Promise.all([...imgP, document.fonts?.ready ?? Promise.resolve()]);
|
||
};
|
||
|
||
const setup = () => {
|
||
const parent = document.querySelector(SEL.parent);
|
||
const child = document.querySelector(SEL.child);
|
||
const list = document.querySelector(SEL.list);
|
||
if (!parent || !child || !list) return;
|
||
|
||
const mm = gsap.matchMedia();
|
||
|
||
mm.add(BREAKPOINT, () => {
|
||
const getDistance = () => Math.max(0, list.scrollWidth - child.offsetWidth);
|
||
|
||
// Wysokość parenta = okno + dystans poziomy + bufor
|
||
const setParentHeight = () => {
|
||
const d = getDistance();
|
||
parent.style.height = `${window.innerHeight + d + END_BUFFER}px`;
|
||
};
|
||
setParentHeight();
|
||
|
||
const tween = gsap.to(list, {
|
||
x: () => -getDistance(),
|
||
ease: "none",
|
||
scrollTrigger: {
|
||
trigger: parent,
|
||
start: "top top",
|
||
end: "bottom bottom",
|
||
scrub: 1,
|
||
invalidateOnRefresh: true,
|
||
// markers: true,
|
||
},
|
||
});
|
||
|
||
// Każda zmiana rozmiaru listy lub okna → przelicz wysokość i refresh
|
||
const ro = new ResizeObserver(() => {
|
||
setParentHeight();
|
||
ScrollTrigger.refresh();
|
||
});
|
||
ro.observe(list);
|
||
ro.observe(child);
|
||
|
||
return () => {
|
||
ro.disconnect();
|
||
tween.scrollTrigger?.kill();
|
||
tween.kill();
|
||
gsap.set(list, { clearProps: "all" });
|
||
parent.style.height = "";
|
||
};
|
||
});
|
||
|
||
// Pierwszy refresh dopiero gdy obrazki i fonty są gotowe
|
||
waitForAssets().then(() => ScrollTrigger.refresh());
|
||
|
||
// Ignoruj zmianę wysokości viewportu (pasek adresu na mobile)
|
||
let t, lastW = window.innerWidth;
|
||
window.addEventListener("resize", () => {
|
||
clearTimeout(t);
|
||
t = setTimeout(() => {
|
||
if (window.innerWidth === lastW) return;
|
||
lastW = window.innerWidth;
|
||
ScrollTrigger.refresh();
|
||
}, 200);
|
||
});
|
||
};
|
||
|
||
if (document.readyState === "loading") {
|
||
document.addEventListener("DOMContentLoaded", setup, { once: true });
|
||
} else {
|
||
setup();
|
||
}
|
||
})();
|
||
</script></div><div class="custom-code_script w-embed w-script"><script>
|
||
// ─── Home Products Item — scroll reveal (only inside .grid-sticky_right) ──────
|
||
(function () {
|
||
document.addEventListener('DOMContentLoaded', function () {
|
||
const items = document.querySelectorAll('.grid-sticky_right .home-products_item');
|
||
if (!items.length) return;
|
||
|
||
items.forEach(function (item) {
|
||
gsap.fromTo(item,
|
||
{
|
||
opacity: 0,
|
||
scale: 0.85,
|
||
},
|
||
{
|
||
opacity: 1,
|
||
scale: 1,
|
||
ease: 'power2.out',
|
||
scrollTrigger: {
|
||
trigger: item,
|
||
start: 'top bottom',
|
||
end: 'bottom bottom',
|
||
scrub: true,
|
||
}
|
||
}
|
||
);
|
||
});
|
||
});
|
||
})();
|
||
</script></div><div class="custom-code_script w-embed w-script"><script>
|
||
// --- Set loader to 20% immediately so user never sees "0%" before window.load fires ---
|
||
(function setInitialLoader() {
|
||
const setIt = () => {
|
||
const el = document.querySelector(".loader-percent");
|
||
if (el) el.textContent = "20%";
|
||
};
|
||
if (document.readyState === "loading") {
|
||
document.addEventListener("DOMContentLoaded", setIt);
|
||
} else {
|
||
setIt();
|
||
}
|
||
})();
|
||
|
||
window.addEventListener("load", () => {
|
||
gsap.registerPlugin(ScrollTrigger);
|
||
|
||
// ============================================================
|
||
// KONFIGURACJA — desktop vs mobile
|
||
// ============================================================
|
||
const IS_PORTRAIT = window.matchMedia("(orientation: portrait)").matches;
|
||
|
||
const CONFIG = IS_PORTRAIT ? {
|
||
baseURL: "https://cyclomedia.fra1.cdn.digitaloceanspaces.com/hero-frames-mobile/frame_",
|
||
frameCount: 1534,
|
||
triggers: { intro: 21, h1_1: 324, h1_2: 783, h1_3: 1123 },
|
||
} : {
|
||
baseURL: "https://cyclomedia.fra1.cdn.digitaloceanspaces.com/hero-frames/frame_",
|
||
frameCount: 1469,
|
||
triggers: { intro: 20, h1_1: 310, h1_2: 750, h1_3: 1075 },
|
||
};
|
||
|
||
const { baseURL, frameCount } = CONFIG;
|
||
const { intro: FR_INTRO, h1_1: FR_H1_1, h1_2: FR_H1_2, h1_3: FR_H1_3 } = CONFIG.triggers;
|
||
|
||
const pad = (n) => String(n).padStart(4, "0");
|
||
const frameSrc = (i) => `${baseURL}${pad(i + 1)}.webp`;
|
||
|
||
// ============================================================
|
||
// DOM
|
||
// ============================================================
|
||
const canvas = document.getElementById("sequence-canvas");
|
||
const ctx = canvas.getContext("2d");
|
||
canvas.width = IS_PORTRAIT ? 1080 : 1920;
|
||
canvas.height = IS_PORTRAIT ? 1920 : 1080;
|
||
|
||
const loaderOverlay = document.querySelector(".loader-overlay");
|
||
const loaderPercent = document.querySelector(".loader-percent");
|
||
const h1Elements = document.querySelectorAll(".home-hero_h1-wrapper h1");
|
||
const subtext = document.querySelector(".home-hero_subtext");
|
||
|
||
document.body.style.overflow = "hidden";
|
||
|
||
// ============================================================
|
||
// LOADER PROGRESS
|
||
// ============================================================
|
||
const progressTracker = { val: 20, target: 20 };
|
||
let highestPercent = 20;
|
||
if (loaderPercent) loaderPercent.textContent = "20%";
|
||
|
||
function updateLoaderPercent(newPercentage) {
|
||
if (newPercentage < highestPercent) return;
|
||
highestPercent = newPercentage;
|
||
progressTracker.target = newPercentage;
|
||
}
|
||
|
||
function tickProgress() {
|
||
if (progressTracker.val < progressTracker.target) {
|
||
const diff = progressTracker.target - progressTracker.val;
|
||
progressTracker.val = Math.min(
|
||
progressTracker.target,
|
||
progressTracker.val + Math.max(diff * 0.08, 0.6)
|
||
);
|
||
if (loaderPercent) {
|
||
loaderPercent.textContent = Math.round(progressTracker.val) + "%";
|
||
}
|
||
}
|
||
}
|
||
gsap.ticker.add(tickProgress);
|
||
|
||
function hideLoaderAndStart() {
|
||
const waitForCounter = () => {
|
||
if (Math.round(progressTracker.val) >= 100) {
|
||
gsap.ticker.remove(tickProgress);
|
||
gsap.to(loaderOverlay, {
|
||
opacity: 0,
|
||
duration: 0.5,
|
||
delay: 0.3,
|
||
onComplete: () => {
|
||
if (loaderOverlay) loaderOverlay.style.display = "none";
|
||
document.body.style.overflow = "";
|
||
initScrollAnimations();
|
||
fillInRemainingFrames();
|
||
},
|
||
});
|
||
} else {
|
||
requestAnimationFrame(waitForCounter);
|
||
}
|
||
};
|
||
waitForCounter();
|
||
}
|
||
|
||
// ============================================================
|
||
// PRELOAD — priority batch (co 10 klatka) + background fill-in
|
||
// ============================================================
|
||
const images = new Array(frameCount);
|
||
const seq = { frame: 0 };
|
||
|
||
function drawFrame(index) {
|
||
const img = images[index];
|
||
if (!img || !img.complete || img.naturalWidth === 0) return;
|
||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
|
||
}
|
||
|
||
// FAZA 1: co 10 klatka (low-res scrub ready)
|
||
function preloadPriority() {
|
||
return new Promise((resolve) => {
|
||
const priorityIndexes = [];
|
||
for (let i = 0; i < frameCount; i += 10) priorityIndexes.push(i);
|
||
if (priorityIndexes[priorityIndexes.length - 1] !== frameCount - 1) {
|
||
priorityIndexes.push(frameCount - 1);
|
||
}
|
||
|
||
let loaded = 0;
|
||
const total = priorityIndexes.length;
|
||
|
||
priorityIndexes.forEach((idx) => {
|
||
const img = new Image();
|
||
img.decoding = "async";
|
||
img.onload = img.onerror = () => {
|
||
loaded++;
|
||
updateLoaderPercent(Math.round((loaded / total) * 100));
|
||
if (idx === 0 && img.complete) drawFrame(0);
|
||
if (loaded === total) resolve();
|
||
};
|
||
img.src = frameSrc(idx);
|
||
images[idx] = img;
|
||
});
|
||
});
|
||
}
|
||
|
||
// FAZA 2: uzupełnienie pozostałych klatek batched (nie blokuje scrollu)
|
||
async function fillInRemainingFrames() {
|
||
const batchSize = 20;
|
||
for (let i = 0; i < frameCount; i += batchSize) {
|
||
const batch = [];
|
||
for (let j = i; j < Math.min(i + batchSize, frameCount); j++) {
|
||
if (images[j]) continue;
|
||
const img = new Image();
|
||
img.decoding = "async";
|
||
img.src = frameSrc(j);
|
||
images[j] = img;
|
||
batch.push(new Promise((res) => { img.onload = img.onerror = res; }));
|
||
}
|
||
if (batch.length) await Promise.all(batch);
|
||
}
|
||
}
|
||
|
||
// ============================================================
|
||
// H1 LOGIKA
|
||
// ============================================================
|
||
function setAllH1Active() {
|
||
h1Elements.forEach((el) => el.classList.add("is-active"));
|
||
}
|
||
|
||
function setActiveH1(index) {
|
||
h1Elements.forEach((el, i) => {
|
||
el.classList.toggle("is-active", i === index);
|
||
});
|
||
}
|
||
|
||
// ============================================================
|
||
// SCROLL ANIMATIONS
|
||
// ============================================================
|
||
function initScrollAnimations() {
|
||
setAllH1Active();
|
||
|
||
let introSwitched = false;
|
||
let currentH1 = -1;
|
||
|
||
const wrapper = document.getElementById("sequence-wrapper");
|
||
const section = wrapper.parentElement;
|
||
|
||
gsap.to(seq, {
|
||
frame: frameCount - 1,
|
||
snap: "frame",
|
||
ease: "none",
|
||
scrollTrigger: {
|
||
trigger: section,
|
||
start: "top top",
|
||
end: "bottom bottom",
|
||
scrub: 0.5,
|
||
invalidateOnRefresh: true,
|
||
},
|
||
onUpdate: function () {
|
||
const frame = Math.round(seq.frame);
|
||
drawFrame(frame);
|
||
|
||
// --- intro switch (subtext fade) ---
|
||
if (frame >= FR_INTRO && !introSwitched) {
|
||
introSwitched = true;
|
||
if (subtext) {
|
||
gsap.to(subtext, {
|
||
opacity: 0,
|
||
height: 0,
|
||
duration: 0.6,
|
||
ease: "power2.out",
|
||
overflow: "hidden",
|
||
});
|
||
}
|
||
}
|
||
if (frame < FR_INTRO && introSwitched) {
|
||
introSwitched = false;
|
||
if (subtext) {
|
||
gsap.to(subtext, {
|
||
opacity: 1,
|
||
height: "auto",
|
||
duration: 0.6,
|
||
ease: "power2.out",
|
||
});
|
||
}
|
||
}
|
||
|
||
// --- H1 switching ---
|
||
let targetH1 = -1; // -1 = all active (intro)
|
||
if (frame >= FR_H1_3) targetH1 = 3;
|
||
else if (frame >= FR_H1_2) targetH1 = 2;
|
||
else if (frame >= FR_H1_1) targetH1 = 1;
|
||
else if (frame >= FR_INTRO) targetH1 = 0;
|
||
|
||
if (targetH1 !== currentH1) {
|
||
currentH1 = targetH1;
|
||
if (targetH1 === -1) setAllH1Active();
|
||
else setActiveH1(targetH1);
|
||
}
|
||
},
|
||
});
|
||
|
||
// Hide scroll hint once user starts scrolling
|
||
const scrollLottie = document.querySelector(".home-hero_scroll-lottie");
|
||
if (scrollLottie) {
|
||
gsap.to(scrollLottie, {
|
||
opacity: 0,
|
||
duration: 0.3,
|
||
ease: "power2.out",
|
||
scrollTrigger: {
|
||
trigger: section,
|
||
start: "top+=50 top",
|
||
toggleActions: "play none none reverse",
|
||
},
|
||
});
|
||
}
|
||
|
||
setTimeout(() => ScrollTrigger.refresh(), 500);
|
||
}
|
||
|
||
// ============================================================
|
||
// START
|
||
// ============================================================
|
||
updateLoaderPercent(30);
|
||
preloadPriority().then(() => {
|
||
updateLoaderPercent(100);
|
||
hideLoaderAndStart();
|
||
});
|
||
});
|
||
</script></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=69bd3518dd960ca00ae76dcc" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/js/webflow.schunk.36b8fb49256177c8.js" type="text/javascript" integrity="sha384-4abIlA5/v7XaW1HMXKBgnUuhnjBYJ/Z9C1OSg4OhmVw9O3QeHJ/qJqFBERCDPv7G" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/js/webflow.schunk.c42549641b7d4501.js" type="text/javascript" integrity="sha384-EeGd0MuCSKO1a60JtC5HSnHq/C4KrtHuH4qImMGUQIlIox5ZJ0y/b+zo9WWvnaty" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/js/webflow.schunk.ba833f0a243cb853.js" type="text/javascript" integrity="sha384-MjMjzbkwNRjedQkP1kK+0SG5kk1WAV0hmxq/o/r3RGxmtJiyC/peZTH4k1Y+XvJE" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc/js/webflow.a8f59458.cd3d2ea3bb427635.js" type="text/javascript" integrity="sha384-yZd/4QFKroVaJRS4VJSgYk0w7SG9ZXkf/bPPQvSdC215IVYwiOr1YwOUPXQSdkwH" crossorigin="anonymous"></script><script>
|
||
(function () {
|
||
const WRAPPER_SELECTOR = '.navbar_menu-list-wrappr';
|
||
const CTA_SELECTOR = '.navbar_menu-link-item.is-nav-cta';
|
||
const DESKTOP_BREAKPOINT = 992;
|
||
const EXTRA_GAP = 0;
|
||
|
||
const wrapper = document.querySelector(WRAPPER_SELECTOR);
|
||
const cta = document.querySelector(CTA_SELECTOR);
|
||
if (!wrapper || !cta) return;
|
||
|
||
let lastValue = -1;
|
||
let scheduled = false;
|
||
|
||
function compute() {
|
||
scheduled = false;
|
||
|
||
if (window.innerWidth < DESKTOP_BREAKPOINT) {
|
||
if (lastValue !== 0) {
|
||
wrapper.style.paddingRight = '';
|
||
lastValue = 0;
|
||
}
|
||
return;
|
||
}
|
||
|
||
const w = Math.round(cta.getBoundingClientRect().width + EXTRA_GAP);
|
||
if (w !== lastValue) {
|
||
wrapper.style.paddingRight = w + 'px';
|
||
lastValue = w;
|
||
}
|
||
}
|
||
|
||
function schedule() {
|
||
if (scheduled) return;
|
||
scheduled = true;
|
||
requestAnimationFrame(compute);
|
||
}
|
||
|
||
if (document.fonts && document.fonts.ready) {
|
||
document.fonts.ready.then(schedule);
|
||
}
|
||
schedule();
|
||
|
||
window.addEventListener('resize', schedule, { passive: true });
|
||
window.addEventListener('load', schedule);
|
||
|
||
if (window.ResizeObserver) {
|
||
new ResizeObserver(schedule).observe(cta);
|
||
}
|
||
})();
|
||
</script>
|
||
<script>
|
||
window.Webflow ||= [];
|
||
window.Webflow.push(() => {
|
||
if (typeof gsap === "undefined" || typeof ScrollTrigger === "undefined" || typeof SplitText === "undefined") {
|
||
console.warn("[Highlight Text] GSAP, ScrollTrigger, or SplitText not loaded");
|
||
return;
|
||
}
|
||
gsap.registerPlugin(ScrollTrigger, SplitText);
|
||
|
||
const splitInstances = [];
|
||
|
||
function initHighlightText() {
|
||
splitInstances.forEach(s => s?.revert());
|
||
splitInstances.length = 0;
|
||
|
||
const targets = document.querySelectorAll("[data-highlight-text]");
|
||
if (targets.length === 0) return;
|
||
|
||
targets.forEach((heading) => {
|
||
const scrollStart = heading.getAttribute("data-highlight-scroll-start") || "top 90%";
|
||
const scrollEnd = heading.getAttribute("data-highlight-scroll-end") || "center 40%";
|
||
const fadedValue = parseFloat(heading.getAttribute("data-highlight-fade") || "0.2");
|
||
const staggerValue = parseFloat(heading.getAttribute("data-highlight-stagger") || "0.1");
|
||
|
||
const split = new SplitText(heading, {
|
||
type: "words, chars",
|
||
autoSplit: true,
|
||
onSplit(self) {
|
||
return gsap.context(() => {
|
||
gsap.set(self.chars, { opacity: fadedValue });
|
||
|
||
gsap.timeline({
|
||
scrollTrigger: {
|
||
trigger: heading,
|
||
start: scrollStart,
|
||
end: scrollEnd,
|
||
scrub: true,
|
||
invalidateOnRefresh: true,
|
||
}
|
||
}).to(self.chars, {
|
||
opacity: 1,
|
||
stagger: staggerValue,
|
||
ease: "linear",
|
||
});
|
||
});
|
||
}
|
||
});
|
||
|
||
splitInstances.push(split);
|
||
});
|
||
}
|
||
|
||
// Init od razu — ScrollTrigger sam recalculate przy ładowaniu lazy obrazków (invalidateOnRefresh)
|
||
initHighlightText();
|
||
|
||
// Refresh ScrollTrigger gdy reszta strony (obrazki, fonty) kończy ładować
|
||
window.addEventListener("load", () => ScrollTrigger.refresh());
|
||
});
|
||
</script>
|
||
<script>
|
||
// ─── Dropdown logic ───────────────────────────────────────────────────────────
|
||
function closeAllDropdowns() {
|
||
document.querySelectorAll('.navbar_menu-link-item.is-open').forEach(item => {
|
||
item.classList.remove('is-open');
|
||
});
|
||
}
|
||
document.querySelectorAll('.navbar_menu-link-item').forEach(trigger => {
|
||
trigger.addEventListener('click', function () {
|
||
const wasOpen = this.classList.contains('is-open');
|
||
const isSearch = this.classList.contains('is-search');
|
||
document.querySelectorAll('.navbar_menu-link-item.is-open').forEach(other => {
|
||
if (other !== this) other.classList.remove('is-open');
|
||
});
|
||
if (isSearch && wasOpen) return;
|
||
if (wasOpen) {
|
||
this.classList.remove('is-open');
|
||
} else {
|
||
this.classList.add('is-open');
|
||
}
|
||
});
|
||
});
|
||
document.querySelectorAll('.nav_search-close').forEach(closeBtn => {
|
||
closeBtn.addEventListener('click', function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation(); // ← added
|
||
document.querySelectorAll('.navbar_menu-link-item.is-search.is-open').forEach(item => {
|
||
item.classList.remove('is-open');
|
||
});
|
||
});
|
||
});
|
||
document.addEventListener('click', function (e) {
|
||
if (!e.target.closest('.navbar_menu-link-item')) {
|
||
closeAllDropdowns();
|
||
}
|
||
});
|
||
// ─── Hide/show navbar on scroll + combo class ─────────────────────────────────
|
||
$(document).ready(function () {
|
||
let lastScrollY = $(window).scrollTop();
|
||
const $nav = $('.nav');
|
||
const SCROLL_THRESHOLD = 8; // px of scroll before reacting (avoids micro-jitter)
|
||
function handleScroll() {
|
||
const currentScrollY = $(window).scrollTop();
|
||
const delta = currentScrollY - lastScrollY;
|
||
// ── Combo class (your existing logic) ──
|
||
const triggerTop = $('.nav-combo-class-trigger').offset().top;
|
||
if (currentScrollY >= triggerTop) {
|
||
$nav.addClass('is-scroll');
|
||
} else {
|
||
$nav.removeClass('is-scroll');
|
||
}
|
||
// ── Hide / show ──
|
||
if (Math.abs(delta) < SCROLL_THRESHOLD) return; // ignore tiny movements
|
||
if (delta > 0 && currentScrollY > 80) {
|
||
// Scrolling DOWN and past 80px from top → hide
|
||
closeAllDropdowns();
|
||
$nav.addClass('is-hidden');
|
||
} else {
|
||
// Scrolling UP → show
|
||
$nav.removeClass('is-hidden');
|
||
}
|
||
lastScrollY = currentScrollY;
|
||
}
|
||
$(window).on('scroll resize', handleScroll);
|
||
handleScroll(); // run once on load
|
||
});
|
||
// ─── Nav blur overlay ─────────────────────────────────────────────────────────
|
||
(function () {
|
||
const overlay = document.querySelector('.nav_blur-overlay');
|
||
if (!overlay) return;
|
||
|
||
// Upewnij się że overlay startuje jako ukryty
|
||
overlay.style.display = 'none';
|
||
overlay.style.opacity = '0';
|
||
overlay.style.transition = 'opacity 0.5s ease';
|
||
|
||
function updateOverlay() {
|
||
const anyOpen = document.querySelector('.navbar_menu-link-item.is-open');
|
||
if (anyOpen) {
|
||
overlay.style.display = 'block';
|
||
// Wymuś reflow żeby transition zadziałał po display:block
|
||
overlay.getBoundingClientRect();
|
||
overlay.style.opacity = '1';
|
||
} else {
|
||
overlay.style.opacity = '0';
|
||
overlay.addEventListener('transitionend', function hide() {
|
||
if (overlay.style.opacity === '0') {
|
||
overlay.style.display = 'none';
|
||
}
|
||
overlay.removeEventListener('transitionend', hide);
|
||
});
|
||
}
|
||
}
|
||
|
||
// Podpięcie pod istniejący MutationObserver na .navbar_menu-link-item
|
||
const navItems = document.querySelectorAll('.navbar_menu-link-item');
|
||
const observer = new MutationObserver(updateOverlay);
|
||
navItems.forEach(item => {
|
||
observer.observe(item, { attributes: true, attributeFilter: ['class'] });
|
||
});
|
||
})();
|
||
</script>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
document.querySelectorAll('.video-image_lightbox').forEach(link => {
|
||
const json = link.querySelector('.w-json');
|
||
if (!json) return;
|
||
try {
|
||
const data = JSON.parse(json.textContent);
|
||
if (data.items?.length > 0) link.classList.add('has-video');
|
||
} catch (e) {}
|
||
});
|
||
});
|
||
</script>
|
||
|
||
<!-- Google Tag Manager (noscript) -->
|
||
<noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-K2VSP89
|
||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||
<!-- End Google Tag Manager (noscript) --><!-- Slider on mobile -->
|
||
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
|
||
<script>
|
||
$(document).ready(function () {
|
||
let windowWidth = window.innerWidth;
|
||
let swipers = [];
|
||
|
||
function initSwipers() {
|
||
$(".is-mobile-swiper-component").each(function (index) {
|
||
if (window.innerWidth < 991) {
|
||
const alreadyInit = $(this).data("swiper-initialized");
|
||
|
||
if (!alreadyInit) {
|
||
const loopMode = $(this).attr("loop-mode") === "true";
|
||
const sliderDurationAttr = $(this).attr("slider-duration");
|
||
const sliderDuration = sliderDurationAttr !== undefined ? +sliderDurationAttr : 500;
|
||
|
||
const swiperEl = $(this).find(".swiper")[0];
|
||
const paginationEl = $(this).find(".swiper_nav-wrapper")[0];
|
||
const nextEl = $(this).find(".swiper-next")[0];
|
||
const prevEl = $(this).find(".swiper-prev")[0];
|
||
|
||
if (!swiperEl) return;
|
||
|
||
const swiper = new Swiper(swiperEl, {
|
||
speed: sliderDuration,
|
||
loop: loopMode,
|
||
autoHeight: false,
|
||
centeredSlides: loopMode,
|
||
followFinger: false,
|
||
freeMode: false,
|
||
slideToClickedSlide: false,
|
||
slidesPerView: "auto",
|
||
spaceBetween: 20,
|
||
rewind: false,
|
||
mousewheel: { forceToAxis: true },
|
||
pagination: paginationEl ? {
|
||
el: paginationEl,
|
||
bulletActiveClass: "is-active",
|
||
bulletClass: "swiper-bullet",
|
||
bulletElement: "button",
|
||
clickable: true,
|
||
} : false,
|
||
navigation: (nextEl && prevEl) ? {
|
||
nextEl: nextEl,
|
||
prevEl: prevEl,
|
||
disabledClass: "is-disabled",
|
||
} : false,
|
||
});
|
||
|
||
$(this).data("swiper-initialized", true);
|
||
swipers.push(swiper);
|
||
}
|
||
} else {
|
||
if ($(this).data("swiper-initialized")) {
|
||
const swiperInstance = $(this).find(".swiper")[0]?.swiper;
|
||
if (swiperInstance) swiperInstance.destroy(true, true);
|
||
$(this).data("swiper-initialized", false);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
initSwipers();
|
||
|
||
$(window).on("resize", function () {
|
||
const currentWidth = window.innerWidth;
|
||
if (currentWidth !== windowWidth) {
|
||
windowWidth = currentWidth;
|
||
initSwipers();
|
||
}
|
||
});
|
||
});
|
||
</script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc%2F689e5ba67671442434f3ca35%2F69cccf7f26dd173ba6459e0d%2Ffilter_dropdown_logic-1.0.0.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/69bd3518dd960ca00ae76dcc%2F689e5ba67671442434f3ca35%2F69cce59c74ae3a34655cb950%2Fpolicy_tabs_logic-1.0.0.js" type="text/javascript"></script></body></html> |