[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"node-by-slug-\u002Fen\u002Finsights\u002Faccelerate-time-to-market-with-an-automated-augmented-reality-model-en":3,"related-content-view-5802-en":537},["Reactive",4],{"entity":5,"errors":-1},{"__typename":6,"status":7,"metatag":8,"id":202,"path":203,"hideNavigation":204,"title":205,"translations":206,"sharedHeaderRefMedia":214,"sharedTeaserTitle":242,"sharedTeaserText":243,"sharedTeaserRefMedia":245,"sharedParagraphs":247,"sharedTaxrefIndustries":474,"sharedTaxrefExpertises":478,"sharedIntroText":488,"sharedCtaLink":204,"sharedDate":490,"sharedAuthor":492},"NodeInsight",true,[9,14,18,21,25,30,34,38,42,46,50,54,58,62,66,69,73,76,79,81,84,87,91,95,99,103,107,111,115,119,123,127,131,135,139,142,145,148,151,154,157,160,163,166,170,174,177,181,185,189,193,196,200],{"tag":10,"attributes":11},"meta",{"name":12,"content":13},"title","Speed up with automated AR model generation form 2D images",{"tag":10,"attributes":15},{"name":16,"content":17},"description","With recent advancements in hardware performance and technology, Augmented Reality (AR) applications have become more mainstream. Other than immersive applications such as gaming, AR technology is also making its way into other industries such as manufacturing, retail, and medical. In the retail industry, AR technology makes shopping more immersive and satisfying. From the customers’ perspective, AR supports their purchase decision and enhances their shopping experience by being able to ‘see and touch’ the products. For manufacturing, AR helps to reduce prototyping costs and waste. For example, product designers can visualise the final product before committing resources for mass production. One potential use case for the medical community is allowing clinicians to train themselves on how to use new medical equipment.",{"tag":10,"attributes":19},{"name":20,"content":17},"abstract",{"tag":10,"attributes":22},{"name":23,"content":24},"icbm","51.525772, -0.082716",{"tag":26,"attributes":27},"link",{"rel":28,"href":29},"shortlink","https:\u002F\u002Fcms.zuehlke.com\u002Fapi\u002Fgraphql",{"tag":26,"attributes":31},{"rel":32,"href":33},"canonical","https:\u002F\u002Fcms.zuehlke.com\u002Fen\u002Finsights\u002Faccelerate-time-to-market-with-an-automated-augmented-reality-model",{"tag":10,"attributes":35},{"name":36,"content":37},"robots","index, follow",{"tag":26,"attributes":39},{"rel":40,"href":41},"image_src","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Fmax_1300x1300\u002Fpublic\u002Fimages\u002Fgettyimages-1284836641-web.jpg?itok=iQ1Cg9jS,https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fzuhlke_innovation_social.jpg",{"tag":10,"attributes":43},{"name":44,"content":45},"referrer","unsafe-url",{"tag":10,"attributes":47},{"name":48,"content":49},"rights","Copyright ©2026 | Zühlke Engineering AG | All rights reserved.",{"tag":10,"attributes":51},{"property":52,"content":53},"og:site_name","Zühlke Engineering AG",{"tag":10,"attributes":55},{"property":56,"content":57},"og:type","website",{"tag":10,"attributes":59},{"property":60,"content":61},"og:url","https:\u002F\u002Fwww.zuehlke.com\u002Fen\u002Finsights\u002Faccelerate-time-to-market-with-an-automated-augmented-reality-model",{"tag":10,"attributes":63},{"property":64,"content":65},"og:title","Accelerate time to market with automated Augmented Reality model generation from 2D images – Zühlke",{"tag":10,"attributes":67},{"property":68,"content":17},"og:description",{"tag":10,"attributes":70},{"property":71,"content":72},"og:image","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Fmax_1300x1300\u002Fpublic\u002Fimages\u002Fgettyimages-1284836641-web.jpg?itok=iQ1Cg9jS",{"tag":10,"attributes":74},{"property":71,"content":75},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fzuhlke_innovation_social.jpg",{"tag":10,"attributes":77},{"property":78,"content":72},"og:image:url",{"tag":10,"attributes":80},{"property":78,"content":75},{"tag":10,"attributes":82},{"property":83,"content":72},"og:image:secure_url",{"tag":10,"attributes":85},{"property":83,"content":86},"https:\u002F\u002Fwww.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fzuhlke_innovation_social.jpg",{"tag":10,"attributes":88},{"property":89,"content":90},"og:updated_time","2025-12-23",{"tag":10,"attributes":92},{"property":93,"content":94},"og:image:alt","image",{"tag":10,"attributes":96},{"property":97,"content":98},"place:location:latitude","46.947944",{"tag":10,"attributes":100},{"property":101,"content":102},"place:location:longitude","7.438014",{"tag":10,"attributes":104},{"property":105,"content":106},"og:street_address","80 Great Eastern Street",{"tag":10,"attributes":108},{"property":109,"content":110},"og:locality","London",{"tag":10,"attributes":112},{"property":113,"content":114},"og:region","England",{"tag":10,"attributes":116},{"property":117,"content":118},"og:postal_code","EC2A 3JL",{"tag":10,"attributes":120},{"property":121,"content":122},"og:country_name","United Kingdom",{"tag":10,"attributes":124},{"property":125,"content":126},"og:email","london@zuhlke.com",{"tag":10,"attributes":128},{"property":129,"content":130},"og:phone_number","+44 20 7113 5000",{"tag":10,"attributes":132},{"property":133,"content":134},"og:locale","en_CH",{"tag":10,"attributes":136},{"property":137,"content":138},"og:locale:alternate","de_CH",{"tag":10,"attributes":140},{"property":137,"content":141},"de_DE",{"tag":10,"attributes":143},{"property":137,"content":144},"en_DE",{"tag":10,"attributes":146},{"property":137,"content":147},"en_AT",{"tag":10,"attributes":149},{"property":137,"content":150},"de_AT",{"tag":10,"attributes":152},{"property":137,"content":153},"en_HK",{"tag":10,"attributes":155},{"property":137,"content":156},"en_SR",{"tag":10,"attributes":158},{"property":137,"content":159},"en_BG",{"tag":10,"attributes":161},{"property":137,"content":162},"en_SG",{"tag":10,"attributes":164},{"property":137,"content":165},"en_GB",{"tag":10,"attributes":167},{"property":168,"content":169},"article:publisher","https:\u002F\u002Fwww.facebook.com\u002Fzuehlke.group",{"tag":10,"attributes":171},{"property":172,"content":173},"article:published_time","2022-03-31",{"tag":10,"attributes":175},{"property":176,"content":90},"article:modified_time",{"tag":10,"attributes":178},{"name":179,"content":180},"twitter:card","summary_large_image",{"tag":10,"attributes":182},{"name":183,"content":184},"twitter:site","@zuehlke_group",{"tag":10,"attributes":186},{"name":187,"content":188},"twitter:site:id","247189965",{"tag":10,"attributes":190},{"name":191,"content":192},"twitter:image","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Fmax_1300x1300\u002Fpublic\u002Fimages\u002Fgettyimages-1284836641-web.jpg?itok=iQ1Cg9jS,https:\u002F\u002Fwww.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fzuhlke_innovation_social.jpg",{"tag":10,"attributes":194},{"name":195,"content":94},"twitter:image:alt",{"tag":10,"attributes":197},{"name":198,"content":199},"google-site-verification","VEzolc1Vxy1KyRIlIqUSmVS7fqP_3_ZeBqPRby4g2mE",{"tag":201},"script","5802","\u002Fen\u002Finsights\u002Faccelerate-time-to-market-with-an-automated-augmented-reality-model",null,"Accelerate time to market with an automated Augmented Reality model",[207,210],{"path":203,"langcode":208},{"id":209},"en",{"path":211,"langcode":212},"\u002Fde\u002Finsights\u002Fverkuerzen-sie-die-time-to-market-mit-automatisierter-augmented-reality-0",{"id":213},"de",{"id":215,"sharedMediaLegend":204,"mediaImage":216,"name":241},"4770",{"url":217,"width":218,"height":219,"alt":220,"title":204,"size":221,"mime":222,"variations":204,"headerMinimalVariations":223},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fgettyimages-1284836641-web.jpg",2000,1333,"AR technology",649103,"image\u002Fjpeg",[224,229,230,235,240],{"name":225,"url":226,"width":227,"height":228},"FOCAL_POINT32_SMALL","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_small\u002Fpublic\u002Fimages\u002Fgettyimages-1284836641-web.jpg.webp?itok=XaQF1FFk",800,533,{"name":225,"url":226,"width":227,"height":228},{"name":231,"url":232,"width":233,"height":234},"FOCAL_POINT169_MEDIUM","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_16_9_medium\u002Fpublic\u002Fimages\u002Fgettyimages-1284836641-web.jpg.webp?itok=qBeBzrzZ",1200,675,{"name":236,"url":237,"width":238,"height":239},"FOCAL_POINT169_LARGE","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_16_9_large\u002Fpublic\u002Fimages\u002Fgettyimages-1284836641-web.jpg.webp?itok=SRLgGQlE",1600,900,{"name":236,"url":237,"width":238,"height":239},"gettyimages-1284836641-web.jpg","Accelerate time to market with automated Augmented Reality model generation from 2D images",{"processed":244},"\u003Cp>With recent advancements in hardware performance and technology, Augmented Reality (AR) applications have become more mainstream. Other than immersive applications such as gaming, AR technology is also making its way into other industries such as manufacturing, retail, and medical.\u003C\u002Fp>\n\n\u003Cp>In the \u003Ca href=\"https:\u002F\u002Fwww.zuehlke.com\u002Fen\u002Finsights\u002Fextended-fashion\">retail industry\u003C\u002Fa>, AR technology makes shopping more immersive and satisfying. From the customers’ perspective, AR supports their purchase decision and enhances their shopping experience by being able to ‘see and touch’ the products. For manufacturing, AR helps to reduce prototyping costs and waste. For example, product designers can visualise the final product before committing resources for mass production. One potential use case for the medical community is allowing clinicians to train themselves on how to use new medical equipment.\u003C\u002Fp>",{"id":215,"sharedMediaLegend":204,"mediaImage":246,"name":241},{"url":217,"width":218,"height":219,"alt":220,"title":204,"size":221,"mime":222,"variations":204},[248,255,259,265,297,302,308,333,338,343,348,354,358,362,367,372,397,402,427,432,457,462,468],{"__typename":249,"id":250,"ctaLink":204,"pgSharedText":251,"pgSharedTitle":204,"pgSharedCtaLink":204},"ParagraphPgText","23987",{"value":252,"processed":253,"format":254},"\u003Cp class=\"text-lead\">In the retail industry, AR technology makes shopping more immersive and satisfying. From the customers’ perspective, AR supports their purchase decision and enhances their shopping experience by being able to ‘see and touch’ the products. For manufacturing, AR helps to reduce prototyping costs and waste. For example, product designers can visualise the final product before committing resources for mass production. One potential use case for the medical community is allowing clinicians to train themselves on how to use new medical equipment.\u003C\u002Fp>\r\n","\u003Cp class=\"text-lead\">In the retail industry, AR technology makes shopping more immersive and satisfying. From the customers’ perspective, AR supports their purchase decision and enhances their shopping experience by being able to ‘see and touch’ the products. For manufacturing, AR helps to reduce prototyping costs and waste. For example, product designers can visualise the final product before committing resources for mass production. One potential use case for the medical community is allowing clinicians to train themselves on how to use new medical equipment.\u003C\u002Fp>","full_html",{"__typename":249,"id":256,"ctaLink":204,"pgSharedText":257,"pgSharedTitle":204,"pgSharedCtaLink":204},"12343",{"value":258,"processed":244,"format":254},"\u003Cp>With recent advancements in hardware performance and technology, Augmented Reality (AR) applications have become more mainstream. Other than immersive applications such as gaming, AR technology is also making its way into other industries such as manufacturing, retail, and medical.\u003C\u002Fp>\r\n\r\n\u003Cp>In the \u003Ca href=\"https:\u002F\u002Fwww.zuehlke.com\u002Fen\u002Finsights\u002Fextended-fashion\">retail industry\u003C\u002Fa>, AR technology makes shopping more immersive and satisfying. From the customers’ perspective, AR supports their purchase decision and enhances their shopping experience by being able to ‘see and touch’ the products. For manufacturing, AR helps to reduce prototyping costs and waste. For example, product designers can visualise the final product before committing resources for mass production. One potential use case for the medical community is allowing clinicians to train themselves on how to use new medical equipment.\u003C\u002Fp>\r\n",{"__typename":249,"id":260,"ctaLink":204,"pgSharedText":261,"pgSharedTitle":264,"pgSharedCtaLink":204},"12349",{"value":262,"processed":263,"format":254},"\u003Cp>\u003Cspan>&nbsp;\u003C\u002Fspan>For AR to work, 3D models of actual products need to be created, curated, and uploaded to the organisation’s servers. AR code is then generated for users to scan with their mobile devices. For OEMs, creating AR models from 3D models can be trivial since they already have in-house design documents and\u002For existing design files for their products.\u003C\u002Fp>\r\n\r\n\u003Cp>However, non-OEMs would need to hire 3D modellers and use modelling software such as 3DMax, AutoCAD or Blender to create the 3D model from the images of a given product. Here is what a manual AR Workflow could look like for non-OEMs:\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>Capture the images and send them to a 3D modeller.\u003C\u002Fli>\r\n\t\u003Cli>3D modeller creates the AR model using 3D modelling tools.\u003C\u002Fli>\r\n\t\u003Cli>Export the model to a common AR format, mainly glTF and usdz\u003C\u002Fli>\r\n\t\u003Cli>Stakeholders review the model with the modeller(s).\u003C\u002Fli>\r\n\t\u003Cli>Import\u002Fupload the model to the platform for their customers to view\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n","\u003Cp>\u003Cspan>&nbsp;\u003C\u002Fspan>For AR to work, 3D models of actual products need to be created, curated, and uploaded to the organisation’s servers. AR code is then generated for users to scan with their mobile devices. For OEMs, creating AR models from 3D models can be trivial since they already have in-house design documents and\u002For existing design files for their products.\u003C\u002Fp>\n\n\u003Cp>However, non-OEMs would need to hire 3D modellers and use modelling software such as 3DMax, AutoCAD or Blender to create the 3D model from the images of a given product. Here is what a manual AR Workflow could look like for non-OEMs:\u003C\u002Fp>\n\n\u003Cul>\n\t\u003Cli>Capture the images and send them to a 3D modeller.\u003C\u002Fli>\n\t\u003Cli>3D modeller creates the AR model using 3D modelling tools.\u003C\u002Fli>\n\t\u003Cli>Export the model to a common AR format, mainly glTF and usdz\u003C\u002Fli>\n\t\u003Cli>Stakeholders review the model with the modeller(s).\u003C\u002Fli>\n\t\u003Cli>Import\u002Fupload the model to the platform for their customers to view\u003C\u002Fli>\n\u003C\u002Ful>","The major pain point with the current AR workflow",{"__typename":266,"id":267,"caption":204,"captionSecondary":204,"pgSharedTitle":204,"pgMediaRefMedia":268,"secondaryImage":204,"edgeToEdge":204,"fullWidth":296},"ParagraphPgMedia","12348",{"id":269,"sharedMediaLegend":204,"mediaImage":270,"name":295},"4771",{"url":271,"width":272,"height":273,"alt":274,"title":204,"size":275,"mime":276,"variations":204,"mediaVariations":277,"infographVariations":289},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fmanual-ar-workflow-1.png",420,73,"Manual AR workflow",18044,"image\u002Fpng",[278,281,282,285,288],{"name":279,"url":280,"width":272,"height":273},"FIXED_WIDTH_SMALL","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_small\u002Fpublic\u002Fimages\u002Fmanual-ar-workflow-1.png.webp?itok=Me2-nUAk",{"name":279,"url":280,"width":272,"height":273},{"name":283,"url":284,"width":272,"height":273},"FIXED_WIDTH_MEDIUM","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_medium\u002Fpublic\u002Fimages\u002Fmanual-ar-workflow-1.png.webp?itok=4YMDE8v2",{"name":286,"url":287,"width":272,"height":273},"FIXED_WIDTH_LARGE","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_large\u002Fpublic\u002Fimages\u002Fmanual-ar-workflow-1.png.webp?itok=LY7bpVh3",{"name":286,"url":287,"width":272,"height":273},[290,291,292,293,294],{"name":279,"url":280,"width":272,"height":273},{"name":279,"url":280,"width":272,"height":273},{"name":279,"url":280,"width":272,"height":273},{"name":283,"url":284,"width":272,"height":273},{"name":283,"url":284,"width":272,"height":273},"manual-ar-workflow-1.png",false,{"__typename":249,"id":298,"ctaLink":204,"pgSharedText":299,"pgSharedTitle":204,"pgSharedCtaLink":204},"12344",{"value":300,"processed":301,"format":254},"\u003Cp>\u003Cstrong>Manual AR Workflow\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>From the points raised above, we identified the stages for improvement. The most obvious step is the manual creation of the model. Those familiar with 3D modelling would recognise that it is both manual and time-consuming. Creating, reviewing and iterating on the design for a single product or object could take several days, even for a highly skilled 3D modeller. Organisations without an in-house modeller would take time to hire one too.\u003C\u002Fp>\r\n\r\n\u003Cp>Integration with the Application Programmable Interface (API) is needed to automate the process, which may not be available as these 3D modelling software are usually proprietary. Even with APIs, software engineers still need to create custom software tools for integration.\u003C\u002Fp>\r\n\r\n\u003Cp>For non-OEMs with limited resources or operating in a highly competitive environment, there is a pressing need to improve the existing workflow to enhance cost and labour efficiency.\u003C\u002Fp>\r\n","\u003Cp>\u003Cstrong>Manual AR Workflow\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>From the points raised above, we identified the stages for improvement. The most obvious step is the manual creation of the model. Those familiar with 3D modelling would recognise that it is both manual and time-consuming. Creating, reviewing and iterating on the design for a single product or object could take several days, even for a highly skilled 3D modeller. Organisations without an in-house modeller would take time to hire one too.\u003C\u002Fp>\n\n\u003Cp>Integration with the Application Programmable Interface (API) is needed to automate the process, which may not be available as these 3D modelling software are usually proprietary. Even with APIs, software engineers still need to create custom software tools for integration.\u003C\u002Fp>\n\n\u003Cp>For non-OEMs with limited resources or operating in a highly competitive environment, there is a pressing need to improve the existing workflow to enhance cost and labour efficiency.\u003C\u002Fp>",{"__typename":249,"id":303,"ctaLink":204,"pgSharedText":304,"pgSharedTitle":307,"pgSharedCtaLink":204},"12350",{"value":305,"processed":306,"format":254},"\u003Cp>A different approach is needed to automate the current workflow. You might be wondering if there is a way to convert images into actual 3D models? The good news is, yes, there is!\u003C\u002Fp>\r\n\r\n\u003Cp>Technology gave rise to a technique known as \u003Ca href=\"https:\u002F\u002Fwww.sciencedirect.com\u002Ftopics\u002Fagricultural-and-biological-sciences\u002Fphotogrammetry\">Photogrammetry\u003C\u002Fa>&nbsp;\u003Csup>[1]\u003C\u002Fsup>, which can generate 3D model from images. By capturing several pictures of the target object and applying a computational process, we can generate the 3D model from them.\u003C\u002Fp>\r\n\r\n\u003Cp>With the release of MacOS 12 by Apple, there was an extension of the RealityKit Framework \u003Csup>[2]\u003C\u002Fsup> to support the implementation of the Photogrammetry process. With that, &nbsp;developers can create API based AR models from images programmatically without lengthy manual image processing and integration with complex 3D modelling software.\u003C\u002Fp>\r\n","\u003Cp>A different approach is needed to automate the current workflow. You might be wondering if there is a way to convert images into actual 3D models? The good news is, yes, there is!\u003C\u002Fp>\n\n\u003Cp>Technology gave rise to a technique known as \u003Ca href=\"https:\u002F\u002Fwww.sciencedirect.com\u002Ftopics\u002Fagricultural-and-biological-sciences\u002Fphotogrammetry\">Photogrammetry\u003C\u002Fa>&nbsp;\u003Csup>[1]\u003C\u002Fsup>, which can generate 3D model from images. By capturing several pictures of the target object and applying a computational process, we can generate the 3D model from them.\u003C\u002Fp>\n\n\u003Cp>With the release of MacOS 12 by Apple, there was an extension of the RealityKit Framework \u003Csup>[2]\u003C\u002Fsup> to support the implementation of the Photogrammetry process. With that, &nbsp;developers can create API based AR models from images programmatically without lengthy manual image processing and integration with complex 3D modelling software.\u003C\u002Fp>","How can existing process be improved? ",{"__typename":266,"id":309,"caption":204,"captionSecondary":204,"pgSharedTitle":204,"pgMediaRefMedia":310,"secondaryImage":204,"edgeToEdge":204,"fullWidth":296},"12351",{"id":311,"sharedMediaLegend":204,"mediaImage":312,"name":332},"4772",{"url":313,"width":272,"height":314,"alt":315,"title":204,"size":316,"mime":276,"variations":204,"mediaVariations":317,"infographVariations":326},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fautomated-workflow-2.png",71,"Automated AR workflow",16103,[318,320,321,323,325],{"name":279,"url":319,"width":272,"height":314},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_small\u002Fpublic\u002Fimages\u002Fautomated-workflow-2.png.webp?itok=9WddkzKk",{"name":279,"url":319,"width":272,"height":314},{"name":283,"url":322,"width":272,"height":314},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_medium\u002Fpublic\u002Fimages\u002Fautomated-workflow-2.png.webp?itok=qrhPxof1",{"name":286,"url":324,"width":272,"height":314},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_large\u002Fpublic\u002Fimages\u002Fautomated-workflow-2.png.webp?itok=t7ZZRfWE",{"name":286,"url":324,"width":272,"height":314},[327,328,329,330,331],{"name":279,"url":319,"width":272,"height":314},{"name":279,"url":319,"width":272,"height":314},{"name":279,"url":319,"width":272,"height":314},{"name":283,"url":322,"width":272,"height":314},{"name":283,"url":322,"width":272,"height":314},"automated-workflow-2.png",{"__typename":249,"id":334,"ctaLink":204,"pgSharedText":335,"pgSharedTitle":204,"pgSharedCtaLink":204},"12347",{"value":336,"processed":337,"format":254},"\u003Cp>\u003Cstrong>API AR Generation\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>With Photogrammetry, the whole AR model generation workflow now looks like this:\u003C\u002Fp>\r\n\r\n\u003Col>\r\n\t\u003Cli>Capture the images with an App\u003C\u002Fli>\r\n\t\u003Cli>Upload the image to Object Capture API\u003C\u002Fli>\r\n\t\u003Cli>Trigger image processing\u003C\u002Fli>\r\n\t\u003Cli>Render the generated model using \u003Ca href=\"https:\u002F\u002Fmodelviewer.dev\u002Fdocs\u002Findex.html\">&lt;model-viewer&gt;\u003C\u002Fa> component in HTML page and interfacing with native capabilities\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\r\n\u003Cp>In comparison to the manual modelling process, this is much easier. Anyone with decent photography skills can take photos of a product to generate an AR model. The AR model is available within a few minutes, making it possible for a quick turnaround time if a new model is needed.\u003C\u002Fp>\r\n\r\n\u003Cp>We developed a proof of concept (PoC) to illustrate the above approach.\u003C\u002Fp>\r\n","\u003Cp>\u003Cstrong>API AR Generation\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>With Photogrammetry, the whole AR model generation workflow now looks like this:\u003C\u002Fp>\n\n\u003Col>\n\t\u003Cli>Capture the images with an App\u003C\u002Fli>\n\t\u003Cli>Upload the image to Object Capture API\u003C\u002Fli>\n\t\u003Cli>Trigger image processing\u003C\u002Fli>\n\t\u003Cli>Render the generated model using \u003Ca href=\"https:\u002F\u002Fmodelviewer.dev\u002Fdocs\u002Findex.html\">&lt;model-viewer&gt;\u003C\u002Fa> component in HTML page and interfacing with native capabilities\u003C\u002Fli>\n\u003C\u002Fol>\n\n\u003Cp>In comparison to the manual modelling process, this is much easier. Anyone with decent photography skills can take photos of a product to generate an AR model. The AR model is available within a few minutes, making it possible for a quick turnaround time if a new model is needed.\u003C\u002Fp>\n\n\u003Cp>We developed a proof of concept (PoC) to illustrate the above approach.\u003C\u002Fp>",{"__typename":249,"id":339,"ctaLink":204,"pgSharedText":340,"pgSharedTitle":204,"pgSharedCtaLink":204},"12352",{"value":341,"processed":342,"format":254},"\u003Ch4>The development of a mobile app\u003C\u002Fh4>\r\n\r\n\u003Cp>Based on the workflow mentioned above and that the RealityKit framework is only available for Apple products, we need a solution that runs on Apple’s hardware and can perform the following:\u003C\u002Fp>\r\n\r\n\u003Col>\r\n\t\u003Cli>Capture and hold a series of images of the object\u003C\u002Fli>\r\n\t\u003Cli>Guide the user on how to take the pictures\u003C\u002Fli>\r\n\t\u003Cli>Generate the AR model from the images.\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\r\n\u003Cp>The most logical conclusion that we came up with is an iOS app that incorporates all criteria.\u003C\u002Fp>\r\n\r\n\u003Cp>After capturing the images, users upload them to a service via the app and trigger the AR model generation. As AR model generation is expensive, the process will run asynchronously on the mobile app. After the completion of the process, the client will receive a notification.\u003C\u002Fp>\r\n\r\n\u003Cp>Users can then verify the result, and if it is not up to their expectations, they can tweak the generation parameters to regenerate better results.\u003C\u002Fp>\r\n","\u003Ch4>The development of a mobile app\u003C\u002Fh4>\n\n\u003Cp>Based on the workflow mentioned above and that the RealityKit framework is only available for Apple products, we need a solution that runs on Apple’s hardware and can perform the following:\u003C\u002Fp>\n\n\u003Col>\n\t\u003Cli>Capture and hold a series of images of the object\u003C\u002Fli>\n\t\u003Cli>Guide the user on how to take the pictures\u003C\u002Fli>\n\t\u003Cli>Generate the AR model from the images.\u003C\u002Fli>\n\u003C\u002Fol>\n\n\u003Cp>The most logical conclusion that we came up with is an iOS app that incorporates all criteria.\u003C\u002Fp>\n\n\u003Cp>After capturing the images, users upload them to a service via the app and trigger the AR model generation. As AR model generation is expensive, the process will run asynchronously on the mobile app. After the completion of the process, the client will receive a notification.\u003C\u002Fp>\n\n\u003Cp>Users can then verify the result, and if it is not up to their expectations, they can tweak the generation parameters to regenerate better results.\u003C\u002Fp>",{"__typename":249,"id":344,"ctaLink":204,"pgSharedText":345,"pgSharedTitle":204,"pgSharedCtaLink":204},"12353",{"value":346,"processed":347,"format":254},"\u003Ch4>The development of a backend application for AR model generation\u003C\u002Fh4>\r\n\r\n\u003Cp>After the user uploads the images, the solution uses the Object Capture feature of the RealityKit Framework to generate the AR model. However, based on the information and sample code provided by Apple, the solution requires the following:\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>MacOS 12.0+\u003C\u002Fli>\r\n\t\u003Cli>Discrete GPU on the machine\u003C\u002Fli>\r\n\t\u003Cli>At least 4GB of dedicated video RAM with ray tracing capability\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\r\n\u003Cp>As the iPhone and iPad do not have the complete requirements, we developed a microservice using \u003Ca href=\"https:\u002F\u002Fswift.org\">Swift\u003C\u002Fa> that can run on Apple’s personal computers and workstations with either an AMD GPU or an Apple Silicon.\u003C\u002Fp>\r\n\r\n\u003Cp>For our PoC, we used an on-premise MacBook to run the microservice since almost no big cloud service can provide M1 Mac\u003Cspan>.\u003C\u002Fspan>&nbsp;The mobile app communicated with our backend via a set of REST APIs, which we developed using \u003Ca href=\"https:\u002F\u002Fvapor.codes\">Vapor\u003C\u002Fa> web framework.\u003C\u002Fp>\r\n\r\n\u003Cp>(As of now, AWS only provide non-GPU enabled Intel VM and M1 is only in preview. Few services on cloud provide M1 machines. In our case, \u003Ca href=\"https:\u002F\u002Fwww.macstadium.com\u002F\">MacStadium\u003C\u002Fa> is one of the possible alternatives.)\u003C\u002Fp>\r\n","\u003Ch4>The development of a backend application for AR model generation\u003C\u002Fh4>\n\n\u003Cp>After the user uploads the images, the solution uses the Object Capture feature of the RealityKit Framework to generate the AR model. However, based on the information and sample code provided by Apple, the solution requires the following:\u003C\u002Fp>\n\n\u003Cul>\n\t\u003Cli>MacOS 12.0+\u003C\u002Fli>\n\t\u003Cli>Discrete GPU on the machine\u003C\u002Fli>\n\t\u003Cli>At least 4GB of dedicated video RAM with ray tracing capability\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>As the iPhone and iPad do not have the complete requirements, we developed a microservice using \u003Ca href=\"https:\u002F\u002Fswift.org\">Swift\u003C\u002Fa> that can run on Apple’s personal computers and workstations with either an AMD GPU or an Apple Silicon.\u003C\u002Fp>\n\n\u003Cp>For our PoC, we used an on-premise MacBook to run the microservice since almost no big cloud service can provide M1 Mac\u003Cspan>.\u003C\u002Fspan>&nbsp;The mobile app communicated with our backend via a set of REST APIs, which we developed using \u003Ca href=\"https:\u002F\u002Fvapor.codes\">Vapor\u003C\u002Fa> web framework.\u003C\u002Fp>\n\n\u003Cp>(As of now, AWS only provide non-GPU enabled Intel VM and M1 is only in preview. Few services on cloud provide M1 machines. In our case, \u003Ca href=\"https:\u002F\u002Fwww.macstadium.com\u002F\">MacStadium\u003C\u002Fa> is one of the possible alternatives.)\u003C\u002Fp>",{"__typename":249,"id":349,"ctaLink":204,"pgSharedText":350,"pgSharedTitle":353,"pgSharedCtaLink":204},"12355",{"value":351,"processed":352,"format":254},"\u003Cp>How should organisations go about their implementation? In the next half of the article, we will explore the design and implementation details.\u003C\u002Fp>\r\n\r\n\u003Ch4>The importance of AR file format\u003C\u002Fh4>\r\n\r\n\u003Cp>As part of the AR model generation, we also need to consider file format support. There are many file formats for AR modelling and there is no format that is as universal as jpeg or mpeg for image and video, but these two are the most popular:\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>glTF - universally recognised, except for iOS\u003C\u002Fli>\r\n\t\u003Cli>USDZ - iOS specific\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n","\u003Cp>How should organisations go about their implementation? In the next half of the article, we will explore the design and implementation details.\u003C\u002Fp>\n\n\u003Ch4>The importance of AR file format\u003C\u002Fh4>\n\n\u003Cp>As part of the AR model generation, we also need to consider file format support. There are many file formats for AR modelling and there is no format that is as universal as jpeg or mpeg for image and video, but these two are the most popular:\u003C\u002Fp>\n\n\u003Cul>\n\t\u003Cli>glTF - universally recognised, except for iOS\u003C\u002Fli>\n\t\u003Cli>USDZ - iOS specific\u003C\u002Fli>\n\u003C\u002Ful>","An in-depth look at the implementation process",{"__typename":249,"id":355,"ctaLink":204,"pgSharedText":356,"pgSharedTitle":204,"pgSharedCtaLink":204},"31256",{"value":357,"processed":357,"format":254},"\u003Ch5>glTF\u003C\u002Fh5>\u003Cp>The GL Transmission Format (glTF) is a runtime asset delivery format for GL APIs: WebGL, OpenGL ES, and OpenGL. By providing an efficient, extensible, interoperable format for the transmission and loading of 3D content, glTF bridges the gap between 3D content creation tools and modern GL applications. [3]\u003C\u002Fp>",{"__typename":249,"id":359,"ctaLink":204,"pgSharedText":360,"pgSharedTitle":204,"pgSharedCtaLink":204},"31257",{"value":361,"processed":361,"format":254},"\u003Ch5>USDZ\u003C\u002Fh5>\u003Cp>USDZ is a 3D file format that displays 3D and AR content on iOS devices and offers portability and native support so users who do not need to download a new app to open the file. In addition, iOS 12 iPhone and iPad users can easily view and share this portable format and developers can exchange it between applications in their 3D-creation pipeline.\u003C\u002Fp>\u003Cp>Currently, only iOS supports USDZ and has its equivalents, gLTF and gLB. [4]\u003C\u002Fp>",{"__typename":249,"id":363,"ctaLink":204,"pgSharedText":364,"pgSharedTitle":204,"pgSharedCtaLink":204},"12365",{"value":365,"processed":366,"format":254},"\u003Ch4>Support comparison\u003C\u002Fh4>\r\n\r\n\u003Cp>glTF vs USDZ support:\u003C\u002Fp>\r\n\r\n\u003Ctable>\r\n\t\u003Cthead>\r\n\t\t\u003Ctr>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>&nbsp;\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>Desktop&nbsp; &nbsp; &nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>Android&nbsp; &nbsp; &nbsp;&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>iOS&nbsp; &nbsp; &nbsp;&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\u003C\u002Ftr>\r\n\t\u003C\u002Fthead>\r\n\t\u003Ctbody>\r\n\t\t\u003Ctr>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>USDZ&nbsp; &nbsp;&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>❌\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>❌\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>✅\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\u003C\u002Ftr>\r\n\t\t\u003Ctr>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>glTF&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>✅\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>✅\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\t\u003Ctd>\r\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>⚠️\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\t\t\t\u003C\u002Ftd>\r\n\t\t\u003C\u002Ftr>\r\n\t\u003C\u002Ftbody>\r\n\u003C\u002Ftable>\r\n\r\n\u003Cp>Based on the table comparison, none of the formats stood out. While glTF is used more frequently, USDZ allows for high quality iOS rendering. In addition, Apple ARKit makes model generation faster with the limitation of creating only USDZ model file.\u003C\u002Fp>\r\n\r\n\u003Cp>Note: iOS devices can automatically convert glTF to USDZ but with deteriorated quality. &nbsp;If possible, it is still better to provide the USDZ file.\u003C\u002Fp>\r\n","\u003Ch4>Support comparison\u003C\u002Fh4>\n\n\u003Cp>glTF vs USDZ support:\u003C\u002Fp>\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>Desktop&nbsp; &nbsp; &nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>Android&nbsp; &nbsp; &nbsp;&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>iOS&nbsp; &nbsp; &nbsp;&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>USDZ&nbsp; &nbsp;&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>❌\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>❌\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>✅\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>\u003Cstrong>glTF&nbsp;\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>✅\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>✅\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\t\n\t\t\t\u003Cp>\u003Cspan>\u003Cspan>⚠️\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\n\t\t\t\n\t\t\n\t\n\n\n\u003Cp>Based on the table comparison, none of the formats stood out. While glTF is used more frequently, USDZ allows for high quality iOS rendering. In addition, Apple ARKit makes model generation faster with the limitation of creating only USDZ model file.\u003C\u002Fp>\n\n\u003Cp>Note: iOS devices can automatically convert glTF to USDZ but with deteriorated quality. &nbsp;If possible, it is still better to provide the USDZ file.\u003C\u002Fp>",{"__typename":249,"id":368,"ctaLink":204,"pgSharedText":369,"pgSharedTitle":204,"pgSharedCtaLink":204},"12368",{"value":370,"processed":371,"format":254},"\u003Ch4>The intricate details of our backend microservice\u003C\u002Fh4>\r\n\r\n\u003Cp>The backend microservice does the heavy lifting of receiving the images from the clients and processing them to generate the AR model. The diagram below illustrates what we imagine the overall architecture to look like:\u003C\u002Fp>\r\n","\u003Ch4>The intricate details of our backend microservice\u003C\u002Fh4>\n\n\u003Cp>The backend microservice does the heavy lifting of receiving the images from the clients and processing them to generate the AR model. The diagram below illustrates what we imagine the overall architecture to look like:\u003C\u002Fp>",{"__typename":266,"id":373,"caption":204,"captionSecondary":204,"pgSharedTitle":204,"pgMediaRefMedia":374,"secondaryImage":204,"edgeToEdge":204,"fullWidth":296},"12369",{"id":375,"sharedMediaLegend":204,"mediaImage":376,"name":396},"4773",{"url":377,"width":272,"height":378,"alt":379,"title":204,"size":380,"mime":276,"variations":204,"mediaVariations":381,"infographVariations":390},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Foverall-architecture-3.png",196,"Overall architecture",28064,[382,384,385,387,389],{"name":279,"url":383,"width":272,"height":378},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_small\u002Fpublic\u002Fimages\u002Foverall-architecture-3.png.webp?itok=AgBc-wFz",{"name":279,"url":383,"width":272,"height":378},{"name":283,"url":386,"width":272,"height":378},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_medium\u002Fpublic\u002Fimages\u002Foverall-architecture-3.png.webp?itok=pL2vZBsK",{"name":286,"url":388,"width":272,"height":378},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_large\u002Fpublic\u002Fimages\u002Foverall-architecture-3.png.webp?itok=86GEPzSn",{"name":286,"url":388,"width":272,"height":378},[391,392,393,394,395],{"name":279,"url":383,"width":272,"height":378},{"name":279,"url":383,"width":272,"height":378},{"name":279,"url":383,"width":272,"height":378},{"name":283,"url":386,"width":272,"height":378},{"name":283,"url":386,"width":272,"height":378},"overall-architecture-3.png",{"__typename":249,"id":398,"ctaLink":204,"pgSharedText":399,"pgSharedTitle":204,"pgSharedCtaLink":204},"12370",{"value":400,"processed":401,"format":254},"\u003Ch4>API Software component\u003C\u002Fh4>\r\n\r\n\u003Cp>Through further analysis, we identified the following interaction flow:\u003C\u002Fp>\r\n\r\n\u003Col>\r\n\t\u003Cli>Start a session and upload related metadata\u003C\u002Fli>\r\n\t\u003Cli>Upload all the files to the session\u003C\u002Fli>\r\n\t\u003Cli>Triggering the processing of the files\u003C\u002Fli>\r\n\t\u003Cli>Model validation\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n","\u003Ch4>API Software component\u003C\u002Fh4>\n\n\u003Cp>Through further analysis, we identified the following interaction flow:\u003C\u002Fp>\n\n\u003Col>\n\t\u003Cli>Start a session and upload related metadata\u003C\u002Fli>\n\t\u003Cli>Upload all the files to the session\u003C\u002Fli>\n\t\u003Cli>Triggering the processing of the files\u003C\u002Fli>\n\t\u003Cli>Model validation\u003C\u002Fli>\n\u003C\u002Fol>",{"__typename":266,"id":403,"caption":204,"captionSecondary":204,"pgSharedTitle":204,"pgMediaRefMedia":404,"secondaryImage":204,"edgeToEdge":204,"fullWidth":296},"12371",{"id":405,"sharedMediaLegend":204,"mediaImage":406,"name":426},"4774",{"url":407,"width":272,"height":408,"alt":409,"title":204,"size":410,"mime":276,"variations":204,"mediaVariations":411,"infographVariations":420},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fobject-capture-api-4.png",494,"Object Capture API",47301,[412,414,415,417,419],{"name":279,"url":413,"width":272,"height":408},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_small\u002Fpublic\u002Fimages\u002Fobject-capture-api-4.png.webp?itok=e-LbZCTd",{"name":279,"url":413,"width":272,"height":408},{"name":283,"url":416,"width":272,"height":408},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_medium\u002Fpublic\u002Fimages\u002Fobject-capture-api-4.png.webp?itok=mMnbt6vf",{"name":286,"url":418,"width":272,"height":408},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_large\u002Fpublic\u002Fimages\u002Fobject-capture-api-4.png.webp?itok=QGZD7nUc",{"name":286,"url":418,"width":272,"height":408},[421,422,423,424,425],{"name":279,"url":413,"width":272,"height":408},{"name":279,"url":413,"width":272,"height":408},{"name":279,"url":413,"width":272,"height":408},{"name":283,"url":416,"width":272,"height":408},{"name":283,"url":416,"width":272,"height":408},"object-capture-api-4.png",{"__typename":249,"id":428,"ctaLink":204,"pgSharedText":429,"pgSharedTitle":204,"pgSharedCtaLink":204},"12372",{"value":430,"processed":431,"format":254},"\u003Cp>\u003Cstrong>API interaction sequence\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>We know there is a need for RESTful APIs to receive images from the client. Then, the client should be able to indicate in the microservice through the APIs to generate the model and save it for subsequent download and rendering.\u003C\u002Fp>\r\n\r\n\u003Cp>Here is where a web framework comes into play. For this task, we chose Vapor.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>\u003Ca>Vapor Web Framework\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>Vapor is the lightweight web framework of choice. It enables faster development of web applications with RESTful APIs and can be deployed on Docker and Linux machines. However, we required MacOS-specific API because of RealityKit and that eliminated both Docker and Linux as options.\u003C\u002Fp>\r\n\r\n\u003Cp>As for the Kitura web framework, we did not go with that as its development has not been very active.\u003C\u002Fp>\r\n\r\n\u003Cp>On the other hand, Vapor is still undergoing active development and receiving support from its developers. Furthermore, we have the requirement to build a multi-architecture application. Another advantage is that Vapor is built for both x86-64 and arm64 architecture on any macOS.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>The importance of concurrency\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>The model generation process requires a significant amount of CPU and GPU power to create the AR model, taking several minutes on an Apple Silicon such as the M1 SoC or even more when running on Intel processors. This impacts the overall performance and response time of the system. As a result, the operation cannot happen on the same thread as the RESTful API that receives the images or the main server event loop.\u003C\u002Fp>\r\n\r\n\u003Cp>So, what we can do?\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>Use concurrency and async processing.\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>The AR model generation must be a parallel task triggered by the API or other mechanism such as a timer job. This allows the APIs (such as the image upload API) to behave in a fire-and-forget manner.\u003C\u002Fp>\r\n\r\n\u003Cp>However, this comes with challenges.\u003C\u002Fp>\r\n\r\n\u003Cp>With parallel processing, the client cannot receive the current processing status updates via the API. Instead, what we can do is display the progress percentage of the activities via notification. Our solution involves implementing a notification system, as shown in the diagram below.\u003C\u002Fp>\r\n","\u003Cp>\u003Cstrong>API interaction sequence\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>We know there is a need for RESTful APIs to receive images from the client. Then, the client should be able to indicate in the microservice through the APIs to generate the model and save it for subsequent download and rendering.\u003C\u002Fp>\n\n\u003Cp>Here is where a web framework comes into play. For this task, we chose Vapor.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>\u003Ca>Vapor Web Framework\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>Vapor is the lightweight web framework of choice. It enables faster development of web applications with RESTful APIs and can be deployed on Docker and Linux machines. However, we required MacOS-specific API because of RealityKit and that eliminated both Docker and Linux as options.\u003C\u002Fp>\n\n\u003Cp>As for the Kitura web framework, we did not go with that as its development has not been very active.\u003C\u002Fp>\n\n\u003Cp>On the other hand, Vapor is still undergoing active development and receiving support from its developers. Furthermore, we have the requirement to build a multi-architecture application. Another advantage is that Vapor is built for both x86-64 and arm64 architecture on any macOS.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The importance of concurrency\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>The model generation process requires a significant amount of CPU and GPU power to create the AR model, taking several minutes on an Apple Silicon such as the M1 SoC or even more when running on Intel processors. This impacts the overall performance and response time of the system. As a result, the operation cannot happen on the same thread as the RESTful API that receives the images or the main server event loop.\u003C\u002Fp>\n\n\u003Cp>So, what we can do?\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>Use concurrency and async processing.\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>The AR model generation must be a parallel task triggered by the API or other mechanism such as a timer job. This allows the APIs (such as the image upload API) to behave in a fire-and-forget manner.\u003C\u002Fp>\n\n\u003Cp>However, this comes with challenges.\u003C\u002Fp>\n\n\u003Cp>With parallel processing, the client cannot receive the current processing status updates via the API. Instead, what we can do is display the progress percentage of the activities via notification. Our solution involves implementing a notification system, as shown in the diagram below.\u003C\u002Fp>",{"__typename":266,"id":433,"caption":204,"captionSecondary":204,"pgSharedTitle":204,"pgMediaRefMedia":434,"secondaryImage":204,"edgeToEdge":204,"fullWidth":296},"12373",{"id":435,"sharedMediaLegend":204,"mediaImage":436,"name":456},"4775",{"url":437,"width":438,"height":438,"alt":439,"title":204,"size":440,"mime":276,"variations":204,"mediaVariations":441,"infographVariations":450},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fnotification-system-5.png",325,"Notification system",21177,[442,444,445,447,449],{"name":279,"url":443,"width":438,"height":438},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_small\u002Fpublic\u002Fimages\u002Fnotification-system-5.png.webp?itok=BmEzj7Oo",{"name":279,"url":443,"width":438,"height":438},{"name":283,"url":446,"width":438,"height":438},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_medium\u002Fpublic\u002Fimages\u002Fnotification-system-5.png.webp?itok=Ihe0gT5G",{"name":286,"url":448,"width":438,"height":438},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffixed_width_large\u002Fpublic\u002Fimages\u002Fnotification-system-5.png.webp?itok=1qycd6ff",{"name":286,"url":448,"width":438,"height":438},[451,452,453,454,455],{"name":279,"url":443,"width":438,"height":438},{"name":279,"url":443,"width":438,"height":438},{"name":279,"url":443,"width":438,"height":438},{"name":283,"url":446,"width":438,"height":438},{"name":283,"url":446,"width":438,"height":438},"notification-system-5.png",{"__typename":249,"id":458,"ctaLink":204,"pgSharedText":459,"pgSharedTitle":204,"pgSharedCtaLink":204},"12374",{"value":460,"processed":461,"format":254},"\u003Cp>\u003Cstrong>Notification\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>With this notification system, the AR generation process independently notifies the client about the progress and status. The supported statuses are:\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>absent\u003C\u002Fli>\r\n\t\u003Cli>inProgress - with a percentage\u003C\u002Fli>\r\n\t\u003Cli>created\u003C\u002Fli>\r\n\t\u003Cli>error - with a message\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\r\n\u003Cp>\u003Cstrong>\u003Ca>Service Deployment\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>Our CI pipeline generates a multi-architecture executable that can run on M1 and Intel chips.\u003C\u002Fp>\r\n\r\n\u003Cp>Run the following command to generate a multi-architecture executable in the terminal:\u003Cbr \u002F>\r\n\u003Cbr \u002F>\r\nswift build --configuration release --arch arm64 --arch x86_64\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>\u003Ca>Further Improvements: Scaling up and optimising the solution\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>As mentioned, generating an AR model from images is an intensive process that requires a lot of hardware resources and specific hardware. Imagine a scenario where batches of images for multiple objects are captured and uploaded to the backend within a short timeframe. This leads to an overwhelmed processing pipeline.\u003C\u002Fp>\r\n\r\n\u003Cp>Therefore, a more efficient way of achieving better scalability is to separate the API from the processing pipeline, use a message queue (Kafka, SQS, etc.) and auto-balance the result.\u003C\u002Fp>\r\n\r\n\u003Cp>As our approach is still in the Proof of Concept (PoC) phase, solution scalability is not a big issue. However, this could be a significant constraint in the real word and require a carefully designed architecture and deployment.\u003C\u002Fp>\r\n","\u003Cp>\u003Cstrong>Notification\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>With this notification system, the AR generation process independently notifies the client about the progress and status. The supported statuses are:\u003C\u002Fp>\n\n\u003Cul>\n\t\u003Cli>absent\u003C\u002Fli>\n\t\u003Cli>inProgress - with a percentage\u003C\u002Fli>\n\t\u003Cli>created\u003C\u002Fli>\n\t\u003Cli>error - with a message\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>\u003Cstrong>\u003Ca>Service Deployment\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>Our CI pipeline generates a multi-architecture executable that can run on M1 and Intel chips.\u003C\u002Fp>\n\n\u003Cp>Run the following command to generate a multi-architecture executable in the terminal:\u003Cbr>\n\u003Cbr>\nswift build --configuration release --arch arm64 --arch x86_64\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>\u003Ca>Further Improvements: Scaling up and optimising the solution\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>As mentioned, generating an AR model from images is an intensive process that requires a lot of hardware resources and specific hardware. Imagine a scenario where batches of images for multiple objects are captured and uploaded to the backend within a short timeframe. This leads to an overwhelmed processing pipeline.\u003C\u002Fp>\n\n\u003Cp>Therefore, a more efficient way of achieving better scalability is to separate the API from the processing pipeline, use a message queue (Kafka, SQS, etc.) and auto-balance the result.\u003C\u002Fp>\n\n\u003Cp>As our approach is still in the Proof of Concept (PoC) phase, solution scalability is not a big issue. However, this could be a significant constraint in the real word and require a carefully designed architecture and deployment.\u003C\u002Fp>",{"__typename":249,"id":463,"ctaLink":204,"pgSharedText":464,"pgSharedTitle":467,"pgSharedCtaLink":204},"12389",{"value":465,"processed":466,"format":254},"\u003Cp>We tested the application with various objects in different environments. On average, the resulting models were good, with good object recognition and decent accuracy. However, the result heavily depends on the environment. For example, if there is poor lighting or noisy background sound, the results will not be ideal.\u003C\u002Fp>\r\n\r\n\u003Cp>During our testing, we discovered that a minimum of 20 images of the object is needed for RealityKit to generate a reasonably good model. Higher quality models or more complex objects will require up to 25 to 40 images.\u003C\u002Fp>\r\n\r\n\u003Cp>The model generation process only takes a few minutes on average, making it easy to trial and error while having many images captured in a relatively short time.\u003C\u002Fp>\r\n\r\n\u003Cp>The RealityKit framework from Apple makes automated generation possible with predictable results and comprehendible errors, enabling wider access to AR technology. However, one of the most significant limitations is the inability to programmatically generate a glTF model from an usdz model or having the output of the model generation in glTF.\u003C\u002Fp>\r\n\r\n\u003Cp>With our approach of working with Photogrammetry framework, we strongly believe that this will help to democratise AR modelling and create exciting new business opportunities for this technology.\u003C\u002Fp>\r\n","\u003Cp>We tested the application with various objects in different environments. On average, the resulting models were good, with good object recognition and decent accuracy. However, the result heavily depends on the environment. For example, if there is poor lighting or noisy background sound, the results will not be ideal.\u003C\u002Fp>\n\n\u003Cp>During our testing, we discovered that a minimum of 20 images of the object is needed for RealityKit to generate a reasonably good model. Higher quality models or more complex objects will require up to 25 to 40 images.\u003C\u002Fp>\n\n\u003Cp>The model generation process only takes a few minutes on average, making it easy to trial and error while having many images captured in a relatively short time.\u003C\u002Fp>\n\n\u003Cp>The RealityKit framework from Apple makes automated generation possible with predictable results and comprehendible errors, enabling wider access to AR technology. However, one of the most significant limitations is the inability to programmatically generate a glTF model from an usdz model or having the output of the model generation in glTF.\u003C\u002Fp>\n\n\u003Cp>With our approach of working with Photogrammetry framework, we strongly believe that this will help to democratise AR modelling and create exciting new business opportunities for this technology.\u003C\u002Fp>","Conclusion",{"__typename":249,"id":469,"ctaLink":204,"pgSharedText":470,"pgSharedTitle":473,"pgSharedCtaLink":204},"12375",{"value":471,"processed":472,"format":254},"\u003Cp>\u003Ca>[1] ‘Photogrammetry’. Wikipedia [Online]. Available:&nbsp;\u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPhotogrammetry\">https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPhotogrammetry\u003C\u002Fa>&nbsp;\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Ca>[2] ‘RealityKit’. Apple Inc. [Online]. Available: \u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Frealitykit\">https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Frealitykit\u003C\u002Fa>&nbsp;\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Ca>[3] P. Cozz and T. Parisi, ‘glTF specification 1.0’. Khronos Group, Nov. 03, 2016 [Online]. Available: \u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FglTF\u002Ftree\u002Fmain\u002Fspecification\u002F1.0\">https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FglTF\u002Ftree\u002Fmain\u002Fspecification\u002F1.0\u003C\u002Fa>&nbsp;\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Ca>[4] S. Schechter, ‘Everything You Need to Know About USDZ Files’. 3D Cloud Marxent, Mar. 04, 2020 [Online]. Available: \u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fwww.marxentlabs.com\u002Fusdz-files\u002F\">https:\u002F\u002Fwww.marxentlabs.com\u002Fusdz-files\u002F\u003C\u002Fa>&nbsp;\u003C\u002Fp>\r\n","\u003Cp>\u003Ca>[1] ‘Photogrammetry’. Wikipedia [Online]. Available:&nbsp;\u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPhotogrammetry\">https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPhotogrammetry\u003C\u002Fa>&nbsp;\u003C\u002Fp>\n\n\u003Cp>\u003Ca>[2] ‘RealityKit’. Apple Inc. [Online]. Available: \u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Frealitykit\">https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Frealitykit\u003C\u002Fa>&nbsp;\u003C\u002Fp>\n\n\u003Cp>\u003Ca>[3] P. Cozz and T. Parisi, ‘glTF specification 1.0’. Khronos Group, Nov. 03, 2016 [Online]. Available: \u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FglTF\u002Ftree\u002Fmain\u002Fspecification\u002F1.0\">https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FglTF\u002Ftree\u002Fmain\u002Fspecification\u002F1.0\u003C\u002Fa>&nbsp;\u003C\u002Fp>\n\n\u003Cp>\u003Ca>[4] S. Schechter, ‘Everything You Need to Know About USDZ Files’. 3D Cloud Marxent, Mar. 04, 2020 [Online]. Available: \u003C\u002Fa>\u003Ca href=\"https:\u002F\u002Fwww.marxentlabs.com\u002Fusdz-files\u002F\">https:\u002F\u002Fwww.marxentlabs.com\u002Fusdz-files\u002F\u003C\u002Fa>&nbsp;\u003C\u002Fp>","References",[475],{"id":476,"name":477},"855","All industries",[479,482,485],{"id":480,"name":481},"129","Experience design",{"id":483,"name":484},"891","New technologies",{"id":486,"name":487},"21","Software engineering",{"processed":489},"\u003Cp>With recent advancements in hardware performance and technology, Augmented Reality (AR) applications have become more mainstream. Other than immersive applications such as gaming, AR technology is also making its way into other industries such as manufacturing, retail, and medical.\u003C\u002Fp>",{"timestamp":491},1648728000,[493,516],{"status":7,"contactName":494,"contactProfession":495,"contactLinkedinUrl":496,"sharedEmail":499,"sharedRefMedia":500},"Mirko Sciachero","Lead Architect",{"title":497,"url":498,"internal":296},"","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmsciachero\u002F","mirko.sciachero@zuhlke.com",{"id":501,"sharedMediaLegend":204,"mediaImage":502,"name":515},"4780",{"url":503,"width":504,"height":504,"alt":505,"title":204,"size":506,"mime":222,"variations":204,"authorVariations":507},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fmirko-profile.jpeg",648,"Mirko-Sciachero profile",38228,[508,511,512,513,514],{"name":509,"url":510,"width":504,"height":504},"FOCAL_POINT11_SMALL","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_1_1_small\u002Fpublic\u002Fimages\u002Fmirko-profile.jpeg.webp?itok=etifPiqZ",{"name":509,"url":510,"width":504,"height":504},{"name":509,"url":510,"width":504,"height":504},{"name":509,"url":510,"width":504,"height":504},{"name":509,"url":510,"width":504,"height":504},"mirko-profile.jpeg",{"status":7,"contactName":517,"contactProfession":518,"contactLinkedinUrl":519,"sharedEmail":521,"sharedRefMedia":522},"Brandon Lim","Software Engineer",{"title":497,"url":520,"internal":296},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fbrandon-l-4479ab64\u002F","brandon.lim@zuhlke.com",{"id":523,"sharedMediaLegend":204,"mediaImage":524,"name":536},"2990",{"url":525,"width":526,"height":526,"alt":527,"title":204,"size":528,"mime":222,"variations":204,"authorVariations":529},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fbrandon-lim_0_0.jpeg",519,"Brandon Lim, Zuhlke Asia",75661,[530,532,533,534,535],{"name":509,"url":531,"width":526,"height":526},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_1_1_small\u002Fpublic\u002Fimages\u002Fbrandon-lim_0_0.jpeg.webp?itok=1Wr0Tywe",{"name":509,"url":531,"width":526,"height":526},{"name":509,"url":531,"width":526,"height":526},{"name":509,"url":531,"width":526,"height":526},{"name":509,"url":531,"width":526,"height":526},"brandon-lim_0_0.jpeg",[538,570,612,640],{"id":539,"path":540,"sharedTeaserTitle":541,"sharedTeaserRefMedia":542,"sharedTaxrefIndustries":561,"sharedTaxrefExpertises":565},"639","\u002Fen\u002Finsights\u002Freshaping-customer-experience-in-insurance","Reshaping Customer Experience in Insurance",{"id":543,"sharedMediaLegend":204,"mediaImage":544,"name":560},"408",{"url":545,"width":546,"height":547,"alt":548,"title":204,"size":549,"mime":222,"variations":204,"relatedContentVariations":550},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Finsurance-reshaping-cx.jpg",693,520,"Group of insurerers handshaking",260104,[551,554,555,558,559],{"name":225,"url":552,"width":546,"height":553},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_small\u002Fpublic\u002Fimages\u002Finsurance-reshaping-cx.jpg.webp?itok=ZeGgHQGl",462,{"name":225,"url":552,"width":546,"height":553},{"name":556,"url":557,"width":546,"height":553},"FOCAL_POINT32_MEDIUM","https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_medium\u002Fpublic\u002Fimages\u002Finsurance-reshaping-cx.jpg.webp?itok=AdSfT_3C",{"name":556,"url":557,"width":546,"height":553},{"name":556,"url":557,"width":546,"height":553},"insurance-reshaping-cx.jpg",[562],{"id":563,"name":564},"11","Insurance",[566,569],{"id":567,"name":568},"944","User \u002F customer experience",{"id":480,"name":481},{"id":571,"path":572,"sharedTeaserTitle":573,"sharedTeaserRefMedia":574,"sharedTaxrefIndustries":592,"sharedTaxrefExpertises":596},"25541","\u002Fen\u002Finsights\u002Fai-in-product-development-revolution-or-risk","AI in product development: revolution or risk?",{"id":575,"sharedMediaLegend":204,"mediaImage":576,"name":591},"169240",{"url":577,"width":578,"height":579,"alt":580,"title":204,"size":581,"mime":222,"variations":204,"relatedContentVariations":582},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fai-product-development-.jpg",1400,732,"On the left hand-side an AI-created image with a women with headphones on. On the right hand-side a black headphone.",147627,[583,585,586,589,590],{"name":225,"url":584,"width":227,"height":228},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_small\u002Fpublic\u002Fimages\u002Fai-product-development-.jpg.webp?itok=L61O_ne_",{"name":225,"url":584,"width":227,"height":228},{"name":556,"url":587,"width":588,"height":579},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_medium\u002Fpublic\u002Fimages\u002Fai-product-development-.jpg.webp?itok=6ww_aTpV",1098,{"name":556,"url":587,"width":588,"height":579},{"name":556,"url":587,"width":588,"height":579},"ai-product-development-.jpg",[593],{"id":594,"name":595},"10","Industrial sector",[597,600,603,606,607,608,611],{"id":598,"name":599},"110","AI",{"id":601,"name":602},"886","Tech innovation",{"id":604,"name":605},"19","Digital strategy",{"id":567,"name":568},{"id":480,"name":481},{"id":609,"name":610},"20","Hardware engineering",{"id":483,"name":484},{"id":613,"path":614,"sharedTeaserTitle":615,"sharedTeaserRefMedia":616,"sharedTaxrefIndustries":633,"sharedTaxrefExpertises":637},"7550","\u002Fen\u002Finsights\u002Fdigital-transformation-with-smart-retail-from-buzzword-to-reality","Digital transformation with smart retail: From buzzword to reality ",{"id":617,"sharedMediaLegend":204,"mediaImage":618,"name":632},"137090",{"url":619,"width":620,"height":621,"alt":622,"title":204,"size":623,"mime":222,"variations":204,"relatedContentVariations":624},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Faugmented-reality-retail-marketing-concept.jpg",640,427,"Mobile device showing augmented reality application in retail store",26049,[625,627,628,630,631],{"name":225,"url":626,"width":620,"height":621},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_small\u002Fpublic\u002Fimages\u002Faugmented-reality-retail-marketing-concept.jpg.webp?itok=4OsualI_",{"name":225,"url":626,"width":620,"height":621},{"name":556,"url":629,"width":620,"height":621},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_medium\u002Fpublic\u002Fimages\u002Faugmented-reality-retail-marketing-concept.jpg.webp?itok=NHbjCP95",{"name":556,"url":629,"width":620,"height":621},{"name":556,"url":629,"width":620,"height":621},"augmented-reality-retail-marketing-concept.jpg",[634],{"id":635,"name":636},"9","Commerce & retail",[638,639],{"id":480,"name":481},{"id":486,"name":487},{"id":641,"path":642,"sharedTeaserTitle":643,"sharedTeaserRefMedia":644,"sharedTaxrefIndustries":662,"sharedTaxrefExpertises":664},"25779","\u002Fen\u002Finsights\u002Fsustainable-web-design","Sustainable web design: how UX impacts sustainable product design",{"id":645,"sharedMediaLegend":204,"mediaImage":646,"name":661},"169731",{"url":647,"width":648,"height":649,"alt":650,"title":204,"size":651,"mime":222,"variations":204,"relatedContentVariations":652},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fimages\u002Fworld-map-tech-environment_1.jpg",1000,563,"World map digitalised in blue",143884,[653,655,656,659,660],{"name":225,"url":654,"width":227,"height":228},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_small\u002Fpublic\u002Fimages\u002Fworld-map-tech-environment_1.jpg.webp?itok=vJlfAxtO",{"name":225,"url":654,"width":227,"height":228},{"name":556,"url":657,"width":658,"height":649},"https:\u002F\u002Fcms.zuehlke.com\u002Fsites\u002Fdefault\u002Ffiles\u002Fstyles\u002Ffocal_point_3_2_medium\u002Fpublic\u002Fimages\u002Fworld-map-tech-environment_1.jpg.webp?itok=fLC913oI",845,{"name":556,"url":657,"width":658,"height":649},{"name":556,"url":657,"width":658,"height":649},"world-map-tech-environment.jpg",[663],{"id":476,"name":477},[665,666,669,670,671,672,675],{"id":604,"name":605},{"id":667,"name":668},"887","Business transformation",{"id":480,"name":481},{"id":567,"name":568},{"id":486,"name":487},{"id":673,"name":674},"608","Sustainability",{"id":676,"name":677},"890","Sustainable products"]