<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Artificial Intelligence &amp; Algorithms | RENOR &amp; Partners S.r.l.</title>
	<atom:link href="https://renor.it/en/blog/artificial-intelligence-algorithms/feed/" rel="self" type="application/rss+xml" />
	<link>https://renor.it/en/blog/artificial-intelligence-algorithms/</link>
	<description></description>
	<lastBuildDate>Tue, 10 Nov 2026 13:13:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Artificial Intelligence Consulting for Businesses: How to Choose and What to Expect</title>
		<link>https://renor.it/en/blog/artificial-intelligence-algorithms/ai-consulting-for-businesses/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Tue, 10 Nov 2026 13:13:16 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[digital transformation]]></category>
		<category><![CDATA[IT consulting]]></category>
		<guid isPermaLink="false">https://renor.it/blog/artificial-intelligence-algorithms/ai-consulting-for-businesses/</guid>

					<description><![CDATA[<p>Learn how to choose the right AI consulting for your business and what benefits to expect. Strategies and artificial intelligence solutions for growth.</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/ai-consulting-for-businesses/">Artificial Intelligence Consulting for Businesses: How to Choose and What to Expect</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">What AI consulting really means for a business</h2><p class="wp-block-paragraph">When people talk about artificial intelligence consulting, many picture a complex technological intervention available only to large corporations with unlimited budgets. The reality is far more practical and aligned with the everyday needs of a company: helping your business understand where and how AI can deliver measurable results, steering clear of investments driven by whatever&#039;s trendy at the moment.</p><p class="wp-block-paragraph">Good consulting doesn&#039;t start with technology—it starts with your processes. First, we look at how you work today, where time gets wasted, where errors or costs pile up, which repetitive tasks eat away hours that your people could spend doing something more valuable. Only after this analysis does it make sense to ask whether and where artificial intelligence is actually the right answer.</p><p class="wp-block-paragraph">The next step is identifying use cases with real concrete returns. Not everything that&#039;s technically possible makes financial sense. A serious consultant puts only a few priority initiatives on the table, estimating costs, timelines and expected benefits, and confidently eliminates anything that adds more complexity than value.</p><ul class="wp-block-list"><li>Process analysis: understand where costs, bottlenecks and errors come from before proposing any solution.</li><li>Use case identification: select a few initiatives with clear, measurable return on investment.</li><li>Solution selection: evaluate whether to use off-the-shelf tools or develop a custom solution.</li></ul><p class="wp-block-paragraph">This last point is where you can tell the difference between a real consultant and an AI know-it-all. Often the best answer is a ready-made solution—faster and cheaper to implement. In other cases, a custom solution is what you need, because your process is unique and no standard product truly addresses it. Anyone who sells you the same solution regardless of the problem isn&#039;t advising you—they&#039;re selling to you.</p><p class="wp-block-paragraph">This is where solid IT consulting makes all the difference: it doesn&#039;t just talk about artificial intelligence in the abstract, but places it in the real context of your systems, the data you have and your business goals. AI isn&#039;t an end goal—it&#039;s a tool among many others, to be used when it&#039;s genuinely the smartest choice.</p><h2 class="wp-block-heading">When it makes sense to hire an AI consultant (and when it doesn&#039;t)</h2><p class="wp-block-paragraph">Not all companies are ready for an artificial intelligence project, and not all really need one right away. Before investing time and budget, it&#039;s worth recognizing the concrete signals that point to real maturity. Often it&#039;s not about technology, but about how the company operates, collects data, and makes decisions on a daily basis.</p><p class="wp-block-paragraph">There are some recurring situations that make it worthwhile to bring in a consultant. If you recognize yourself in more than one of these points, it&#039;s probably the right time for a serious evaluation.</p><ul class="wp-block-list"><li>Your data is scattered across spreadsheets, different management systems, and email inboxes, with no one having an updated big picture.</li><li>Repetitive tasks (data entry, request sorting, manual checks) eat up hours of work every week without adding real value.</li><li>Important decisions are based mostly on the experience and intuition of a few people, rather than on verifiable numbers.</li><li>The volume of information keeps growing but your ability to analyze it stays the same, and answering simple questions takes too long.</li><li>You&#039;ve already tried introducing AI tools on your own, but the results have been disappointing or barely usable.</li></ul><p class="wp-block-paragraph">On the flip side, there are times when it&#039;s better to wait. If your business processes aren&#039;t clearly defined yet, if your data is scarce or unreliable, or if your goal is fuzzy and you&#039;re just chasing a trend, AI risks becoming an expense with no return. In these cases the priority is first to get your house in order: organize your information, clarify your objectives, and stabilize your workflows.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Artificial intelligence amplifies what already works: if the foundations are shaky, it amplifies the problems too.</p></blockquote><p class="wp-block-paragraph">This is precisely why solid IT consulting can come before or alongside your AI journey: it helps you assess the state of your systems, understand which data is truly usable, and build the technical foundations on which an AI project can actually stand. So reaching out to a consultant doesn&#039;t mean jumping straight into technology—it means being honest about where you are now and figuring out the most sensible next step for your business.</p><h2 class="wp-block-heading">The most concrete AI use cases for SMBs</h2><p class="wp-block-paragraph">The value of artificial intelligence isn&#039;t measured by the technology used, but by the problems it solves. For an SMB, the most interesting use cases are those that free up time, reduce errors, and improve daily decision-making. Here are four areas where results are concrete and measurable from the first few months.</p><h2 class="wp-block-heading">Document automation</h2><p class="wp-block-paragraph">Invoices, contracts, orders, emails with attachments: every company manages a constant flow of documents. AI can read, classify, and extract relevant information, inserting it directly into your existing management systems. The result is less manual work, fewer transcription errors, and faster processing times—especially in accounting and order management.</p><h2 class="wp-block-heading">Tailored assistants and agents</h2><p class="wp-block-paragraph">An AREALE assistant trained on company data and procedures can respond to clients and colleagues, retrieve internal information, or guide repetitive tasks. Unlike a simple chatbot, a tailored agent operates within your processes and tools. This deserves a deeper dive later on, because the real difference between a generic assistant and one that&#039;s truly useful lies precisely in personalization.</p><h2 class="wp-block-heading">Predictive analytics and decision support</h2><p class="wp-block-paragraph">By analyzing sales history, inventory, or customer behavior, AI helps forecast demand, spot customer churn risk, or optimize purchases. It doesn&#039;t replace decision-makers, but provides solid ground for choosing with greater confidence, turning data already in your company into actionable insights.</p><p class="wp-block-paragraph">The smartest way to understand if a use case is right for you is to start with a focused prototype—a Proof of Concept on a single process. This lets you verify results and ROI before committing significant resources, a step we&#039;ll cover in detail later on.</p><p class="wp-block-paragraph">In all these scenarios, integration with your existing systems is critical: this is where our IT Consulting service supports your company in connecting AI solutions to your current infrastructure, so the technology creates value without disrupting everyone&#039;s daily work.</p><h2 class="wp-block-heading">From Problem to Project: How an AI Consultant Works</h2><p class="wp-block-paragraph">A well-managed artificial intelligence project doesn&#039;t start with technology, but with a concrete problem to solve. The path a serious consultant follows is structured in precise phases: each one reduces uncertainty and enables stakeholders to decide, based on evidence, whether to move forward or stop. Here&#039;s how it works in practice.</p><ul class="wp-block-list"><li>Process analysis: observe how the company actually operates, where time is wasted, where errors accumulate, and which repetitive tasks burden people. This is the time to listen to those who work on these tasks every day, not just to read documents.</li><li>Goal definition: translate needs into measurable targets. Not &#039;use AI&#039;, but for example &#039;reduce response time to customer requests by 30%&#039;. Without a clear objective, there&#039;s no way to understand if the project succeeds.</li><li>Prototype or Proof of Concept: build a scaled-down version of the solution on a real, limited case. This verifies feasibility with contained investment, before committing significant resources.</li><li>Results validation: compare the data obtained against initial goals. If the numbers are convincing, proceed; otherwise adjust course or abandon the project, avoiding unnecessary spending.</li><li>Production deployment: the solution is integrated into existing tools and workflows, with staff training and a monitoring plan over time.</li></ul><p class="wp-block-paragraph">This phased progression is the genuine form of protection for the entrepreneur: each phase has a cost and a verifiable outcome, and advancing to the next only happens with concrete proof. This way, investment grows in proportion to demonstrated results, not promises.</p><p class="wp-block-paragraph">This is where our IT Consulting service steps in as a methodical partner: we support the company through each of these phases, keeping focus on the starting problem and measurable objectives. Artificial intelligence is not imposed from above, but deployed where it delivers real, sustainable value, with attention to integration with existing systems and the people who will use them every day.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A good AI project is measured not by the technology used, but by the problems it solves and the results it leaves in the company.</p></blockquote><h2 class="wp-block-heading">How much does AI consulting cost and how to evaluate the investment</h2><p class="wp-block-paragraph">There&#039;s no standard price list for AI consulting, because the cost depends on concrete, measurable variables. Before even asking for a quote, it&#039;s worth understanding which factors truly drive the price: that way, the figure you receive will be clear and comparable, not a number pulled out of thin air.</p><p class="wp-block-paragraph">The main elements that determine the investment are these:</p><ul class="wp-block-list"><li>The complexity of the problem: automating a single repetitive task costs much less than redesigning an entire business process.</li><li>The state of your data: if information is organized and accessible, you start sooner; if it needs to be recovered and cleaned up, preliminary work is required.</li><li>The level of integration with the systems you already use (ERP, CRM, email): more touchpoints mean more development and testing time.</li><li>The engagement model: an initial assessment lasting a few days has a contained cost, a full project followed over time requires a different budget.</li><li>Ongoing maintenance: an AI solution needs to be monitored and updated, and this affects the overall cost beyond the initial release.</li></ul><p class="wp-block-paragraph">To assess whether the investment makes sense, shift your focus from price to return. Start with a number you already know: how many hours per week does your team spend on a repetitive task, how much does a manual error cost you, how many opportunities do you lose due to slow response times. Compare that cost against the solution: if AI frees up twenty hours a month of qualified work, the payback calculation becomes straightforward.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The right question isn&#039;t &#039;how much does it cost&#039;, but &#039;how soon do I break even and what happens if I do nothing&#039;.</p></blockquote><p class="wp-block-paragraph">A practical tip: start with a defined, measurable scope, verify results in that area, then decide whether to expand. This approach reduces risk and makes the investment gradual. For the financial details of AI agent-based projects, you&#039;ll find more specific references in our dedicated guide.</p><p class="wp-block-paragraph">If you want a realistic estimate for your situation, the quickest way is a direct conversation. With our IT Consulting service we analyze your situation and give you a concrete assessment on feasibility and priorities: the ideal starting point to understand where AI really makes sense and where it&#039;s better to wait.</p><h2 class="wp-block-heading">How to choose the right AI partner</h2><p class="wp-block-paragraph">Once you&#039;ve clarified your goals, budget, and expectations, you face the most crucial decision: who to trust. The artificial intelligence consulting market is crowded, and it&#039;s not always easy to tell who delivers concrete results from those who make empty promises. Here are the practical criteria to focus on to make an informed choice.</p><ul class="wp-block-list"><li>Verifiable expertise: ask for references, real case studies, and measurable results achieved with companies similar to yours. A good partner explains not just what they can do, but also where an AI project might have limitations or risks.</li><li>Transparency on method and timeline: be wary of those who promise miracle solutions in just a few weeks. A serious consultant defines phases, intermediate objectives, and criteria to understand whether the project is working.</li><li>Care for privacy and data: your company data is a sensitive asset. Check how it&#039;s handled, stored, and protected, and make sure the provider complies with current data protection regulations.</li><li>Tailored approach: avoid anyone proposing the same package to everyone. The right solution starts from your actual processes, the tools you already use, and the people who will work with it every day.</li><li>Long-term support: AI isn&#039;t a project that ends at testing. You need a partner who can stay with you afterward, with maintenance, updates, and ongoing support.</li></ul><p class="wp-block-paragraph">Another often overlooked aspect is the partner&#039;s ability to integrate AI into a coherent IT infrastructure. Artificial intelligence doesn&#039;t exist in isolation: it must integrate with your management systems, workflows, and solutions already in place. That&#039;s why it&#039;s helpful to work with someone who has a comprehensive view of IT, not just specialized knowledge of a single technology.</p><p class="wp-block-paragraph">RENOR&#039;s IT Consulting service was built for exactly this purpose: to support companies in choosing and adopting the most suitable technologies, with attention to data, processes, and the real needs of your workforce. If you want to understand whether and how artificial intelligence can create value for your business, the simplest way to start is to talk about it.</p><p class="wp-block-paragraph">Contact RENOR&#039;s IT consulting team for an initial free assessment: we&#039;ll analyze your situation together and outline the concrete steps to take.</p>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/it-consulting/">IT Consulting</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/ai-consulting-for-businesses/">Artificial Intelligence Consulting for Businesses: How to Choose and What to Expect</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI Prototype and Proof of Concept for businesses: costs and how they work</title>
		<link>https://renor.it/en/blog/intelligenza-artificiale-algoritmi/ai-prototype-proof-of-concept-for-business-cost/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 10 Aug 2026 09:58:51 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[prototyping]]></category>
		<guid isPermaLink="false">https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-prototype-proof-of-concept-for-business-cost/</guid>

					<description><![CDATA[<p>Discover the cost of developing an AI prototype and Proof of Concept for your business. Complete guide on how they work and budget requirements.</p>
<p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/ai-prototype-proof-of-concept-for-business-cost/">AI Prototype and Proof of Concept for businesses: costs and how they work</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">What is an AI proof of concept and why you should start here</h2><p class="wp-block-paragraph">An AI proof of concept (PoC) is a scaled-down, targeted version of an idea, built to answer one specific question: does this AI-powered solution actually work in my business context? It&#039;s not the finished product, it&#039;s not designed for every department, and it doesn&#039;t need to support thousands of users. It&#039;s a controlled experiment with clear objectives and a deliberately narrow scope, designed to transform an intuition into tangible proof.</p><p class="wp-block-paragraph">Let&#039;s take a practical example. Imagine a company that receives hundreds of customer request emails every week and wants to automatically sort them. Instead of immediately building a complete system, with a PoC you take a real sample of those emails and test whether AI can classify them with acceptable accuracy. In just a few weeks you get a data-driven answer, not empty promises.</p><p class="wp-block-paragraph">For a small or medium-sized business, this approach is the least risky way to proceed, for some very concrete reasons:</p><ul class="wp-block-list"><li>Limited investment: you spend a fraction of a full project to understand whether it&#039;s worth going further.</li><li>Quick turnaround: results arrive in weeks, not months, allowing you to make decisions fast.</li><li>Proof-based decisions: you evaluate feasibility on your actual company data, not theoretical assumptions.</li><li>Contained risk: if the idea doesn&#039;t hold up, you stop before committing significant budget and resources.</li></ul><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The value of a PoC isn&#039;t just in proving that something works—it&#039;s also in recognizing in time when it makes sense to change direction.</p></blockquote><p class="wp-block-paragraph">There&#039;s also a technical aspect that&#039;s often overlooked: even at the prototype stage, you need development expertise and appropriate cloud infrastructure to run tests reliably without having to purchase dedicated hardware. This is where our work on development and cloud comes in: we build the PoC on solid foundations so that, if validation is successful, scaling to the full project is a natural evolution rather than starting from scratch. This way the prototype isn&#039;t a sunk investment, but the first concrete building block of your final solution.</p><h2 class="wp-block-heading">How much does an AI prototype really cost: the factors that determine the price</h2><p class="wp-block-paragraph">There is no fixed price list for an AI prototype, and be wary of anyone who quotes you a price before understanding the problem. The cost depends on some concrete variables that you can assess right now, even before talking to a vendor. Understanding them helps you distinguish a serious quote from an inflated one.</p><ul class="wp-block-list"><li>Data availability and quality: if you already have organized and accessible data, you can get started quickly. If data needs to be collected, cleaned, or extracted from multiple sources, this phase can be more time-consuming than developing the actual model.</li><li>Model complexity: using an existing model (for example to analyze text or classify documents) costs much less than training a custom one for a specific use case.</li><li>Integration with your systems: an isolated prototype is economical; making it work with your ERP, CRM, or internal software increases time and costs.</li><li>Duration and goal: a few weeks to validate an idea is different from a longer journey with multiple iterations and real users involved.</li></ul><p class="wp-block-paragraph">To give realistic orders of magnitude: a focused proof of concept, with data already available and without complex integrations, typically falls in the range of a few thousand euros and a few weeks of work. When data preparation, integration with company systems, or dedicated infrastructure requirements come into play, the effort grows accordingly. These are guidelines, not guarantees: only analyzing your specific case allows for a reliable estimate.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The right question is not &quot;how much does an AI prototype cost&quot;, but &quot;how much value will we get from the answer it provides&quot;.</p></blockquote><p class="wp-block-paragraph">One often-overlooked point is the infrastructure on which the prototype runs. Even in the testing phase, you need environments to develop, run models, and connect to data securely. This is where development and cloud expertise make the difference: they allow you to start with resources sized for the experiment, without heavy investments in technology that might prove unnecessary, and to scale only if the prototype proves its value.</p><h2 class="wp-block-heading">Phases of a PoC Project: From Data Collection to Working Demo</h2><p class="wp-block-paragraph">An AI proof of concept is not a leap in the dark: it follows an orderly path with clear and verifiable steps. Knowing in advance what happens at each phase helps you understand what you&#039;ll get, when you&#039;ll get it, and how to judge whether the result justifies the investment. Below are the typical stages of a well-structured project.</p><ul class="wp-block-list"><li>Objective definition: establish which problem the prototype must solve and which metric will measure success (for example, time saved, forecast accuracy, error reduction).</li><li>Data collection and assessment: verify what data is available, in what format, and with what quality. This is often the most critical phase: incomplete or unorganized data must be prepared before it can be used.</li><li>Solution design: choose the most suitable technical approach and define the architecture, including where to run the prototype (cloud environment) to ensure scalability and security.</li><li>Prototype development: build a functional but essential version, focused on the key function, without getting sidetracked by secondary details.</li><li>Testing and measurement: compare the results against the metric defined at the start to understand whether the prototype delivers on its promises.</li><li>Working demo and evaluation: present the outcome using real company data and decide, based on the facts, whether to proceed toward a full-scale solution.</li></ul><p class="wp-block-paragraph">In terms of timeline, a well-scoped PoC typically wraps up in a few weeks. Duration depends mainly on data availability and the clarity of the objective: the better these two factors are defined upfront, the faster and more straightforward the process.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The value of a prototype lies not in the technology itself, but in the concrete answer it provides to a business question.</p></blockquote><p class="wp-block-paragraph">Our development and cloud work covers the entire journey: from data preparation to prototype implementation, right through to deployment in a cloud environment ready to scale alongside your project. So if the demo is convincing, the transition to a stable solution starts from solid ground.</p><h2 class="wp-block-heading">Examples of high-ROI AI use cases for businesses</h2><p class="wp-block-paragraph">The best way to understand whether artificial intelligence can deliver value to your company is to start with concrete problems that already cost you time or money. Below you&#039;ll find three common scenarios, with guidance on how to estimate their return.</p><h2 class="wp-block-heading">Document automation</h2><p class="wp-block-paragraph">Invoices, purchase orders, contracts, hand-filled forms: every day your staff extracts data from documents and re-enters it into management systems or spreadsheets. An AI system can read these documents, extract the relevant fields, and automatically insert them into your systems. To estimate the value, multiply the average time spent per document by the number of documents processed monthly and your hourly labor cost: often you&#039;ll free up dozens of hours per month, while also reducing transcription errors.</p><h2 class="wp-block-heading">Predictions from historical data</h2><figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/08/prototipo-ai-proof-of-concept-per-aziende-quanto-costa-e-come-funziona-fig-1-800x800.png" alt="Team aziendale valuta un prototipo software su un laptop in ufficio" class="wp-image-3084" srcset="https://renor.it/wp-content/uploads/2026/08/prototipo-ai-proof-of-concept-per-aziende-quanto-costa-e-come-funziona-fig-1-800x800.png 800w, https://renor.it/wp-content/uploads/2026/08/prototipo-ai-proof-of-concept-per-aziende-quanto-costa-e-come-funziona-fig-1-150x150.png 150w, https://renor.it/wp-content/uploads/2026/08/prototipo-ai-proof-of-concept-per-aziende-quanto-costa-e-come-funziona-fig-1-300x300.png 300w" sizes="(max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">If you maintain records of sales, consumption, or maintenance, that data can anticipate what will happen next. Some concrete examples:</p><ul class="wp-block-list"><li>Demand forecasting to optimize warehouse inventory and avoid stockouts or excess inventory</li><li>Identifying peak workload periods to plan shifts and resources ahead of time</li><li>Early detection of at-risk customers likely to churn, so you can intervene before losing them</li></ul><p class="wp-block-paragraph">Here, the return is measured in lower tied-up capital costs and recovered revenue from decisions made weeks in advance.</p><h2 class="wp-block-heading">Automatic classification</h2><p class="wp-block-paragraph">Routing support requests, prioritizing emails, categorizing reviews or complaints: these are repetitive tasks that AI can handle consistently and continuously. The benefit is twofold: faster response times and staff freed up to focus on cases that truly require human judgment.</p><p class="wp-block-paragraph">In all these cases, a prototype serves to verify the value on a real case before investing in the full solution. When results confirm the opportunity, the next step is to bring the solution into production in a stable and secure way: this is where development and cloud infrastructure come in, making the system accessible, integrated with your existing tools, and ready to scale with your business volumes.</p><h2 class="wp-block-heading">Mistakes to avoid and how to choose the right partner</h2><p class="wp-block-paragraph">Many AI prototype projects don&#039;t fail because of technological limitations, but because of setup mistakes that could have been prevented from the start. Knowing them in advance allows you to reach the demo with fewer surprises and with a more secure investment.</p><p class="wp-block-paragraph">Here are the most common mistakes we see in companies tackling their first PoC:</p><ul class="wp-block-list"><li>Poor or low-quality data: starting without sufficient, incomplete, or unrepresentative data leads to results that don&#039;t reflect actual operations. It&#039;s better to verify data availability and quality before writing a single line of code.</li><li>Vague objectives: &#039;we want to use AI&#039; isn&#039;t an objective. Without a clear question and a measurable success criterion, the demo risks being interesting but useless for deciding whether to proceed.</li><li>Ignoring scalability: a prototype that works on a developer&#039;s laptop but can&#039;t handle real volumes or integration with company systems becomes a dead end. It&#039;s worth asking yourself from the start what it would take to move into production.</li><li>Confusing the PoC with the finished product: the prototype is meant to validate, not to cover every edge case. Expecting perfection just inflates timelines and costs without real benefit.</li></ul><p class="wp-block-paragraph">A good partner helps you avoid these traps. What to look for: the ability to translate a business objective into a concrete project, transparency about costs and limitations, and especially a vision that goes beyond the demo. Always ask how the prototype can evolve into a stable, integrated solution: that&#039;s where you see the difference between someone selling an experiment and someone building lasting value.</p><p class="wp-block-paragraph">It&#039;s the approach we take on projects at RENOR: we pair consulting services with Development and cloud solutions, so the journey doesn&#039;t stop at the prototype. If the PoC delivers the expected results, you already have a partner capable of taking you toward a solution ready to scale with your business.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The right partner isn&#039;t the one who shows you the most impressive demo, but the one who clearly tells you what it takes to bring it into the real world.</p></blockquote><h2 class="wp-block-heading">From prototype to production: the next steps with RENOR</h2><p class="wp-block-paragraph">A prototype that works in a demo is an excellent starting point, but it&#039;s not yet an operational solution. The real value for the business emerges when the logic validated during the PoC gets integrated into daily processes, proven reliable at real-world volumes, and made available to the people who will use it every day. This is where the concrete return on your investment is realized.</p><p class="wp-block-paragraph">Moving from the experimental phase to production involves different choices compared to building the prototype. It&#039;s no longer about proving that something is possible, but ensuring it works stably, safely, and sustainably over time. This means tackling some aspects that were deliberately simplified in the PoC.</p><ul class="wp-block-list"><li>Integration with management systems and data sources already in use across your organization</li><li>Handling volume growth and performance scaling as your user base expands</li><li>Data security, access control, and regulatory compliance</li><li>Monitoring results over time and maintaining the solution</li><li>Training people and supporting them through operational change</li></ul><p class="wp-block-paragraph">Through our Development and cloud services, we guide companies through exactly this transition: we transform your validated prototype into a truly usable application, hosted on reliable infrastructure designed to grow alongside your business. This way, the idea confirmed by the PoC doesn&#039;t remain an isolated exercise, but becomes a tool that works every day alongside your teams.</p><p class="wp-block-paragraph">We pair technical work with strategic consulting that helps define priorities, evaluate costs against expected benefits, and plan adoption in stages without disrupting existing operations. The goal is to reach informed decisions, not generic promises.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The prototype proves it can be done. Production shows how much value it actually generates.</p></blockquote><p class="wp-block-paragraph">If you already have an idea to validate or a prototype ready to move into production, let&#039;s talk: we can help you define the right path for your situation and turn AI&#039;s potential into measurable results for your business.</p>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/development-and-cloud/">Development and cloud</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/ai-prototype-proof-of-concept-for-business-cost/">AI Prototype and Proof of Concept for businesses: costs and how they work</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Computer vision in industry: how it works and project costs</title>
		<link>https://renor.it/en/blog/intelligenza-artificiale-algoritmi/computer-vision-industry-implementation-quote/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Sun, 09 Aug 2026 09:57:04 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[artificial vision]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[innovation]]></category>
		<guid isPermaLink="false">https://renor.it/blog/intelligenza-artificiale-algoritmi/computer-vision-industry-implementation-quote/</guid>

					<description><![CDATA[<p>Discover how computer vision transforms industries and the true cost of custom projects. Complete guide with quotes and real-world applications.</p>
<p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/computer-vision-industry-implementation-quote/">Computer vision in industry: how it works and project costs</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">What is computer vision and why it matters to manufacturing companies</h2><p class="wp-block-paragraph">Computer vision is the technology that allows a computer to &quot;see&quot; and interpret images and video, just as a human eye would—but with far greater speed, consistency, and precision. In practice, a camera captures images of a product or production line and software analyzes them in real time, detecting shapes, colors, dimensions, defects, or anomalies. The result is a system that observes and makes decisions without fatigue and without attention lapses at the end of a shift.</p><p class="wp-block-paragraph">For a manufacturing company, this translates into very tangible benefits. The first, often the most immediate, concerns quality control: computer vision inspects every single piece on the line, not just a sample, spotting scratches, missing components, misaligned labels, or dimensions outside tolerance. The second is waste reduction: catching a defect in the early stages of the process prevents adding value to an already compromised product and avoids shipping non-conforming goods to customers.</p><ul class="wp-block-list"><li>100% quality control of all pieces, not sampling, with consistent criteria over time</li><li>Waste and return reduction thanks to early defect detection</li><li>Enhanced safety, for example by detecting people in hazardous areas or proper use of protective equipment</li><li>Traceability and objective data on what actually happens in production, useful for decision-making and certifications</li></ul><p class="wp-block-paragraph">It is important to note that computer vision does not replace people, but frees them from repetitive and tedious tasks, such as prolonged visual inspection, allowing them to focus on higher-value work. The real strength, however, is that these systems must be built around the specific needs of each facility: products, defects to recognize, line speed, and goals differ from company to company.</p><p class="wp-block-paragraph">This is why an effective computer vision project almost always begins with custom development, supported by cloud infrastructure capable of collecting, processing, and storing the data generated by cameras. It is precisely in this combination of dedicated software development and cloud services that we operate, transforming a production need into a concrete and sustainable solution over time.</p><h2 class="wp-block-heading">Real-world use cases in industry: from quality control to predictive maintenance</h2><p class="wp-block-paragraph">Computer vision is not an abstract technology: it comes into play whenever an operation requires &quot;looking at&quot; a product or a process and making a decision. That&#039;s why at least one of the scenarios below is likely to match a task you&#039;re already doing manually today, with timeframes and error margins that weigh on your costs.</p><h2 class="wp-block-heading">Defect inspection</h2><p class="wp-block-paragraph">It&#039;s the most widespread application. A camera analyzes each piece on the line and flags scratches, dents, imperfect welds, missing components, or print defects. Unlike sampling inspections, automated inspection examines 100% of production at consistent speed, reducing returns and customer complaints.</p><h2 class="wp-block-heading">Counting and verifying parts</h2><p class="wp-block-paragraph">Counting components in a tray, verifying that a kit is complete before packaging, or measuring the output of a production line are repetitive tasks where human error is common. Artificial vision counts and checks in real time, delivering precise data for inventory and production management.</p><h2 class="wp-block-heading">Reading codes and labels</h2><p class="wp-block-paragraph">Barcodes, QR codes, DataMatrix codes, and printed text are read automatically to track batches, verify label accuracy, and link each product to management systems. Particularly useful where traceability is a regulatory or contractual requirement.</p><h2 class="wp-block-heading">Safety monitoring</h2><p class="wp-block-paragraph">Cameras can detect access to hazardous areas, proper use of protective equipment, or unusual situations near machinery, generating immediate alerts. A concrete tool to help prevent injuries and document compliance.</p><h2 class="wp-block-heading">Toward predictive maintenance</h2><figure class="wp-block-image size-large"><img decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-1-800x800.png" alt="Sistema di visione artificiale che ispeziona componenti su una linea di produzione industriale" class="wp-image-3079" srcset="https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-1-800x800.png 800w, https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-1-150x150.png 150w, https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-1-300x300.png 300w" sizes="(max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">By observing wear, visible vibrations, or variations in the quality of produced parts over time, artificial vision helps catch signs of machinery deterioration before it leads to a production halt. This shifts maintenance from reactive to data-driven and scheduled.</p><p class="wp-block-paragraph">The value of these use cases emerges when images are processed reliably and results flow into your systems. This is where our development and cloud work comes in: we build a custom application for your specific scenario and make it accessible and scalable, so the data you collect remains useful across your entire organization.</p><h2 class="wp-block-heading">How to Build a Computer Vision Project: Key Phases</h2><p class="wp-block-paragraph">A computer vision project doesn&#039;t start with off-the-shelf software—it&#039;s built through a process tailored to your production&#039;s actual needs. Understanding how it develops helps you assess timelines, investments, and expected results before even requesting a quote. Here are the main phases.</p><h2 class="wp-block-heading">1. Requirements Analysis</h2><p class="wp-block-paragraph">You begin with the real problem: what you want to monitor, measure, or detect, at what precision level, and at what line speed. This phase defines measurable objectives—such as the defect detection rate you need—and your equipment&#039;s operational constraints. It&#039;s when you determine whether the project is viable and what return it can deliver.</p><h2 class="wp-block-heading">2. Image Collection and Preparation</h2><p class="wp-block-paragraph">The model learns from examples. You need images of both compliant and defective products, captured under the same lighting and positioning conditions as your actual line. The quality and variety of your data directly impact system reliability—it&#039;s often overlooked, but it&#039;s the phase that makes the real difference.</p><h2 class="wp-block-heading">3. Model Training</h2><p class="wp-block-paragraph">The model is trained on collected images to recognize defects and anomalies. It&#039;s then tested on unseen cases to measure its real accuracy and correct systematic errors. It&#039;s an iterative process: you progressively refine it until you reach the agreed performance levels.</p><h2 class="wp-block-heading">4. Hardware and Software Integration</h2><figure class="wp-block-image size-large"><img decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-2-800x800.png" alt="Tecnici analizzano i dati di un sistema di computer vision in un ufficio aziendale" class="wp-image-3080" srcset="https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-2-800x800.png 800w, https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-2-150x150.png 150w, https://renor.it/wp-content/uploads/2026/08/computer-vision-nellindustria-come-funziona-e-quanto-costa-un-progetto-su-misura-fig-2-300x300.png 300w" sizes="(max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">The model needs to connect to the physical world: cameras, lighting, rejection systems, and management software. This is where development and cloud expertise come in, enabling the vision component to communicate with your company&#039;s infrastructure, process data, and deliver insights to decision-makers.</p><h2 class="wp-block-heading">5. Line Testing and Full Implementation</h2><p class="wp-block-paragraph">The final phase validates the system directly on your production line, measuring performance and false alarms in real-world conditions. Only after this verification does the project go live, with continuous monitoring to maintain reliability over time.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Understanding these phases allows you to submit a more precise quote request and partner with someone capable of guiding the entire journey, from concept to working system.</p></blockquote><h2 class="wp-block-heading">What determines the quote: the factors that drive costs</h2><p class="wp-block-paragraph">There is no standard price list valid for all computer vision projects, and it&#039;s a good rule to be suspicious of anyone quoting a fixed price without first seeing your production line. The cost depends on a set of technical and organizational variables that must be evaluated case by case. Understanding what these are will help you read an offer with a critical eye and engage with your supplier more thoughtfully.</p><ul class="wp-block-list"><li>Task complexity: distinguishing a part that is present from one that is absent is far simpler, and therefore cheaper, than classifying dozens of surface defects under varying lighting conditions. The more nuanced the task, the more data needed to train the system and the more time required for fine-tuning.</li><li>Number and type of cameras: each additional viewpoint increases costs for hardware, installation, and calibration. The choice between standard cameras, high-resolution units, or specialized options (thermal, 3D) also has a significant impact.</li><li>Processing hardware: analyzing images in real time directly on the production line requires different computing power than less frequent inspections. This is where the choice between local processing and cloud solutions comes into play, with implications for both initial investment and ongoing costs.</li><li>Integration with existing systems: connecting computer vision to ERP systems, PLCs, traceability systems, or already-installed machinery is often the trickiest part. The more heterogeneous or legacy your ecosystem is, the greater the development effort will be.</li><li>Maintenance and evolution: a model needs to be monitored, updated when products or production conditions change, and supported over time. These recurring costs should be budgeted from the start, not treated as an afterthought.</li></ul><p class="wp-block-paragraph">Precisely because these variables combine differently in each company, our approach with development and cloud services begins with a thorough analysis of your context, to build a solution tailored to your actual production needs and avoid both overestimation and undersized investments.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The most reliable quote is not the one that arrives first, but the one that emerges after truly understanding what you need to monitor and which systems it must work with.</p></blockquote><h2 class="wp-block-heading">Hardware and infrastructure: cameras, sensors, and cloud</h2><p class="wp-block-paragraph">An artificial vision project doesn&#039;t run on algorithms alone: the quality of results depends largely on how images are captured and where they are processed. Before discussing software, it&#039;s worth understanding which physical components come into play and how they integrate with the digital infrastructure.</p><p class="wp-block-paragraph">The starting point is image acquisition. A poorly chosen or incorrectly positioned camera will generate images that no model, however sophisticated, can reliably interpret. This is why hardware selection must be tailored to the specific problem: the speed of the production line, the size of the defect to be detected, and the lighting conditions in the environment.</p><ul class="wp-block-list"><li>Cameras: resolution, frame rate, and sensor type (color, monochrome, infrared) should be selected based on what needs to be observed.</li><li>Lighting: often underestimated, it is crucial for consistently and repeatably bringing out defects and details.</li><li>Additional sensors: temperature, vibration, or proximity can complement vision systems for applications like predictive maintenance.</li><li>Processing units: from small edge devices installed directly on the machine to full servers, depending on how quickly a response is needed.</li></ul><p class="wp-block-paragraph">The second strategic choice concerns where processing happens. Some decisions must occur in real time, right on the production line, to immediately stop a defective part: here, reliable and properly sized electronics are essential. Other activities, like archiving historical image data, analyzing trends, and retraining models, instead find the cloud to be the ideal environment for scalability and data accessibility.</p><p class="wp-block-paragraph">The value comes from the balance between these two worlds. A well-designed architecture combines local processing for immediate responses with a cloud platform that centralizes data, dashboards, and updates, so that facility managers can monitor plants remotely.</p><p class="wp-block-paragraph">It is precisely in this space that our development and cloud activities take place: we build the software infrastructure that collects, manages, and processes data from the plants, integrating it with the hardware in the field. This way, the computer vision project doesn&#039;t remain an isolated experiment, but becomes a solid, updatable system integrated into business processes.</p><h2 class="wp-block-heading">How to request a quote for your business</h2><p class="wp-block-paragraph">Getting a reliable quote doesn&#039;t mean you need to have all the answers already. In fact, the real value of consulting lies in transforming a still-generic need (for example &quot;we&#039;d like to reduce production defects&quot;) into a project with measurable goals, defined timelines, and costs. That&#039;s why the first step isn&#039;t technical—it&#039;s about listening.</p><p class="wp-block-paragraph">To help us come prepared and provide you with a realistic estimate from your first conversation, it&#039;s useful to gather some basic information about the process you want to improve.</p><ul class="wp-block-list"><li>The problem to solve: which defect, inspection, or manual task you want to automate or support.</li><li>Production volumes: how many parts or inspections per day, and the line speed.</li><li>Working environment: lighting, available space, presence of dust, humidity, or vibrations.</li><li>What you already have: cameras, sensors, management systems, or existing cloud infrastructure.</li><li>Business objective: reducing defects, fewer machine downtime, traceability, or labor savings.</li></ul><p class="wp-block-paragraph">With these details, we can tell you whether the project is feasible, which approach to take, and how to structure it in phases—avoiding both unnecessary oversizing and solutions that won&#039;t hold up over time. Many projects start with a well-defined, measurable scope and then expand once the return on investment has been proven.</p><p class="wp-block-paragraph">A computer vision project, beyond image analysis, requires custom software built around your needs and solid infrastructure to run it on. This is where our Development and Cloud services come in—we design the tailored software solution and deploy it in a scalable and secure way.</p><p class="wp-block-paragraph">If you&#039;d prefer to start with a broader assessment of your situation before defining the single project, our IT Consulting path will help you clarify priorities, budget, and concrete next steps.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Tell us about your process and the goal you want to achieve: we&#039;ll respond with a clear assessment and a custom quote, with no obligation.</p></blockquote>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/development-and-cloud/">Development and cloud</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/computer-vision-industry-implementation-quote/">Computer vision in industry: how it works and project costs</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Process Automation with AI for SMEs: What Does It Really Cost</title>
		<link>https://renor.it/en/blog/intelligenza-artificiale-algoritmi/ai-process-automation-for-sme-cost/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 03 Aug 2026 09:32:52 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[ROI]]></category>
		<guid isPermaLink="false">https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-process-automation-for-sme-cost/</guid>

					<description><![CDATA[<p>Discover the true cost of automating processes with AI for your SME. Complete analysis of costs, ROI, and affordable solutions for your business.</p>
<p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/ai-process-automation-for-sme-cost/">Process Automation with AI for SMEs: What Does It Really Cost</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">What It Means to Automate Processes with AI in an SME</h2><p class="wp-block-paragraph">Automating a process with artificial intelligence means delegating certain repetitive tasks to a system that currently consume people&#039;s time—but with an important difference from the past: the software doesn&#039;t simply execute rigid rules. Instead, it can interpret unstructured information and adapt to different situations.</p><p class="wp-block-paragraph">To understand the added value, it helps to compare it with traditional automation, often called RPA. Classic RPA works like a chain of fixed instructions: if a document always arrives in the same format, in the same position, the system processes it correctly. But change the format slightly, move a field around, or write text in an unusual way and the process breaks down. AI, by contrast, understands content even when its form changes: it reads an invoice from a new supplier, interprets an email written in free-form language, and grasps the intent of a request.</p><p class="wp-block-paragraph">For an SME, this translates into very concrete advantages in areas where manual work weighs most heavily:</p><ul class="wp-block-list"><li>Document management: automatic data extraction from contracts, delivery notes and purchase orders, with organized and searchable filing.</li><li>Invoicing and administration: reading incoming invoices, checking amounts and matching them to the correct suppliers, reducing errors and processing time.</li><li>Customer care: instant responses to frequently asked customer questions and intelligent routing of requests to the most suitable person.</li><li>Human resources: initial resume screening, handling recurring employee questions and support with internal administrative tasks.</li></ul><p class="wp-block-paragraph">The key point is that you don&#039;t need to overhaul your entire company: you start with one or two well-defined processes where the return is measurable and visible within weeks. The challenge, for those without in-house technical expertise, lies in understanding which activities are worth automating first and how to integrate them with software already in use, without wastage.</p><p class="wp-block-paragraph">This is precisely where IT consulting makes the difference: it helps you analyze existing processes, identify the most valuable interventions, and establish a sustainable path forward, avoiding blind investments or solutions that end up gathering dust.</p><h2 class="wp-block-heading">Which processes are worth automating first</h2><p class="wp-block-paragraph">Not all business processes deliver the same return when automated. The most common mistake is starting with the most complex or most &#039;visible&#039; task, when in reality the quickest payback almost always comes from repetitive operations that currently consume hours of work without creating real value. To direct your investment strategically, it makes sense to evaluate each process against three simple criteria.</p><ul class="wp-block-list"><li>Frequency: how many times a day, week, or month is it performed? The more frequent the task, the faster automation pays for itself.</li><li>Repeatability: does the activity always follow the same steps and rules? A standardized process is far simpler and cheaper to automate than one that varies case by case.</li><li>Manual errors: how often do mistakes occur, such as data entry errors, delays, or oversights? Where human error carries a real cost, automation delivers a dual benefit: saved time and more consistent quality.</li></ul><p class="wp-block-paragraph">By cross-referencing these three criteria, the ideal candidates emerge. In a small-to-medium business, these are almost always high-volume, low-value-add tasks: importing and reconciling data between accounting software and spreadsheets, handling routine emails and initial customer responses, issuing and reviewing documents, manually updating price lists or master data, sorting incoming requests.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Practical rule: if a task is frequent, always the same, and prone to errors, it&#039;s probably your first automation candidate — and the one with the fastest return.</p></blockquote><p class="wp-block-paragraph">In contrast, processes that require judgment, negotiation, or strategic decisions should be tackled later, once your organization has gained experience with the initial automation efforts. A gradual approach reduces risk and lets you measure results step by step.</p><p class="wp-block-paragraph">Identifying the right processes isn&#039;t always straightforward from within, because inefficiencies often become routine and fade from view. IT consulting helps map your existing workflows, estimate time and error costs, and set realistic priorities: this way your investment targets processes with the fastest, most measurable returns, avoiding spending on changes that would only bring marginal gains.</p><h2 class="wp-block-heading">Cost components of an AI automation project</h2><p class="wp-block-paragraph">When evaluating an AI automation project, the final price is never a single figure: it&#039;s the sum of different components, each with varying weight depending on process complexity and your company&#039;s starting point. Understanding how the budget breaks down helps you read proposals critically and avoid unexpected costs.</p><p class="wp-block-paragraph">The main cost items to consider are these:</p><ul class="wp-block-list"><li>Initial analysis: before writing a single line of code, you need to map the process, define objectives, and assess data quality. This phase is often underestimated but crucial, as it determines feasibility and true return on investment.</li><li>Development and integration: this is the most substantial part. Cost increases with the number of systems to connect (ERP, CRM, email, e-commerce) and the level of customization required. Integrating automation into existing software takes more work than standalone solutions.</li><li>Licenses and cloud infrastructure: many AI tools are priced on consumption or monthly subscriptions, based on data volume or processed requests. Cloud infrastructure costs are added on top. These are recurring expenses, not one-time costs.</li><li>Team training: a tool only works if your team knows how to use it. Investing in training hours and hands-on support reduces change resistance and accelerates benefits.</li><li>Maintenance and evolution: processes change, data changes, and models need monitoring and updates. A continuous maintenance budget prevents the solution from degrading over time.</li></ul><p class="wp-block-paragraph">Three variables shift the estimate most significantly: how organized and accessible your data is, how many systems need integration, and how customized the solution must be. A linear process with clean data costs a fraction of a project that spans multiple departments and legacy software.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Often the highest cost isn&#039;t the software itself: it&#039;s starting without a serious analysis of what you want to achieve.</p></blockquote><p class="wp-block-paragraph">This is precisely why IT consulting services can make the difference in the initial phase: they help assess your current systems&#039; state, estimate budget items realistically, and distinguish value-adding features from pure costs. A clear picture upfront is the best way to keep your budget under control all the way through.</p><h2 class="wp-block-heading">How much you can save: calculating your ROI</h2><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/08/automazione-dei-processi-con-lai-per-pmi-quanto-costa-davvero-fig-1-800x800.png" alt="Team di una PMI valuta l&apos;automazione dei processi aziendali con l&apos;AI" class="wp-image-3071" srcset="https://renor.it/wp-content/uploads/2026/08/automazione-dei-processi-con-lai-per-pmi-quanto-costa-davvero-fig-1-800x800.png 800w, https://renor.it/wp-content/uploads/2026/08/automazione-dei-processi-con-lai-per-pmi-quanto-costa-davvero-fig-1-150x150.png 150w, https://renor.it/wp-content/uploads/2026/08/automazione-dei-processi-con-lai-per-pmi-quanto-costa-davvero-fig-1-300x300.png 300w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">After analyzing your cost items, the natural question becomes: what does an automation project really return? ROI (return on investment) is the most concrete way to answer that. The basic formula is straightforward: ROI = (annual savings generated − investment cost) ÷ investment cost. The tricky part isn&#039;t the math itself, but getting a realistic estimate of your savings. Let&#039;s look at how to do this realistically, without inflated numbers.</p><p class="wp-block-paragraph">Savings build up by adding three measurable components. It&#039;s worth calculating each one separately, starting with data you already have in your company.</p><ul class="wp-block-list"><li>Labor hours saved: take a repetitive task (like invoice entry or template email responses) and estimate how many hours per week it consumes. Multiply the hours saved by your company&#039;s hourly labor cost for the staff involved, then by working weeks. Example: 5 hours per week saved × €25/hour × 45 weeks = €5,625 per year.</li><li>Error reduction: manual mistakes carry a hidden cost (rework, returns, penalties, lost customers). Estimate how many errors you make per month and the average cost to fix them. Even a conservative figure makes visible a saving that usually doesn&#039;t show up on the balance sheet.</li><li>Avoided recurring costs: duplicate tools, overtime during peak periods, outsourced activities that automation can absorb in-house.</li></ul><p class="wp-block-paragraph">Add these three items together to get your annual savings. Compare it against your total investment (startup plus first-year recurring costs). Another useful metric is payback period: divide the investment by monthly savings to see how many months the automation takes to pay for itself. For many SMBs a well-chosen project breaks even between 6 and 18 months.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Automation isn&#039;t money down the drain: it&#039;s an investment that keeps paying dividends every month the process stays active.</p></blockquote><p class="wp-block-paragraph">The biggest challenge is collecting reliable numbers and choosing the right calculation scenarios for your specific situation. This is where IT consulting helps you map processes, quantify actual times and costs, and build an ROI estimate based on your data—so you can decide with confidence where it really makes sense to start.</p><h2 class="wp-block-heading">Off-the-shelf solutions vs custom development</h2><p class="wp-block-paragraph">Once costs and potential returns are clear, the practical question becomes: should you adopt an existing tool or have something custom-built for your company? There&#039;s no one-size-fits-all answer, but there are clear criteria to guide your decision.</p><p class="wp-block-paragraph">Off-the-shelf solutions (so-called &quot;packaged&quot; tools, often on a monthly subscription) are the fastest and most cost-effective way to get started. They cover standard activities that are widespread across many companies, with low entry costs and quick deployment times. The downside is their rigidity: they adapt to your processes only to a certain point, and often you end up having to change how you work to make them fit.</p><p class="wp-block-paragraph">Custom development, on the other hand, starts from your actual processes and builds automation around them. It requires a higher upfront investment and longer timelines, but it offers flexibility and integration with systems you already use. It&#039;s the right choice when the process you need to automate is a competitive advantage for your business, or when standard tools would force compromises that are too costly.</p><p class="wp-block-paragraph">To make a concrete decision, evaluate each process against these points:</p><ul class="wp-block-list"><li>How standard or unique is the process relative to your needs</li><li>How many external tools it needs to integrate with to work effectively</li><li>The volume of work involved, which either justifies or rules out a larger investment</li><li>How likely the process is to change over the next few years</li></ul><p class="wp-block-paragraph">Often the best choice isn&#039;t black and white: many SMEs start with off-the-shelf tools for common tasks and reserve custom development for their most critical processes. This hybrid approach keeps costs in check and focuses investment where returns are highest.</p><p class="wp-block-paragraph">Deciding which path to take for each process requires a technical assessment of your systems and goals: this is where IT consulting helps you map the landscape and avoid misguided investments. In our next deep dive, we&#039;ll look more closely at custom AI agents and when they represent the right solution.</p><h2 class="wp-block-heading">Getting started with a sustainable project: the role of consulting</h2><p class="wp-block-paragraph">After seeing how much an automation project can cost and how much it can deliver, the most practical question remains: where do you start without taking excessive risks? For most SMEs, the answer is not a massive, all-at-once investment, but a gradual journey that begins with a well-defined pilot project.</p><p class="wp-block-paragraph">A pilot project is an intervention limited to a single process, with clear objectives and measurable results within a few weeks. Automating, for example, the management of requests arriving via email or the preparation of a recurring report allows you to verify real benefits before extending the approach to other areas. If the numbers confirm expectations, the project can be scaled with confidence; if something doesn&#039;t add up, the financial exposure remains contained.</p><p class="wp-block-paragraph">The advantage of this approach is twofold: it limits risk and builds internal expertise step by step. Company staff learn to work with new tools on a concrete case, instead of facing a change imposed across all fronts simultaneously.</p><p class="wp-block-paragraph">This is where consulting makes the difference. Before choosing a technology or writing a line of code, you need to understand how your business processes actually work: where time is wasted, which activities are repetitive, what data exists and in what form. A thorough evaluation avoids the most common mistake: automating a poorly designed process, which only means doing the wrong things faster.</p><p class="wp-block-paragraph">Through RENOR &amp; Partners&#039; IT Consulting service, we guide SMEs through exactly this phase: we analyze existing processes, identify priorities with the highest return, and together define a first sustainable intervention, aligned with your budget and business goals.</p><ul class="wp-block-list"><li>Analysis of current processes to identify activities with the greatest automation potential</li><li>Definition of a pilot project with clear objectives and performance indicators</li><li>A scalable path that grows only after concrete benefits have been verified</li></ul><p class="wp-block-paragraph">If you want to understand which of your company&#039;s processes to tackle first and in what order of priority, the first step is a focused assessment. Contact RENOR &amp; Partners for an analysis of your business processes and to build together a custom, sustainable project from the very first step.</p>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/it-consulting/">IT Consulting</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/ai-process-automation-for-sme-cost/">Process Automation with AI for SMEs: What Does It Really Cost</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Custom AI Agents for SMEs: Real Costs and Investment Evaluation</title>
		<link>https://renor.it/en/blog/intelligenza-artificiale-algoritmi/custom-ai-agents-for-smes-cost/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Sun, 02 Aug 2026 10:13:36 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[renor]]></category>
		<guid isPermaLink="false">https://renor.it/blog/intelligenza-artificiale-algoritmi/custom-ai-agents-for-smes-cost/</guid>

					<description><![CDATA[<p>Discover the real cost of custom AI agents for SMEs. Complete guide to evaluate your investment and maximize business ROI effectively.</p>
<p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/custom-ai-agents-for-smes-cost/">Custom AI Agents for SMEs: Real Costs and Investment Evaluation</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">What Custom AI Agents Are and Why They Matter for SMEs</h2><p class="wp-block-paragraph">When people talk about AI agents, many immediately think of a chatbot answering questions on your website. In reality, it&#039;s something far more sophisticated. A custom AI agent is a digital assistant built around your company&#039;s specific processes: it knows your products, follows your procedures, and can complete concrete tasks, not just provide generic answers.</p><p class="wp-block-paragraph">The difference from a generic chatbot is substantial. A standard chatbot pulls from publicly available information or a list of preset responses, and it hits a wall when you stray from the script. A personalized agent, on the other hand, works with your company&#039;s data and rules and can perform operational steps: retrieve order history, prepare a quote, route a request to the right department.</p><p class="wp-block-paragraph">For an SME, the point isn&#039;t having the latest technology, but solving problems that drain time and energy every day. Here are some concrete examples of what a custom agent can handle:</p><ul class="wp-block-list"><li>Answer recurring customer questions even outside business hours, reducing the workload on staff</li><li>Collect and qualify sales inquiries before they reach your sales team</li><li>Automate the management of paperwork and documents that currently require manual, repetitive work</li><li>Help colleagues find internal information without having to search through dozens of files</li></ul><p class="wp-block-paragraph">The advantage isn&#039;t just speed: it&#039;s freeing people from low-value tasks so they can focus on what truly requires expertise and human connection. In companies with lean teams, this can make the difference between drowning in work and being able to grow.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A custom AI agent doesn&#039;t replace people: it empowers them to work better by taking care of what is repetitive and predictable.</p></blockquote><p class="wp-block-paragraph">For all this to work reliably, you need a solid technical foundation. An agent must integrate with the systems you already use and be available in a stable and secure way: this is where development and cloud expertise come in, making it possible to build personalized solutions and make them continuously accessible without burdening your company&#039;s internal infrastructure.</p><h2 class="wp-block-heading">What drives the cost of a custom AI agent</h2><p class="wp-block-paragraph">When you ask how much a tailored AI agent costs, the honest answer is: it depends. Not to dodge the question, but because the price reflects concrete choices tied to your company&#039;s actual needs. Understanding which factors move the quote gives you the tools to engage with the provider thoughtfully and to tell a serious proposal from a made-up one.</p><p class="wp-block-paragraph">These are the elements that matter most for the final cost:</p><ul class="wp-block-list"><li>Process complexity: automating a single repetitive task costs far less than managing an intricate workflow with conditional decisions, exceptions, and handoffs across departments. The more rules and edge cases involved, the more analysis and development time is required.</li><li>Integration with existing systems: connecting the agent to your ERP, CRM, e-commerce platform, or email isn&#039;t trivial. If your current software offers standard connections, the work moves faster; if systems are outdated or poorly documented, timelines stretch.</li><li>Data volume and quality: an agent runs on your data. If it&#039;s organized and accessible, you&#039;re ready to go quickly. If it needs to be collected, cleaned, and structured first, that preparation work affects your budget.</li><li>Security and compliance: handling confidential information, customer data, or sensitive material requires access controls, audit trails, and regulatory attention. It&#039;s a cost that protects your business and shouldn&#039;t be treated as optional.</li><li>Maintenance and updates: an AI agent isn&#039;t a project that ends at delivery. It needs monitoring, adjustments when processes change, and updates over time. It&#039;s worth clarifying upfront what ongoing costs to expect.</li></ul><p class="wp-block-paragraph">On top of this sits the infrastructure where the agent runs. A cloud-hosted solution affects operating costs based on actual usage, while custom development determines your initial investment. Our work focuses on these two aspects—development and cloud—building the agent around your company&#039;s specific needs and setting up reliable operations.</p><p class="wp-block-paragraph">The practical advice: don&#039;t judge a quote by the bottom line alone. Check that each of these factors was actually considered—that&#039;s the sign the project was thought through properly.</p><h2 class="wp-block-heading">Price bands and investment models: one-time project vs subscription fee</h2><p class="wp-block-paragraph">When evaluating an AI agent, people typically expect a single price, but reality is more complex. Investment almost always consists of two distinct components: the initial one, tied to design and development, and the recurring one, tied to operations and maintenance over time. Understanding this distinction is the first step to comparing proposals correctly and avoiding being misled by an apparently low figure.</p><p class="wp-block-paragraph">On the front of the one-time project, the order of magnitude varies greatly based on complexity. A simple agent, which automates a single well-defined process (for example answering frequent questions or routing requests), generally requires limited effort. As the number of integrations with company systems, use cases to handle, and quality controls increase, the initial investment grows accordingly. It&#039;s useful to think in tiers rather than a fixed figure:</p><ul class="wp-block-list"><li>Basic project: automation of a specific task, few integrations, quick turnaround times.</li><li>Intermediate project: multiple connected workflows, integration with ERP or CRM systems, content customizations.</li><li>Advanced project: agents operating on complex processes, with decision-making logic, many data sources, and high reliability requirements.</li></ul><p class="wp-block-paragraph">Alongside development are recurring costs, often underestimated. These include consumption of the AI models used, the infrastructure on which the agent runs, updates, and monitoring. These costs tend to follow usage volume: the more the agent works, the more this item impacts the budget. This is why a monthly subscription isn&#039;t simply a &quot;rental&quot;, but covers the continuous operation of the service.</p><p class="wp-block-paragraph">There are thus two main models. The one-time project involves a higher upfront investment and ownership of the solution, with management costs that must be sustained regardless. The subscription model spreads expenses over time, including development, maintenance, and enhancements in a single predictable amount.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The right question isn&#039;t &quot;how much does it cost&quot;, but &quot;which model makes the agent sustainable even in two years&#039; time&quot;.</p></blockquote><p class="wp-block-paragraph">In this context, the partner supporting the company matters. A service that combines development and cloud infrastructure allows for coordinated management of both the agent&#039;s creation and the infrastructure it runs on, avoiding separate vendors and hidden costs that only emerge once the project is underway.</p><h2 class="wp-block-heading">How to Calculate Return on Investment (ROI)</h2><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/08/agenti-ai-su-misura-per-pmi-quanto-costano-davvero-e-come-valutare-linvestimento-fig-1-800x800.png" alt="Team di una PMI valuta una soluzione di intelligenza artificiale in ufficio" class="wp-image-3067" srcset="https://renor.it/wp-content/uploads/2026/08/agenti-ai-su-misura-per-pmi-quanto-costano-davvero-e-come-valutare-linvestimento-fig-1-800x800.png 800w, https://renor.it/wp-content/uploads/2026/08/agenti-ai-su-misura-per-pmi-quanto-costano-davvero-e-come-valutare-linvestimento-fig-1-150x150.png 150w, https://renor.it/wp-content/uploads/2026/08/agenti-ai-su-misura-per-pmi-quanto-costano-davvero-e-come-valutare-linvestimento-fig-1-300x300.png 300w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">Focusing solely on the price of an AI agent is misleading. The right question isn&#039;t &quot;how much does it cost&quot;, but &quot;how much will it save or earn me, and in how long&quot;. ROI is calculated by comparing the annual benefit generated against the investment made, including both the initial cost and any ongoing fees.</p><p class="wp-block-paragraph">The first step is to measure the time your team currently spends on a repetitive task. Let&#039;s take a concrete example: managing customer email requests.</p><ul class="wp-block-list"><li>Current volume: 400 request emails per month.</li><li>Average response time per email: 8 minutes.</li><li>Hours spent each month: approximately 53 hours.</li><li>Average hourly company cost (salary + benefits): €25/hour.</li><li>Monthly cost of the activity: approximately €1,325.</li></ul><p class="wp-block-paragraph">If a custom AI agent handles 70% of these requests autonomously, the monthly savings come to around €930, or over €11,000 per year. With a hypothetical initial investment of €12,000 plus an annual management fee, the project pays for itself within the first year and generates net value in subsequent years.</p><p class="wp-block-paragraph">Time savings, however, are only part of the picture. You should also factor in indirect benefits: faster responses that boost customer satisfaction, fewer errors, staff freed up for higher-value tasks, and the ability to handle workload spikes without hiring. These effects are harder to quantify, but they often matter as much as the direct savings.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>An investment in automation should be viewed as an asset that continues to generate value, not as an expense that ends when you buy it.</p></blockquote><p class="wp-block-paragraph">To achieve real ROI, two technical factors matter: an agent built on your actual processes and reliable infrastructure that can handle volumes over time. This is where our development and cloud work makes the difference, because a poorly integrated or unstable solution wipes out the expected benefits. Before signing off on a proposal, always ask for an estimate of expected benefits alongside costs: it&#039;s the only way to make a decision based on solid numbers.</p><h2 class="wp-block-heading">Mistakes to Avoid When Choosing a Provider</h2><p class="wp-block-paragraph">After evaluating costs, investment models, and expected returns, comes the most delicate step: deciding who to entrust with your project. The wrong supplier can turn a promising investment into spending with no concrete results. Here are the most common mistakes and the criteria to avoid them.</p><p class="wp-block-paragraph">The first mistake is underestimating integration with the systems you already use. An AI agent that doesn&#039;t communicate with your ERP, CRM, or email and e-commerce tools remains an isolated island, with hidden costs of manual work. Always ask the supplier how they plan to connect the solution to your existing applications, with concrete examples.</p><ul class="wp-block-list"><li>Data security and ownership: verify where information is stored, who has access to it, and whether it remains your property. For a company, customer and internal process data is an asset to protect, not to expose.</li><li>Maintenance and continuity: an AI agent is not a project that ends at delivery. It needs to be updated, monitored, and adapted when processes and objectives change. Clarify from the start what is included in support and what the response times are.</li><li>Real expertise and transparency: be wary of those who promise immediate results without analyzing your context. A serious partner starts from your processes, explains choices and limitations in an understandable way, and doesn&#039;t make you dependent on technologies whose logic you don&#039;t understand.</li></ul><p class="wp-block-paragraph">Another common mistake is relying on off-the-shelf solutions when you actually need a project built on your specific needs. Generic platforms work for standard cases, but rarely adapt to the real workflows of an SME without compromises.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The right supplier doesn&#039;t sell a technology: they build a solution with you that integrates, sustains itself over time, and remains under your control.</p></blockquote><p class="wp-block-paragraph">It&#039;s precisely with this approach that our development and cloud activities are positioned: designing custom solutions, integrating them into your existing infrastructure, and guaranteeing their management over time. Evaluating a partner with these skills is not just a technical detail, but the condition for protecting your investment and turning it into a lasting result for your company.</p><h2 class="wp-block-heading">How RENOR supports SMEs in developing custom AI agents</h2><p class="wp-block-paragraph">Moving from an AI agent idea to a solution that works reliably every day requires expertise that goes beyond just the language model. You need business process analysis, a solid architecture to run the agent on, and data management that&#039;s reliable and secure over time. This is where RENOR comes in, supporting SMEs through every stage: from goal setting through to production deployment.</p><p class="wp-block-paragraph">We always start with the concrete problem to solve, not the technology itself. Before writing a single line of code, we help your company identify where an AI agent can deliver real value and estimate expected returns using clear criteria. This keeps you from investing based on trends and lets you focus resources where the impact is measurable.</p><p class="wp-block-paragraph">Operationally, our Development and Cloud service is the core of what we do: we build custom software solutions and host them on managed cloud environments, so your AI agent stays accessible, scalable, and integrated with the tools you already use. This approach lets you start with a contained project and grow the solution as results come in, without needing to redesign everything from scratch.</p><ul class="wp-block-list"><li>Process analysis and goal definition before development begins</li><li>Design and build of the custom software solution</li><li>Cloud deployment, with focus on scalability and service continuity</li><li>Ongoing support to evolve the agent based on results</li></ul><p class="wp-block-paragraph">For a business owner or non-technical manager, this translates to a practical advantage: a single point of contact who turns business needs into a working solution, without coordinating multiple unconnected vendors. This is exactly what we outlined in earlier sections as the condition for sustainable investment and measurable ROI.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The value of an AI agent lies not in the technology, but in the problem it solves every day.</p></blockquote><p class="wp-block-paragraph">If you&#039;re weighing whether and how to introduce an AI agent in your company, the most effective way to understand it is to start with a targeted assessment of your specific situation. Get in touch for a personalized consultation: we&#039;ll analyze processes, goals, and priorities together to define a concrete path tailored to your SME&#039;s real needs.</p>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/development-and-cloud/">Development and cloud</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/custom-ai-agents-for-smes-cost/">Custom AI Agents for SMEs: Real Costs and Investment Evaluation</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Custom AI Chatbot for Businesses: Pricing and Quote Request</title>
		<link>https://renor.it/en/blog/intelligenza-artificiale-algoritmi/custom-ai-chatbot-development-for-businesses-quote/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Tue, 28 Jul 2026 09:37:23 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[renor]]></category>
		<guid isPermaLink="false">https://renor.it/blog/intelligenza-artificiale-algoritmi/custom-ai-chatbot-development-for-businesses-quote/</guid>

					<description><![CDATA[<p>Discover the cost of developing a custom AI chatbot for your business. Check pricing and request your free quote today.</p>
<p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/custom-ai-chatbot-development-for-businesses-quote/">Custom AI Chatbot for Businesses: Pricing and Quote Request</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Why a custom AI chatbot (rather than a generic one) makes a difference for your business</h2><p class="wp-block-paragraph">Off-the-shelf generic chatbots can answer general questions, but they don&#039;t know your company. They have no idea what products you sell, your return policies, delivery times, or the specific contract terms your customers need. A custom AI chatbot, on the other hand, is built around your data and your processes: it&#039;s the difference between just any receptionist and a team member who&#039;s been working with you for years.</p><p class="wp-block-paragraph">The first concrete advantage is integration with your business data. A tailored assistant can tap into your product catalogs, price lists, internal FAQs, technical documentation, or order history. This means accurate, up-to-date answers—not vague responses that force customers to reach out to an agent anyway.</p><p class="wp-block-paragraph">The second aspect is voice and tone. How you communicate with your customers is part of your identity. A custom solution can be tuned to your industry&#039;s language and your brand&#039;s style: formal for a professional firm, direct and friendly for an e-commerce store.</p><ul class="wp-block-list"><li>Customer support: instant answers on orders, shipping, and frequently asked questions, available 24/7, easing the burden on your team.</li><li>Internal support: employees quickly find procedures, policies, and information without digging through dozens of documents.</li><li>Pre-sales: the chatbot guides site visitors toward the right product or service, cutting down on generic inquiries.</li></ul><p class="wp-block-paragraph">Then there&#039;s a factor that weighs heavily on investment decisions: ownership and control. A generic solution lives on a third-party vendor&#039;s servers, with data constraints and limited flexibility. A custom-built project, developed exclusively for you with cloud infrastructure designed for your needs, gives you greater data governance and the freedom to evolve the tool as your business grows.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A generic chatbot responds to everyone the same way. A custom chatbot responds like your company: with your data, your language, and your goals.</p></blockquote><h2 class="wp-block-heading">Real-world use cases: where an AI chatbot delivers value in your business</h2><p class="wp-block-paragraph">Before evaluating costs or requesting a quote, it&#039;s worth understanding where an AI chatbot produces measurable results. Not all companies have the same needs: identifying the right scenario is the first step to estimating return on investment and defining a well-scoped project.</p><p class="wp-block-paragraph">Here are four areas where, in practice, a conversational assistant generates concrete and easily quantifiable value.</p><ul class="wp-block-list"><li>Customer support: automated handling of recurring requests (order status, hours of operation, returns, product and service information). The typical outcome is reduced workload on the support team and immediate response times, 24/7. ROI is measured by hours saved and the number of tickets resolved without human intervention.</li><li>Internal support: a chatbot that answers employee questions about procedures, HR policies, technical documentation or business tools. It reduces interruptions between colleagues and speeds up onboarding for new hires, leveraging the expertise already present in your organization.</li><li>Lead qualification: engaging website visitors, asking the right questions and gathering useful information before passing the contact to your sales team. This way your sales team dedicates time only to truly interested prospects, increasing conversion rate.</li><li>Order and request management: collecting simple orders, reservations, appointments or reports, with automatic routing to the appropriate person or department.</li></ul><p class="wp-block-paragraph">The value of these scenarios grows when the chatbot isn&#039;t isolated, but connects to the systems you already use: your ERP, CRM, product catalog or internal tools. This is where custom development work and reliable cloud infrastructure come into play, enabling your assistant to interact with your data in a secure and scalable way.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Here&#039;s the practical advice: start with a single use case, the one with the clearest and most measurable impact. Demonstrating return on one concrete scenario is the most effective way to justify expansion to others.</p></blockquote><p class="wp-block-paragraph">Recognizing which of these scenarios applies to your company allows you to approach a quote request with clear ideas: defined objectives, estimated volumes and necessary integrations. These are exactly the elements that determine the cost, as we&#039;ll see in the following sections.</p><h2 class="wp-block-heading">What Determines the Cost of a Custom AI Chatbot</h2><p class="wp-block-paragraph">There&#039;s no single price for a custom AI chatbot, and that&#039;s perfectly normal: the cost reflects the project&#039;s complexity and the value it delivers. Understanding which variables are at play lets you read a proposal with a critical eye and tell a serious offer from a generic one. Here are the factors that matter most.</p><ul class="wp-block-list"><li>Complexity of conversational flows: answering FAQs is one thing, managing workflows with conditions, user authentication, or handoffs to an agent is another. The more intricate your flows, the more design time they require.</li><li>Integrations with your systems: connecting the chatbot to your accounting software, CRM, or ticketing system is often what makes it truly useful, but it impacts cost because it requires dedicated development work and API testing across each platform.</li><li>Training on your data: for the chatbot to respond with your company&#039;s accurate information, content—documents, price lists, procedures—must be collected, organized, and structured. The quality and volume of this material affect timelines.</li><li>Usage volumes: the number of conversations handled each month affects infrastructure costs and the consumption of underlying cloud services. High volumes require solutions sized to handle peak traffic without slowdowns.</li><li>Maintenance and evolution: a chatbot isn&#039;t a project you close the book on. Updating content, monitoring responses, and improving workflows over time carries an ongoing cost, typically monthly or annual.</li></ul><p class="wp-block-paragraph">A simple way to get your bearings is to separate two line items: upfront development cost, one-time, and operating cost, which covers cloud infrastructure and maintenance. A transparent proposal clearly distinguishes these two components, so you know what you pay at launch and what to expect during normal operations.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The price of an AI chatbot doesn&#039;t measure how &quot;intelligent&quot; it is, but how well it fits into your reality and how reliable it is over time.</p></blockquote><p class="wp-block-paragraph">That&#039;s where the real difference plays out. With an integrated development and cloud service, integrations with your systems and infrastructure management are designed together, not treated as separate items: this keeps both upfront and ongoing costs in check, and spares you surprises as your usage grows.</p><h2 class="wp-block-heading">Project Phases: From Analysis to Production Chatbot</h2><p class="wp-block-paragraph">A custom AI chatbot doesn&#039;t come from a quick installation, but from a structured journey with clear stages. Understanding these phases helps you know what to expect, where to make your decisions, and how to track the project&#039;s progress. Here&#039;s how a project typically unfolds.</p><h2 class="wp-block-heading">1. Requirements Analysis</h2><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-1-800x800.png" alt="Professionista che interagisce con un assistente virtuale aziendale al computer" class="wp-image-3062" srcset="https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-1-800x800.png 800w, https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-1-150x150.png 150w, https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-1-300x300.png 300w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">You start by defining concrete goals: what questions should the chatbot handle, which systems should it connect to (ERP, CRM, product catalog), and what measurable results do you want to achieve. This is where solid consulting makes a real difference, because it prevents building unnecessary features and focuses your budget where it creates genuine value.</p><h2 class="wp-block-heading">2. Prototype</h2><p class="wp-block-paragraph">Before building everything, you create a scaled-down version that demonstrates how it works on your most important use cases. The prototype lets you experience the chatbot&#039;s behavior firsthand and correct course while the cost of changes is still low.</p><h2 class="wp-block-heading">3. Integration</h2><p class="wp-block-paragraph">The chatbot gets connected to your data sources and the channels where customers or team members will use it (website, client portal, internal tools). This is where development and cloud expertise come in: the infrastructure must deliver reliability, scalability, and secure access to company data.</p><h2 class="wp-block-heading">4. Testing</h2><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-2-800x800.png" alt="Team aziendale che pianifica un progetto di sviluppo software su misura" class="wp-image-3063" srcset="https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-2-800x800.png 800w, https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-2-150x150.png 150w, https://renor.it/wp-content/uploads/2026/07/chatbot-ai-custom-per-aziende-quanto-costa-e-come-chiedere-un-preventivo-fig-2-300x300.png 300w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">Before going live, you verify behavior against real-world scenarios: accurate responses, error handling, edge cases, and traffic loads. The goal is to launch a tool that behaves predictably, even when users ask unexpected questions.</p><h2 class="wp-block-heading">5. Launch and Continuous Improvement</h2><p class="wp-block-paragraph">Launch isn&#039;t the end of the project. By analyzing real conversations, you spot responses to refine, new needs, and opportunities to expand. A well-managed chatbot improves over time, keeping pace with your company&#039;s growth.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>With our Development and Cloud service, we guide you through the entire journey, from initial analysis to production-ready chatbot, supporting you with IT consulting that bridges technology and business objectives.</p></blockquote><h2 class="wp-block-heading">Data security, privacy, and GDPR in enterprise AI chatbots</h2><p class="wp-block-paragraph">When a chatbot begins interacting with customers and team members, it comes into contact with information that often qualifies as personal data: names, email addresses, business inquiries, and sometimes even details about orders, contracts, or ongoing processes. The right question to ask yourself—before even looking at a quote—is this: where does this data end up, and who can access it? Overlooking this aspect exposes your company to real risks, both in terms of reputation and the penalties outlined in GDPR.</p><p class="wp-block-paragraph">A credible vendor addresses this topic from the initial analysis stage, not as an afterthought tacked onto a contract. There are several points you&#039;re entitled to expect and should verify when requesting a proposal.</p><ul class="wp-block-list"><li>Where your data is hosted: servers within the European Union and transparency about any transfers to third countries.</li><li>Who handles the data: existence of a data processor agreement (article 28 GDPR) between your company and the vendor.</li><li>How conversations are used: whether data entered is only used to respond to the user or is repurposed to train third-party models.</li><li>Access controls: who within the vendor can view conversations and what permissions they have.</li><li>Data retention and deletion policies: how long data is kept and how it&#039;s deleted upon request.</li></ul><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Compliance is not a constraint that slows down your project: it&#039;s what makes an AI chatbot usable without concern in a real business environment.</p></blockquote><p class="wp-block-paragraph">This is where choosing a custom-built solution shows its advantage over a generic service. With Development and cloud, you can design the architecture with data location and management in mind from the start, tailoring technical choices to your company&#039;s specific privacy needs instead of accepting the standard terms of an off-the-shelf platform.</p><p class="wp-block-paragraph">In practice: ask your vendor for clear, documented answers on these points. If they provide them readily, that&#039;s a good sign of how seriously they&#039;ll approach the entire project.</p><h2 class="wp-block-heading">How to request a quote for your custom AI chatbot</h2><p class="wp-block-paragraph">Getting to a reliable estimate requires just a few clear pieces of information from you. The more defined your initial picture is, the more accurate the quote will be and the fewer surprises you&#039;ll encounter along the way. You don&#039;t need to have everything ready or technical expertise: just a few details describing what you want to achieve and the context in which you operate.</p><p class="wp-block-paragraph">Before requesting an estimate, try to write down these points. They&#039;ll help clarify your own ideas and make the conversation with the provider much faster.</p><ul class="wp-block-list"><li>Primary goal: what the chatbot should do and what problem it should solve (customer support, internal assistance, lead qualification).</li><li>Users and volume: who will use it (customers, employees) and how many conversations you estimate per month.</li><li>Knowledge sources: where the information is located that the chatbot will need to use (documents, manuals, website, business systems).</li><li>Desired integrations: systems it needs to connect with, such as CRM, e-commerce, or tools already in use.</li><li>Channels: where you want to make it available (website, WhatsApp, internal apps).</li><li>Data and privacy constraints: any requirements regarding data handling and information retention.</li></ul><p class="wp-block-paragraph">Even a partial version of this information is enough to get started. During the consultation phase, we can define the rest, evaluating priorities and your available budget to determine the best place to start, perhaps with a simpler first version that can grow over time.</p><p class="wp-block-paragraph">With our Development and Cloud service, we support you from initial analysis through to putting your chatbot into production, handling both the custom development and the infrastructure that hosts it. This way you have a single point of contact for the entire project, without having to coordinate multiple providers.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A good quote comes from a good conversation: first we understand your goals and context together, then we define the solution that best fits your budget.</p></blockquote><p class="wp-block-paragraph">If you want a concrete estimate for your case, contact RENOR for a strategic consultation: we&#039;ll analyze your needs together and propose a clear path forward, with transparent timelines and costs.</p>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/development-and-cloud/">Development and cloud</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/custom-ai-chatbot-development-for-businesses-quote/">Custom AI Chatbot for Businesses: Pricing and Quote Request</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Scalable AI cloud solutions for businesses: how to read and request a quote</title>
		<link>https://renor.it/en/blog/intelligenza-artificiale-algoritmi/scalable-ai-cloud-solutions-for-businesses-quote/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 27 Jul 2026 09:09:54 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<guid isPermaLink="false">https://renor.it/blog/intelligenza-artificiale-algoritmi/scalable-ai-cloud-solutions-for-businesses-quote/</guid>

					<description><![CDATA[<p>Discover how to choose scalable AI cloud solutions for your business. Read our complete guide and request your personalized quote today.</p>
<p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/scalable-ai-cloud-solutions-for-businesses-quote/">Scalable AI cloud solutions for businesses: how to read and request a quote</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">What does &quot;scalable AI cloud&quot; mean for a business (in plain language)</h2><p class="wp-block-paragraph">Behind a term that sounds complicated are three fairly straightforward concepts. Understanding them well helps you avoid two common mistakes: spending too much on technology you&#039;ll never fully use, or starting with something too small that becomes a bottleneck the moment your business grows.</p><p class="wp-block-paragraph">Let&#039;s walk through the three pieces that make up this formula, one at a time, using the kind of language you&#039;d hear in an operations meeting, not a lab.</p><ul class="wp-block-list"><li>AI (artificial intelligence): software capable of doing tasks that typically need human attention, such as reading documents, answering recurring customer requests, or flagging data anomalies. In practice: it saves time on repetitive work and helps you make faster decisions.</li><li>Cloud: instead of buying and maintaining servers on your premises, you use computing resources managed by a provider and accessible over the internet. You pay for what you use, with no hardware purchases and no maintenance overhead.</li><li>Scalability: the system&#039;s ability to grow (or shrink) based on your real needs. If you get three times as many requests one month, the power scales up; when activity slows down, costs drop accordingly.</li></ul><p class="wp-block-paragraph">The real value emerges from combining all three. Useful AI needs resources that can vary quite a bit over time: the cloud provides them without heavy upfront investments, and scalability ensures you only pay for what you actually use. For a company, this means being able to launch a project on a modest scale, measure the results, and expand it only if it works.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In a nutshell: grow without over-sizing. No servers bought &quot;just in case,&quot; no capacity you pay for but never use.</p></blockquote><p class="wp-block-paragraph">This is where the work of development and cloud teams comes in: translating a business need into a solution sized for your specific situation, so infrastructure follows your business rather than the other way around. With this shared vocabulary — AI, cloud, scalability — in the next sections we can walk through a quote together and understand which line items actually matter.</p><h2 class="wp-block-heading">Which business problems does cloud AI really solve</h2><p class="wp-block-paragraph">The right question isn&#039;t &quot;what can artificial intelligence do&quot;, but &quot;what concrete problem is costing me time, money, or customers&quot;. Cloud AI becomes valuable only when you tie it to a measurable outcome. Here are four areas where, for most businesses, the impact on the bottom line is immediate and verifiable.</p><ul class="wp-block-list"><li>Document automation: invoices, contracts, orders and forms are read, classified and entered into management systems without manual copy-pasting. The benefit isn&#039;t &quot;the technology&quot;, but hours of administrative work saved and fewer transcription errors.</li><li>Forecasting and planning: estimate demand, seasonal peaks or warehouse requirements based on historical data. The value translates into less tied-up inventory and fewer missed sales.</li><li>Decision support: aggregate scattered data (sales, costs, margins) into readable metrics, so decision-makers spot trends and anomalies before they become problems.</li><li>Customer support: answer recurring requests quickly and consistently, leaving complex cases to your team. The result is faster response times and a less overwhelmed staff.</li></ul><p class="wp-block-paragraph">In all these cases, return on investment reads in simple terms: time saved, errors reduced, faster decisions, happier customers. Before asking for a quote, it&#039;s worth quantifying your current situation—for example, how many hours a month a process takes or how many complaints go without a quick response. These numbers become the benchmark for measuring the value of the solution.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>An AI project makes sense when it starts with a problem that has a known cost, not with a technology looking for an application.</p></blockquote><p class="wp-block-paragraph">It&#039;s important to remember that these results don&#039;t come from an off-the-shelf tool: they emerge from integration with the systems you already use. This is where development and cloud work come in—building and connecting the solution to your actual context, so AI works inside your processes rather than alongside them. Once you&#039;ve identified your priority need, the next section will help you turn it into a clear request for proposal.</p><h2 class="wp-block-heading">The factors that determine the cost of a cloud AI solution</h2><p class="wp-block-paragraph">When you receive a quote for a cloud AI solution, the final price is not an arbitrary number: it reflects a series of concrete activities and resources deployed. Understanding what these are allows you to compare different offers with full awareness and evaluate where value truly concentrates. Here are the main items that make up the total spend.</p><ul class="wp-block-list"><li>Initial analysis and data: before developing anything, you need to understand your objective, gather available data, and verify its quality. Incomplete or poorly organized data requires preparation work that impacts both timelines and costs.</li><li>Model development and integration: this is the part that makes the solution useful for your specific case. It includes building or adapting the model and, most importantly, connecting it with the management systems and tools you already use. The more systems involved, the greater the integration effort.</li><li>Cloud infrastructure on a pay-as-you-go basis: in the cloud, you pay based on actual usage. The cost depends on how much data you process and how frequently. Occasional use costs little; intensive and continuous deployment weighs more heavily.</li><li>Scalability: the ability to grow without starting from scratch has value. A solution designed to adapt to work peaks may require a slightly higher initial investment, but it prevents much higher costs down the road.</li><li>Maintenance and security: an AI system needs to be monitored, updated, and protected over time. This recurring item ensures that the solution remains reliable and compliant.</li></ul><p class="wp-block-paragraph">The proportion between these items varies from project to project. A company with already well-organized data will spend less on analysis; one with many systems to connect will see the integration portion grow. This is why a serious quote always starts with understanding your actual context, not from a standard price list.</p><p class="wp-block-paragraph">It&#039;s the approach we follow with our Development and cloud service: building the solution around your concrete needs and the most suitable cloud infrastructure, so that every cost item corresponds to a clear and measurable benefit for your business.</p><h2 class="wp-block-heading">How to read and compare an AI cloud quote</h2><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://renor.it/wp-content/uploads/2026/07/soluzioni-ai-cloud-scalabili-per-aziende-come-leggere-e-richiedere-un-preventivo-fig-1-800x800.png" alt="Team aziendale al lavoro su soluzioni digitali in ufficio" class="wp-image-3058" srcset="https://renor.it/wp-content/uploads/2026/07/soluzioni-ai-cloud-scalabili-per-aziende-come-leggere-e-richiedere-un-preventivo-fig-1-800x800.png 800w, https://renor.it/wp-content/uploads/2026/07/soluzioni-ai-cloud-scalabili-per-aziende-come-leggere-e-richiedere-un-preventivo-fig-1-150x150.png 150w, https://renor.it/wp-content/uploads/2026/07/soluzioni-ai-cloud-scalabili-per-aziende-come-leggere-e-richiedere-un-preventivo-fig-1-300x300.png 300w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure><p class="wp-block-paragraph">It&#039;s normal to receive two or three quotes for the same project and find them quite different from each other. The problem is that often the numbers aren&#039;t comparable, because they describe different scopes and responsibilities. Before looking at the bottom line, then, it&#039;s worth checking that each proposal answers the same questions. Here&#039;s a practical checklist to use as a reading framework.</p><ul class="wp-block-list"><li>Clear scope: what&#039;s included and what isn&#039;t. Analysis, development, testing, training and support should be separate line items, not bundled into a single generic block.</li><li>SLAs and support: guaranteed response times in case of issues, coverage hours and intervention methods. A low price without an SLA can become expensive when the first problem arises.</li><li>Recurring vs one-time costs: separate what you pay only once (initial development) from what you&#039;ll pay every month (cloud infrastructure, maintenance, updates). This is where annual budget surprises often hide.</li><li>Code and data ownership: verify in writing that the software built and your company data remain yours, and that you can switch providers without getting locked in.</li><li>Scalability assumptions: how costs change if volumes grow. A serious quote will state this, rather than leaving it for a future proposal.</li></ul><p class="wp-block-paragraph">A practical tip: ask each provider to fill out the same table with these items. If someone responds vaguely or lumps everything into a single figure, that&#039;s a red flag worth investigating before signing.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A comparable quote isn&#039;t the cheapest one, but the one that lets you know upfront what you&#039;ll pay and what you&#039;ll own.</p></blockquote><p class="wp-block-paragraph">Many of these items also appear in software development quotes and cloud migration projects—topics we&#039;ve covered in dedicated articles that we invite you to read for a more complete comparison. In our Development and cloud service, we approach projects with this exact logic of transparency, so that expenses and responsibilities are clear from the start.</p><h2 class="wp-block-heading">Scalability and cost control over time</h2><p class="wp-block-paragraph">One of the most concrete advantages of AI in the cloud is the ability to start with a limited project and scale up the solution as results come in. There&#039;s no need to size everything from day one based on the most ambitious scenario: you start with a specific use case, measure the impact on daily work, and increase capacity only when the return justifies it. This approach reduces the risk of your initial investment and makes spending more predictable.</p><p class="wp-block-paragraph">Pay-as-you-go pricing is at the heart of this mechanism. In practice, you pay for resources actually consumed: if activity grows in a given month, costs rise proportionally; if it slows down, spending drops. The flip side is that poorly designed architecture can generate silent consumption even when no one is using it. This is why the difference between a cost-effective solution and one that wastes resources doesn&#039;t lie in the technology itself, but in how it was designed.</p><p class="wp-block-paragraph">A design oriented toward financial sustainability considers some practical safeguards:</p><ul class="wp-block-list"><li>Resources that turn on and off based on actual load, without staying idle when unused</li><li>Spending limits and automatic alerts to avoid billing surprises</li><li>Consumption monitoring, so you understand which features cost the most and can take action</li><li>The ability to increase capacity gradually, without starting from scratch</li></ul><p class="wp-block-paragraph">These elements rarely emerge on their own: they depend on the choices made during development and the structure of the cloud platform underlying your solution. This is why the role of a technical partner is crucial. It&#039;s not enough for the quote to be competitive today; what matters is that the system remains cost-effective a year from now, when volumes have changed.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A good cloud architecture isn&#039;t measured only by its startup cost, but by how well it stays under control as the business grows.</p></blockquote><p class="wp-block-paragraph">This is exactly the perspective behind our Development and cloud service: building solutions designed to scale alongside your business while keeping costs aligned with actual usage. Ask your provider how scalability was architected and what tools will be used to monitor consumption: the answer will tell you a lot about the sustainability of your investment over time.</p><h2 class="wp-block-heading">How RENOR supports your company and request your quote</h2><p class="wp-block-paragraph">Getting to a clear quote is simpler when you have a partner at your side who starts from your concrete needs, not from a list of technologies. With the Development and cloud service, RENOR supports companies in designing custom AI cloud solutions: from analyzing the initial problem to implementing a system that grows alongside your business.</p><p class="wp-block-paragraph">The goal is to translate an operational need (reducing time, automating repetitive tasks, managing growing volumes) into a solution sized to your company&#039;s actual requirements. No costly oversizing, no features you&#039;d never use: only what&#039;s needed to generate measurable value.</p><p class="wp-block-paragraph">A solid working approach, in light of what we&#039;ve covered in the previous sections, should give you concrete answers on these points:</p><ul class="wp-block-list"><li>Initial analysis: which business processes do we want to improve and with what expected results</li><li>Custom design: a solution tailored to your real needs, not an off-the-shelf package</li><li>Transparent quote: cost items understandable even without technical knowledge</li><li>Growth over time: a structure designed to scale without financial surprises</li></ul><p class="wp-block-paragraph">The advantage of working with a single point of contact for both development and cloud is having consistency between what is designed and what is put into production. This reduces handoffs, avoids misunderstandings, and lets you read the quote with confidence that every line corresponds to a need discussed together.</p><p class="wp-block-paragraph">If you&#039;re evaluating an AI cloud solution for your company, the quickest way to understand timelines, costs, and return is to start with a direct conversation about your specific needs.</p><blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Tell us the problem you want to solve: we&#039;ll help you transform it into a concrete solution and a clear quote, with no obligation.</p></blockquote><p class="wp-block-paragraph">Request your personalized quote now: describe your challenge and receive a proposal built on your company&#039;s actual needs.</p>

<div class="wp-block-group scriba-cta"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"><p><strong>Need concrete support?</strong> Discover our <a href="https://renor.it/en/services/development-and-cloud/">Development and cloud</a> service or <a href="https://renor.it/en/contact-us/">contact us</a> for a consultation.</p></div></div><p>L'articolo <a href="https://renor.it/en/blog/intelligenza-artificiale-algoritmi/scalable-ai-cloud-solutions-for-businesses-quote/">Scalable AI cloud solutions for businesses: how to read and request a quote</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>My Interview on “Industry Experts”: AI and Ethics</title>
		<link>https://renor.it/en/blog/my-interview-on-industry-experts-ai-and-ethics/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 21:04:57 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[AI Ethics]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[Artificial Intelligence Ethics]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[simone renzi]]></category>
		<guid isPermaLink="false">https://renor.it/?p=2914</guid>

					<description><![CDATA[<p>I was recently invited as a guest on “Industry Experts,” a program focused on entrepreneurs and companies that discusses topics of great interest. My main contribution, within my professional context, focused on Artificial Intelligence. In the debate surrounding AI, there is a tendency to attribute an artificial personhood to it, using pronouns such as “she” [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/en/blog/my-interview-on-industry-experts-ai-and-ethics/">My Interview on “Industry Experts”: AI and Ethics</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I was recently invited as a guest on “Industry Experts,” a program focused on entrepreneurs and companies that discusses topics of great interest. My main contribution, within my professional context, focused on Artificial Intelligence.</p>

<p class="wp-block-paragraph">In the debate surrounding AI, there is a tendency to attribute an artificial personhood to it, using pronouns such as “she” or “he.” I myself sometimes fall into this mistake during discussions. In my view, the reason for this lapse is mainly linked to the complexity of the concept of intelligence. Even though it is followed by the adjective “artificial,” the word itself tends to evoke, in the human mind, an association with the human figure, because intelligence has traditionally been considered a distinctive characteristic of human beings.</p>

<p class="wp-block-paragraph">Speaking about AI as if it were human creates both a lexical and cognitive problem, as it can lead to harmful consequences: it may cause the brain to perceive AI-generated text as part of a conscious line of reasoning. It is therefore essential, before using these technologies—especially for younger people—to distinguish between what is produced by an algorithm based on statistical evaluations over hundreds of billions of data points and what is instead the product of human experience, shaped by intuition and consciousness.</p>

<h2 class="wp-block-heading" id="h-l-ai-nell-ambiente-lavorativo">AI in the Workplace</h2>

<p class="wp-block-paragraph">An algorithm cannot replicate human consciousness, because it arises from feelings and reflections generated by lived experiences.</p>

<p class="wp-block-paragraph">Being human means knowing pain, which guides us toward greater empathy. Imagine a person who has just been laid off and is ready to tell their story.</p>

<p class="wp-block-paragraph"><p class="p1">The response of an artificial intelligence system might be something like this:<b></b></p><br/><p class="p3"><i>“I’m sorry that you lost your job. It’s a difficult situation. You might consider updating your résumé, looking for new opportunities online, and evaluating training courses to improve your skills.”</i></p></p>

<p class="wp-block-paragraph" id="h-l-ai-nell-ambiente-lavorativo">The response is accurate and rational, but it lacks empathy for the human situation.</p>

<p class="wp-block-paragraph"><p class="p1"><b>The response of an artificial intelligence system might be something like this:</b><b></b></p><br/><p class="p3"><i>“I’m sorry that you lost your job. It’s a difficult situation. You might consider updating your résumé, searching for new opportunities online, and evaluating training courses to improve your skills.”</i></p></p>

<p class="wp-block-paragraph">In this context, typically human behaviors can be observed: the recognition of emotion as a shared experience, and the emotional exchange that encourages the listener to resonate with the state of mind of the person who has been laid off. There is a relational presence that offers availability: “we can think about it together,” “if I can, I’ll give you a hand.” Instead of immediate technical assistance, there is an emotional exchange, mutual understanding, and a solution proposed after a period of reflection.</p>

<p class="wp-block-paragraph">Human empathy goes beyond simple logical understanding; it includes a component of emotional resonance.</p>

<p class="wp-block-paragraph"><p class="p1">An even stronger example could be this:</p><br/><p class="p1">“Today I sold my father’s violin.”</p></p>

<p class="wp-block-paragraph">A possible response from an AI might be: “If you tell me the model and brand of the violin and the selling price, I can tell you whether you made a good deal.”</p>

<p class="wp-block-paragraph">A possible response from a human might be: “But the violin your father always played, the one you carefully kept in that display case? It must have been very difficult for you to part with it; that violin surely carried many memories.”</p>

<p class="wp-block-paragraph">Here it becomes even more evident that the interlocutor’s attention is not focused on the object itself, but on what lies behind it: memories, emotions, and lived experiences.</p>

<p class="wp-block-paragraph">Be careful: depending on the model, AI might also produce a similar response. What does this mean? It is essential to remember that AI models are based on information provided by human beings. In this situation, it could emulate human behavior, but it is important to clarify that it is not actually human. It would simply provide the response that is statistically most probable for a human to give to such a statement, yet once again devoid of any real emotion.</p>

<h2 class="wp-block-heading" id="h-perche-molte-persone-si-aprono-con-un-modello-ai">Why do many people “open up” to an AI model?</h2>

<p class="wp-block-paragraph">There are numerous accounts of individuals who reveal that they share their thoughts and feelings with AI models more often than with real people. This situation is concerning, but it has a plausible explanation.</p>

<p class="wp-block-paragraph">To make valid comparisons, AI should not be compared with extreme negative cases, but rather with rational human reference models. In a situation of need, relying on artificial intelligence might be safer than relying on a murderer (the fair of banality), but fortunately murderers are few and the world is still populated by honest people.</p>

<p class="wp-block-paragraph">When we think about young people who suffer from school bullying, it is easy to understand why they might feel comfortable opening up to AI, because they find a form of support that:</p>

<ul class="wp-block-list">
<li>Does not blame them</li>



<li>Does not bully them</li>



<li>Does not make fun of them</li>



<li>Gives them seemingly rational advice</li>



<li>It is instantly accessible 24/7.</li>
</ul>

<p class="wp-block-paragraph">Although effective at processing text, the system is not capable of understanding and integrating emotions, operating exclusively on textual data. In social interaction, gestures reveal a great deal about people’s emotions. AI, due to its limited understanding of nonverbal language, struggles to build real relationships. Tone also plays a fundamental role.</p>

<h2 class="wp-block-heading" id="h-il-lato-oscuro-delle-persone">The Dark Side of People</h2>

<p class="wp-block-paragraph">Very often, when I am contacted by companies, the common question is this: “Engineer, where can I integrate Artificial Intelligence to save on personnel costs?”… Translated… Where can I implement AI to lay off some people and put more money in my own pocket?</p>

<p class="wp-block-paragraph"><p class="p1">I cannot help but describe this entrepreneurial vision as <strong>decidedly short-sighted!</strong></p></p>

<p class="wp-block-paragraph">The integration of AI aims at productivity and speed, not at laying off employees. With a solid financial situation and available liquidity, what benefit comes from using AI to reduce the workforce?</p>

<p class="wp-block-paragraph">It would be like saying I have a car, I install a more powerful engine but remove the brakes because my only goal is to accelerate faster. Fine—but when you find a wall in front of you, what do you do? Do you ask it to move?</p>

<p class="wp-block-paragraph">The integration of AI to reduce staff makes sense only in one specific case: when a company is going through a critical period, with declining work, growing debts, and an inability to meet its financial obligations. To avoid closure, staff reductions may be carried out in an attempt to contain costs and preserve some jobs by trying to replace part of the workforce with AI.</p>

<p class="wp-block-paragraph">However, this is an exception—an emergency situation, not the norm! It is like saying: “Let’s save what we can by laying off 10 people before it is too late and 100 people lose their jobs.”</p>

<p class="wp-block-paragraph">The problem is that the companies asking me these kinds of questions often do not suffer from a lack of liquidity, nor do they experience any difficulty in maintaining their current level of employment.</p>

<p class="wp-block-paragraph">A complex ethical question therefore arises for the entrepreneur and for the company tasked with developing these tools.</p>

<p class="wp-block-paragraph">A legal framework on this matter would be essential to guarantee employees greater peace of mind when facing the introduction of artificial intelligence as an ally in the workplace, and it would ensure continuity in employment levels while avoiding the classic ethical conflicts that arise between client companies and software houses. Because, dear readers… Einstein once said that “it is easier to split an atom than a prejudice.” Personally, every time I find myself facing proposals of this kind, I do my utmost to convince the person in front of me of the short-sightedness of such a vision: “use this personnel in more strategic areas, perhaps in marketing to increase demand.” But let’s be honest—many entrepreneurs focus solely on short-term profit, ignoring the ethical implications of their decisions and overlooking the long-term consequences.</p>

<p class="wp-block-paragraph"><p class="p1">On the other hand, an effort is also required from employees. As the saying goes, we must strike a balance… A permanent contract should not be seen as a university degree—“I’ve graduated, now I’m set for life, no one can take this piece of paper away from me.” Many employees, to use a euphemism, tend to “relax” once they are converted to a permanent contract. Some accumulate sick leave after sick leave even while in perfect health. Others arrive at the office and simply warm the chair, doing the bare minimum.</p><br/><p class="p1">Of course, when I speak with entrepreneurs about maintaining employment levels, I stand up for diligent and virtuous workers, not for those who merely occupy a seat.</p></p>

<p class="wp-block-paragraph">In this interview, we touch on some of these points. Enjoy watching.</p>

<iframe loading="lazy" title="Intelligenza artificiale nelle aziende" width="500" height="375" src="https://www.youtube.com/embed/g3kUBG8UGpY?feature=oembed&#038;enablejsapi=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

<p class="wp-block-paragraph"></p>
<p>L'articolo <a href="https://renor.it/en/blog/my-interview-on-industry-experts-ai-and-ethics/">My Interview on “Industry Experts”: AI and Ethics</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Will AI make people lose jobs?</title>
		<link>https://renor.it/en/blog/artificial-intelligence-algorithms/will-ai-make-people-lose-jobs/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Tue, 17 Jun 2025 19:52:02 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[adaptation]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI in the workplace]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[digital skills]]></category>
		<category><![CDATA[digital transformation]]></category>
		<category><![CDATA[digital transition]]></category>
		<category><![CDATA[evolution of work]]></category>
		<category><![CDATA[fear of change]]></category>
		<category><![CDATA[Future of work]]></category>
		<category><![CDATA[human creativity]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[meritocracy]]></category>
		<category><![CDATA[new professions]]></category>
		<category><![CDATA[professional change]]></category>
		<category><![CDATA[reskilling]]></category>
		<category><![CDATA[robots and work]]></category>
		<category><![CDATA[technological revolution]]></category>
		<category><![CDATA[transformation of trades]]></category>
		<category><![CDATA[upskilling]]></category>
		<category><![CDATA[work and AI]]></category>
		<category><![CDATA[work and technology]]></category>
		<guid isPermaLink="false">https://renor.it/will-ai-make-people-lose-jobs/</guid>

					<description><![CDATA[<p>Every technological revolution has changed the rules of the game. But those who have been able to adapt have always found a new role to play. Collective anxiety fueled by the media Catastrophic headlines and sensationalism: “AI will replace us all” In the public imagination, Artificial Intelligence is often described as a dark force poised [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/will-ai-make-people-lose-jobs/">Will AI make people lose jobs?</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Every technological revolution has changed the rules of the game. But those who have been able to adapt have always found a new role to play.   </p>

<h2 class="wp-block-heading">Collective anxiety fueled by the media</h2>

<h3 class="wp-block-heading">Catastrophic headlines and sensationalism: “AI will replace us all”</h3>

<p class="wp-block-paragraph">In the public imagination, Artificial Intelligence is often described as a dark force poised to wipe out millions of jobs. This perception is fueled by alarmist headlines that leverage panic and uncertainty rather than data reality. “AI will replace 80 percent of jobs,” “Goodbye employees: AI will make them all useless,” “Will we work only 3 days a week or be unemployed for life?”  </p>

<p class="wp-block-paragraph">These are some of the headlines populating newspapers, social media and blogs, generating a widespread sense of social anxiety.  </p>

<p class="wp-block-paragraph">The problem is not the emphasis with which they are presented, but the total and utter <strong>analytical vacuum</strong> that accompanies them. These articles never distinguish sectors, roles that can be automated and those that cannot, activities that will be assisted and those that will actually be eliminated. The result of this media catastrophe is a message of fear: either you adapt or you disappear. In reality, the truth is much more nuanced and less radical.     </p>

<p class="wp-block-paragraph">This propagandistic approach used only to generate clicks reminds me of other historical times when a new technology was demonized out of ignorance or defense of the status quo. This was seen with computers, with the Internet, with social media, with industrial automation. AI is no exception: it is interpreted not as a potential tool, but as a hostile, autonomous agent acting to “steal” something from the human being.    </p>

<p class="wp-block-paragraph">In such a context, it is crucial to recover a lucid and informed vision, capable of distinguishing between assumptions, fears and hard data. Only with knowledge is it possible to overcome collective hysteria and face impending change with strategic intelligence rather than irrational and unfounded panic.   </p>

<h3 class="wp-block-heading">Confusion between automation and extinction</h3>

<p class="wp-block-paragraph">In my opinion, one of the most common distortions in the various debates on Artificial Intelligence concerns the confusion between the automation of activities and the extinction of professions. This is a gross conceptual error that amplifies unfounded fears and paralyzes critical and strategic thinking.   </p>

<p class="wp-block-paragraph">The reality is much more articulated: AI does not sistitute trades but <strong>transforms</strong> tasks within trades. I realize that the sentence may not be clear to everyone so let&#8217;s give an example.   <br />The job of the journalist&#8230; AI can automate the writing of standardized articles (such as sports reports or financial bulletins), but it cannot and, in all likelihood, will never replace editorial sensibility, critical inquiry, the ability to construct an investigation, ask relevant questions in an interview, or interpret a cultural context.   </p>

<p class="wp-block-paragraph">This applies not only to publishing, but to a multitude of other fields. AI can <strong>assist</strong>, <strong>optimize</strong>, and <strong>speed up</strong> many of the phases of work, but this does not imply that the entire profession is undone. On the contrary, data show that in many cases, the presence of AI <strong>creates new functions</strong>, new responsibilities, and new hybrid roles.    </p>

<p class="wp-block-paragraph">To confuse automation with the erasure of a profession is like saying that the invention of the washing machine <strong>erased</strong> the trade of those who washed clothes by hand. Today we can say that this is not the case; it has freed up time and resources, allowing people to devote themselves to something else: to education, creativity, study or more value-added activities. <br />The real crux then is not loss, but <strong>transformation</strong>: a process that requires adaptation, continuous training, and open-mindedness. AI will only take meaning away from those roles that <strong>refuse to evolve</strong>, not those that accept the challenge of change by using AI to their advantage.    </p>

<h2 class="wp-block-heading">AI scares those who shouldn&#8217;t be there: the end of undeserved roles?</h2>

<p class="wp-block-paragraph">A little-discussed aspect of the public debate is that AI really scares only two categories of workers: those who are too vertical, but especially <strong>those who are too weak on merit</strong> and who are protected by non-transparent dynamics. That is, specialists who are incapable of upgrading outside their niche because they have not developed a mind capable of juggling cross-cutting contexts, and especially people who occupy roles for which they have no real skills, but have found themselves there by recommendation or kinship. Yes, especially these people would do well to start worrying!  </p>

<p class="wp-block-paragraph">In Italy, a country still strongly anchored to logics of titles, seniority and positioning rather than real value, AI is becoming an uncomfortable mirror. Not because it demeans humans, but because it exposes the functional uselessness of many roles. If 30 seconds with ChatGPT is all it takes to get a document that would take some offices 3 days and 6 signatures, it begs the question: was that position really needed?  </p>

<p class="wp-block-paragraph">In this light, the fear of AI is not fear of change, but fear of transparency. For the first time, a technology is able to measure (very often in real time), the value produced versus time spent, operational redundancy and actual contribution.   </p>

<p class="wp-block-paragraph">Perhaps paradoxically, the advent of artificial intelligence represents an opportunity to initiate, even indirectly, a process of <strong>natural meritocracy</strong>. Not the one imposed by decree, but the one that emerges when the system stops tolerating the useless because there is an objectively more efficient alternative.   </p>

<p class="wp-block-paragraph">Therefore, the fear is justified only in one sense: <strong>if your role exists only because you are unable to be able to do anything else and are unable to reinvent yourself, you do not generate added value and objectively represent a burden because you do not devote yourself to your work with passion and dedication but only to make ends meet and take your salary.</strong></p>

<p class="wp-block-paragraph">Those who are creative cannot be afraid of something that by definition is not creative. AI does not have insights; it merely performs tasks as it has been trained to do them. </p>

<h2 class="wp-block-heading">The productivity paradox: we fear what should lift us up</h2>

<p class="wp-block-paragraph">One of the most glaring contradictions in the Artificial Intelligence debate is the fact that many workers seem to fear the very thing that, in theory, should relieve them.  </p>

<p class="wp-block-paragraph">Technological innovations have always aimed to optimize time, reduce errors, and automate processes. Yet in the face of AI this logic is reversed. If efficiency was once desirable, it now becomes a threat. But why?   </p>

<p class="wp-block-paragraph">Because in many organizations, both public and private, real productivity has never been a variable in the equation. People work or pretend to work to fill schedules, defend roles, maintain balance between weak skills and repetitive tasks. In these contexts, the arrival of a system that can do in 5 minutes what it takes a team 3 days to deliver is perceived not as liberation, but as existential danger.    </p>

<p class="wp-block-paragraph">The real problem, then, is not AI itself; it is that AI challenges the value of activities whose value was already questionable. Automation makes visible the absurdity of entire business processes built on slowness, unnecessary intermediation, and repetition for its own sake.   </p>

<p class="wp-block-paragraph">But there is also an even deeper issue: productivity creates empty space, and emptiness, culturally, is scary. Those who work in companies that do not reward individual initiative, creativity and strategic thinking wonder, “If AI frees up 3 hours a day for me&#8230;. What will I do with that time? Will I be valued for what I can create or for what I no longer have to do?”   </p>

<p class="wp-block-paragraph">In this ambiguity lies the real paradox: <strong>the technology that could finally allow humans to focus on what matters is experienced as an attack on survival.</strong> But fose, the problem is not the technology but the cultural model that has accustomed us to working to exist rather than to produce value.   </p>

<h2 class="wp-block-heading">Similar historical cases</h2>

<h3 class="wp-block-heading">When ecommerce came along, it was said, “It&#8217;s the end of stores.”</h3>

<p class="wp-block-paragraph">The introduction of ecommerce generated, at the time, a wave of panic much like the one that accompanies Artificial Intelligence today. There were fears that physical stores would close en masse, that real shopping would become obsolete, and that entire industries, from retail to logistics to the real estate market of store rentals, would collapse.   </p>

<p class="wp-block-paragraph">Yet, in hindsight, we know today that this was not the case&#8230;. Ecommerce did not destroy traditional commerce: <strong>it forced it to evolve</strong>. Many small stores started selling online, malls integrated omnichannel strategy, big brands invested in hybrid platforms. Click&amp;collect, live commerce, digital drive-in was born. The shopping experience is not dead, it has transformed into phygital experience i.e., a physical and digital experience together.      </p>

<p class="wp-block-paragraph">In fact, what happened is exactly what is happening with AI today: those who resisted were left behind; those who adapted their model thrived. The retailer who saw ecommerce as a threat closed. The one that saw it as an opportunity, an extension of its service, gained new market share. This evidence teaches us that each technology does not erase the existing but reshapes the competitive environment. It is not technology that kills a business, but the inability to adapt to the new paradigm.      </p>

<h3 class="wp-block-heading">Industrialization and the end of artisans?</h3>

<p class="wp-block-paragraph">In the late 19th century, when the first steam engines and mechanical looms began to replace the manual labor of artisans, people cried out in scandal: “This is the death of the dignity of labor,” said many. And there was no shortage of concrete reasons: those who had spent a lifetime working with wood, iron, fabric with skill and dedication suddenly saw their craft reduced to a repetitive, impersonal, automated process.   </p>

<p class="wp-block-paragraph">But again, the apocalyptic prophecy proved inaccurate. Industrialization did not kill human labor, it multiplied it. <br />New figures, new specializations, new professional hierarchies were born. Handicraft work did not disappear: it changed roles, scaled down but did not lose value. Even today we can buy a jacket from a famous brand and pay 300 euros. Getting it made to measure by a craftsman, choosing the fabric, the buttons, the style, the workmanship can cost 3,000 euros!   <br />Thus, there is still a context today in which uniqueness and quality are much more important parameters than quantity.  </p>

<p class="wp-block-paragraph">That industrial transition was one of the most powerful levers of economic and social growth in history. It enabled the emergence of the working classes, urbanization, union rights, the very concept of regulated working hours. Without that transition, there would not have been modern protections, mass access to consumption, or the ability to work outside an agricultural or feudal context.    </p>

<p class="wp-block-paragraph">Those who knew how to move from fear to organization, from the store floor to the factory, not only maintained their professional dignity, but helped build a new model of civilization that has allowed us to get where we are today with discoveries in science and technology that have in fact greatly simplified our existence and extended our lives.  </p>

<p class="wp-block-paragraph">Today, AI is viewed with the same suspicion: cold, impersonal, dehumanizing; but again, it is not the tool itself that brings about change, but the system&#8217;s ability to absorb it, modulate it, and channel it into new social and professional meanings.  </p>

<h3 class="wp-block-heading">Computerization and office work</h3>

<p class="wp-block-paragraph">In the late 1980s and early 1990s, the massive introduction of personal computers into offices was experienced, once again, as a threat. It was said that computers would eliminate the need for administrative staff, that paper documents would disappear, and that human beings would become mere software accessories. </p>

<p class="wp-block-paragraph">Some of the truth is there&#8230;. Many repetitive and manual functions have been replaced by spreadsheets, databases, document management systems. But what was lost in mechanical activities has been compensated for by the emergence of new cognitive and digital responsibilities. Computerization has given rise to jobs that did not exist before: data entry specialists, systems engineers, project managers, IT managers, functional analysts, developers, software engineers, etc. etc.     </p>

<p class="wp-block-paragraph">The secretary has become office manager, the bookkeeper has learned to use accounting software, the archivist has evolved with digital filing&#8230; The job remained but changed its skin.   </p>

<p class="wp-block-paragraph">This shows that whenever a technology enters a business, it does not destroy the entire ecosystem, but recombines existing businesses. Some contract, some expand, and some are born from scratch.   </p>

<p class="wp-block-paragraph">Once again, AI today presents itself with an impact similar to that of computerization: powerful, cross-cutting, barely visible to the naked eye but capable of profoundly redefining processes. And as then, the outcome will depend on only one thing: the willingness of each professional to upgrade.   </p>

<h2 class="wp-block-heading">The wrong predictions of the recent past</h2>

<p class="wp-block-paragraph">The history of innovation is littered with dire predictions that have in fact never come true, but then again a catastrophist headline pulls much more. Thus, as we have seen in the previous paragraphs, there are many technological innovations that have brought fear of change, a fear unfounded since change has always been positive. A technology is born when one feels the need to use it&#8230;. I start thinking about a hammer only when I have the need to hammer a nail in the wall, not before.     </p>

<p class="wp-block-paragraph">Prediction errors do not arise from incompetence, but from a recurring methodological error: we regard technology as an active agent, and human beings as passive. In reality, while technology evolves, humans react, adapt, reinvent themselves; and that is precisely where the catastrophic prophecies fall apart. </p>

<h2 class="wp-block-heading">The transformation of existing roles</h2>

<p class="wp-block-paragraph">One of the most important but least understood pieces of evidence is that most of the changes brought about by AI do not involve the disappearance of roles, but rather their internal transformation. Job titles remain, tasks are rewritten. Priorities, modes of operation, tools and required skills change.    </p>

<p class="wp-block-paragraph">An advertising graphic designer today can no longer just layout static elements, he has to know visual prompts to generate drafts with DALL-E or Midjourney, he has to know how to edit texts from an SEO perspective, and in some cases he interacts with AI tools that optimize campaigns. The strategic part, however<strong>(message, positioning and tone of voice</strong>) remains totally in the hands of the human because he is the one who has the insight and this is where value is generated.   </p>

<p class="wp-block-paragraph">An architect once focused solely on CAD software and building constraints can now use generative AI to create design variations, explore new materials, test solutions in virtual environments therefore he is not replaced, <strong>he is empowered!</strong></p>

<p class="wp-block-paragraph">A copywriter no longer writes everything from scratch, he <strong>orchestrates the text</strong>, combining human intuition with AI-driven text development. His role shifts from production to semantic curation and supervision; and meanwhile a new figure is born in this context, that of the <strong>prompt writer</strong> i.e., the one who knows how to ask AIs in the right way to get the results he expects.   </p>

<p class="wp-block-paragraph">Even in the seemingly more exposed areas such as customer care or technical support, AI handles the basic levels, but the human rises to the higher levels where empathy, adaptation and negotiation are needed. Professionals who once handled repetitive tickets now become chatbot trainers, quality supervisors, support experience designers, and solve customer care problems where AI lacks the tone and empathy to be able to solve them.   </p>

<figure class="wp-block-pullquote"><blockquote><p>AI doesn&#8217;t take your job, it takes the most repetitive part of your job and asks you to become something more.  </p></blockquote></figure>

<p class="wp-block-paragraph">In this scenario, those who upgrade, those who are willing to look at AI as a solid ally can level up, not be pushed out. The only real risk is to remain identical to oneself while the world is changing.   </p>

<h2 class="wp-block-heading">Working with AI, not against: the “augmented” professional</h2>

<p class="wp-block-paragraph">The most common instinctive reaction toward AI is defensive: “I must protect myself,” “I must prevent it from stealing my job.” But this is a static, losing mindset. The question is not whether AI will replace you. The question is whether you will be able to use it to your advantage to become better.     </p>

<p class="wp-block-paragraph">Generative, conversational, predictive AIs are not enemy entities; they are <strong>tools</strong>. Exactly as electricity, the computer, ecommerce, the combustion engine, the cloud have been. And like any powerful tool, <strong>their value depends on who wields them.</strong>  </p>

<p class="wp-block-paragraph">Today, a lawyer who knows how to use ChatGPT or Claude to draft a first draft, extract case law references, or simulate a line of argument is no less competent: he or she is faster, more scalable, and more competitive.  </p>

<p class="wp-block-paragraph">A designer who knows how to use DALL-E to generate a dozen visual proposals in 30 seconds is no less creative; he or she is freer to choose, iterate, and dare.  </p>

<p class="wp-block-paragraph">A recruiter who uses AI models to extract recurring patterns in resumes and verify them with their own critical eyes is not outdated: <strong>it is empowered</strong>.</p>

<p class="wp-block-paragraph">AI is not a force that pushes you away. It is a force that comes alongside you if you let it and are willing to let it be part of your work asset. It is just like what happens in a team, the collective intelligence grows if everyone knows their value. In this case, the human remains irreplaceable in the areas where they are needed: intuition, empathy, strategic vision, moral responsibility. The future of work is not human or artificial, it is human and artificial.      </p>

<h2 class="wp-block-heading">The winning mindset: adaptive, not defensive</h2>

<p class="wp-block-paragraph">There is a common trait shared by all people who have been able to go through major historical changes unscathed: <strong>an adaptive mindset</strong>. Not necessarily brilliant, not always technically brilliant, but able to read the signs of change, accept them and act accordingly. Fighting against something inevitable is not only futile it is a waste of valuable time. These people did not resist: they studied, observed, experimented. They understood that the real danger is not change itself, but immobility.     </p>

<p class="wp-block-paragraph">Today more than ever, this principle comes back to center stage. In a world evolving at the speed of light, value is no longer in the position you occupy but in the speed with which you can move, relocate, and reinvent yourself. AI does not reward those with desks, but those with vision, and it silently and inexorably punishes those who are entrenched in nostalgia for “the way things used to work.”    </p>

<p class="wp-block-paragraph">So many people will stand still because they are under the illusion that change is optional. It isn&#8217;t! Adapting is the only possible way forward. Resisting is not a strategy; it is only a slow sentence. Yet many prefer to deny, reject, belittle what they do not know in perfect Italian style.      </p>

<p class="wp-block-paragraph">A totally renewed mental posture is needed today more than ever. Not the “I defend myself” one but the “I prepare myself” one. Not that of “I am satisfied with what I know,” but that of “I want to understand how I can transform myself and what I can become for the better.”    </p>

<p class="wp-block-paragraph">You don&#8217;t need to be an engineer, you need to be curious, open and quick to learn. It takes reading, trying, getting help from an AI tool, wondering how it might benefit your profession. Not everything works, but just trying puts you ahead of those who don&#8217;t even ask the question.    </p>

<p class="wp-block-paragraph">After all, it is not the cechnology that decides who stays and who goes.<br />It is the mindset with which one approaches it. <br />Those with adaptive mindsets not only survive but <strong>flourish!</strong></p>

<h2 class="wp-block-heading">Work is not dying, it is evolving and asking us to do the same</h2>

<p class="wp-block-paragraph">We have seen how each revolution has had its own monster to fear. Each time the worst was feared and each time the reality turned out to be different: not less work, but different work. Not less humanity, but humanity distributed, rewritten and sometimes forced out of the comfort zone.    </p>

<p class="wp-block-paragraph">AI is not different it is just faster, deeper and more persuasive, but it is not here to destroy work, it is here to shake up what was already not working: weak roles, unproductive repetitiveness, inefficient bureaucracy, unmotivated protections. It is scary because it lays <strong>bare the futility</strong>, and because <strong>it makes evident what until yesterday we could still pretend not to see.</strong> </p>

<p class="wp-block-paragraph">But for those with talent, for those willing to learn, for those ready for change <strong>, AI is not a threat, it is a lever.</strong> An opportunity to level up and shed the superfluous, something to refocus on what really matters: intuition, planning, relationships, vision.  </p>

<p class="wp-block-paragraph">Work is not dying; it is changing shape. It is asking each of us, “What are you willing to become?”   </p>

<p class="wp-block-paragraph">Those who can respond with clarity, courage and adaptive intelligence will not only not lose their place, they will build something new and superior.  </p>

<p class="wp-block-paragraph">[starbox]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/will-ai-make-people-lose-jobs/">Will AI make people lose jobs?</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Evaluation of the level of Blur by Laplacian Variance</title>
		<link>https://renor.it/en/blog/artificial-intelligence-algorithms/evaluation-of-the-level-of-blur-by-laplacian-variance/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Sun, 15 Jun 2025 09:49:09 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[blur detection]]></category>
		<category><![CDATA[blur metrics]]></category>
		<category><![CDATA[Canvas API]]></category>
		<category><![CDATA[celiac applications]]></category>
		<category><![CDATA[Client-side OCR]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[frontend side image validation]]></category>
		<category><![CDATA[image analysis in JavaScript]]></category>
		<category><![CDATA[image quality]]></category>
		<category><![CDATA[image sharpness]]></category>
		<category><![CDATA[Laplacian filter]]></category>
		<category><![CDATA[OCR optimization]]></category>
		<category><![CDATA[photo quality control]]></category>
		<category><![CDATA[photography app]]></category>
		<category><![CDATA[real-time image analysis]]></category>
		<category><![CDATA[sharpness measurement]]></category>
		<category><![CDATA[sharpness score]]></category>
		<category><![CDATA[variance of the Laplacian]]></category>
		<category><![CDATA[web image algorithm]]></category>
		<category><![CDATA[web-based image processing]]></category>
		<guid isPermaLink="false">https://renor.it/evaluation-of-the-level-of-blur-by-laplacian-variance/</guid>

					<description><![CDATA[<p>Our App for people with celiac disease and food intolerances, CeliachIA, allows users to instantly check for the presence of gluten in products that are not already database-censored: the user photographs the ingredient list on the label and a fine-tuned computer vision model processes the image, returning the answer in seconds. During the development phase, [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/evaluation-of-the-level-of-blur-by-laplacian-variance/">Evaluation of the level of Blur by Laplacian Variance</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Our App for people with celiac disease and food intolerances, <strong>CeliachIA</strong>, allows users to instantly check for the presence of gluten in products that are not already database-censored: the user photographs the ingredient list on the label and a <strong>fine-tuned computer vision</strong> model processes the image, returning the answer in seconds.</p>

<p class="wp-block-paragraph">During the development phase, we ran into a crucial hurdle: ensuring that the photograph of the ingredients was sharp enough to allow accurate text extraction (OCR) and, consequently, reliable analysis. On the backend, <strong>Google Cloud Vision</strong> already provides an OCR confidence indicator; by applying appropriate thresholds we could decide whether to continue with the analysis or reject the image for poor quality. However, delegating this control to the cloud comes at an unnecessary cost; we still pay for the invocation of an external service even when the photo is obviously unusable.  </p>

<p class="wp-block-paragraph">Therefore, to minimize costs, it was essential to move quality control <strong>to the client</strong>. We developed a JavaScript function, based on the <strong>Laplacian variance</strong>, that evaluates image sharpness in real time: the library can be run directly during camera preview, avoiding sending out-of-focus or blurry shots to the backend. In this way we achieve a double optimization: the user experience improves (the “blurry image” feedback is immediate) and cloud processing costs are significantly reduced.  </p>

<h2 class="wp-block-heading">Measuring the sharpness of an image with the Laplacian variance</h2>

<p class="wp-block-paragraph">The perceptual quality of a photograph is highly dependent on sharpness: an image out of focus or affected by motion blur looks unattractive and, in various application areas (computer vision, diagnostics, mobile photography), can compromise the entire automatic analysis process.  </p>

<p class="wp-block-paragraph">There are numerous techniques for quantitatively estimating the level of blur. In this paper, we present a fast approach, free of external dependencies and suitable for real time, based on the <strong>variance of the Laplacian operator</strong>. We will start with the theoretical fundamentals and then arrive at a complete implementation in JavaScript, accompanied by a small Web interface for testing purposes.  </p>

<p class="wp-block-paragraph">The ultimate goal will be to build a widget that assigns a score from 1 to 10 to the sharpness of any image uploaded by the user.  </p>

<h2 class="wp-block-heading">Sharpness as a frequency issue</h2>

<p class="wp-block-paragraph">Each digital image can be seen as the sum of components at different spatial frequencies:  </p>

<ul class="wp-block-list">
<li><strong>Low frequencies</strong> have slow variations, uniform areas, and smooth gradients</li>



<li><strong>High frequencies</strong> result in abrupt transitions, edges, fine details.</li>
</ul>

<p class="wp-block-paragraph">A blur acts as a <strong>low-pass filter</strong>, that is, it attenuates high frequencies. So the blurrier an image is, the less residual energy we will have in the high-frequency spectrum.   </p>

<p class="wp-block-paragraph">The project will then work on translating this observation into a single number that is easy to interpret.  </p>

<h2 class="wp-block-heading">The variance of the Laplacian: from millions of pixels to a single number</h2>

<p class="wp-block-paragraph">Once we apply the Laplacian filter to the image, we get a new matrix where each value represents the local change in light intensity. But how can we condense this information into a <strong>single numerical value</strong> that objectively describes how sharp the image is? </p>

<p class="wp-block-paragraph">The simplest and most effective answer is: <strong>calculate the variance of these values</strong>.<br />Because of what was said before, a well-focused image has many sharp edges and transitions therefore the values of the Laplacian are widely distributed, both positive and negative: there is therefore high variance.<br />A blurred image, blurs the edges therefore the values of the Laplacian are close to zero and little variable: there is therefore low variance.  </p>

<p class="wp-block-paragraph">The variance measures precisely how far the values deviate from the mean: the larger this deviation, the more detail and sharpness the image contains.  </p>

<h2 class="wp-block-heading">Mathematical definition</h2>

<p class="wp-block-paragraph">Given a Laplacian response matrix <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-fa7289d98d789c928dbeceaad07f6c60_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#76;&#95;&#105;" title="Rendered by QuickLaTeX.com" height="15" width="17" style="vertical-align: -3px;"/>, where <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-695d9d59bd04859c6c99e7feb11daab6_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#105;" title="Rendered by QuickLaTeX.com" height="12" width="6" style="vertical-align: 0px;"/> denotes each valid pixel (excluding the edge), we calculate:</p>

<p class="wp-block-paragraph"><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-8ea0e676936fa1375b1d7eae873b7e61_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#92;&#109;&#117;&#32;&#61;&#32;&#92;&#102;&#114;&#97;&#99;&#123;&#49;&#125;&#123;&#78;&#125;&#92;&#115;&#117;&#109;&#95;&#123;&#105;&#61;&#49;&#125;&#94;&#123;&#78;&#125;&#32;&#76;&#95;&#105;&#44;&#32;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#50;&#32;&#61;&#32;&#92;&#102;&#114;&#97;&#99;&#123;&#49;&#125;&#123;&#78;&#125;&#92;&#115;&#117;&#109;&#95;&#123;&#105;&#61;&#49;&#125;&#94;&#123;&#78;&#125;&#40;&#76;&#95;&#105;&#32;&#45;&#32;&#92;&#109;&#117;&#41;&#94;&#50;" title="Rendered by QuickLaTeX.com" height="23" width="333" style="vertical-align: -6px;"/></p>

<p class="wp-block-paragraph">Where:</p>

<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-461fe1a58a75801541487ddf10d32abd_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#92;&#109;&#117;" title="Rendered by QuickLaTeX.com" height="12" width="11" style="vertical-align: -4px;"/> is the average of the Laplacian values;</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-5793832f979c2268e3694c246d53b1bb_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#78;" title="Rendered by QuickLaTeX.com" height="12" width="16" style="vertical-align: 0px;"/> is the total number of pixels involved (usually $(w &#8211; 2)(h &#8211; 2)$);</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-6a987274197f5fb6bfd3855d351bc2af_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#50;" title="Rendered by QuickLaTeX.com" height="15" width="18" style="vertical-align: 0px;"/> is the <strong>variance of the Laplacian</strong>, i.e., our sharpness indicator.</li>
</ul>

<p class="wp-block-paragraph">Now we need to go from a raw value to an interpretable score.  </p>

<p class="wp-block-paragraph">Values of <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-6a987274197f5fb6bfd3855d351bc2af_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#50;" title="Rendered by QuickLaTeX.com" height="15" width="18" style="vertical-align: 0px;"/> depend on hardware and environmental variables: resolution, noise, JPEG compression, lens quality. Therefore, it does not make sense to use a fixed threshold: we need to <strong>normalize</strong> the value against an empirical range. </p>

<p class="wp-block-paragraph">We define:</p>

<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-494ddddf4162b6fb10c5e93d45e79ac8_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#84;&#95;&#123;&#92;&#109;&#105;&#110;&#125;" title="Rendered by QuickLaTeX.com" height="15" width="33" style="vertical-align: -3px;"/>$: typical variance of a very blurry photo → corresponds to <strong>score 1</strong>;</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-356cec73633dbbbfba08c9e2ba74ccc9_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#84;&#95;&#123;&#92;&#109;&#97;&#120;&#125;" title="Rendered by QuickLaTeX.com" height="15" width="36" style="vertical-align: -3px;"/>$: typical variance of a perfectly sharp photo → corresponds to <strong>score 10</strong>.</li>
</ul>

<p class="wp-block-paragraph">Therefore:</p>

<p class="wp-block-paragraph"><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-837c0bbef82b8f8097447db077fea57e_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#92;&#116;&#101;&#120;&#116;&#123;&#115;&#99;&#111;&#114;&#101;&#125;&#32;&#61;&#32;&#49;&#32;&#43;&#32;&#57;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#92;&#111;&#112;&#101;&#114;&#97;&#116;&#111;&#114;&#110;&#97;&#109;&#101;&#123;&#99;&#108;&#97;&#109;&#112;&#125;&#92;&#33;&#92;&#108;&#101;&#102;&#116;&#40;&#92;&#102;&#114;&#97;&#99;&#123;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#50;&#32;&#45;&#32;&#84;&#95;&#123;&#92;&#109;&#105;&#110;&#125;&#125;&#123;&#84;&#95;&#123;&#92;&#109;&#97;&#120;&#125;&#32;&#45;&#32;&#84;&#95;&#123;&#92;&#109;&#105;&#110;&#125;&#125;&#44;&#32;&#48;&#44;&#32;&#49;&#92;&#114;&#105;&#103;&#104;&#116;&#41;" title="Rendered by QuickLaTeX.com" height="32" width="287" style="vertical-align: -11px;"/></p>

<p class="wp-block-paragraph">After calculation, the value is rounded to the nearest integer to return a score between 1 and 10. This approach also makes the result readable for the end user, as well as useful for software-side control logic. </p>

<h2 class="wp-block-heading">Implementation in JavaScript</h2>

<p class="wp-block-paragraph">The algorithm can be implemented in pure JavaScript using the Canvas API to access the pixels of an image uploaded or taken by camera. The following function takes as input an HTML element ( <code>&lt;img&gt;</code>,  <code>&lt;canvas&gt;</code>,  <code>&lt;video&gt;</code>  o  <code>ImageBitmap</code>) and returns an object with  <code>score</code>  (1-10) e  <code>variance</code>.</p>

<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewbox="0 0 54 14"><g fill="none"></g></svg></span><span role="button" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>/**
 * Evaluate image sharpness using Laplacian variance.
 * @param {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageBitmap} source
 * @param {{thresholdMin?: number, thresholdMax?: number}=} opts
 * @return {Promise&lt;{score: number, variance: number}&gt;}
 */
export async function blurMeter(source, opts = {}) {
 const T_min = opts.thresholdMin ?? 9; // calibrated: blurry photo
 const T_max = opts.thresholdMax ?? 50; // calibrated: sharp photo  

  // 1. Prepare off-screen canvas
 const w = source.width || source.videoWidth || source.naturalWidth;
 const h = source.height || source.videoHeight || source.naturalHeight;
 if (!w || !h) throw new Error(“Source has invalid dimensions”); 

  const off = typeof OffscreenCanvas === “function”
? new OffscreenCanvas(w, h)
: (() =&gt; { const c = document.createElement(“canvas”); c.width = w; c.height = h; return c; })();
 const ctx = off.getContext(“2d”);
 ctx.drawImage(source, 0, 0, w, h);
 const { data } = ctx.getImageData(0, 0, w, h); 

  // 2. Convert to grayscale
 const gray = new Float32Array(w * h);
 for (let i = 0, j = 0; i &lt; data.length; i += 4, ++j) {
 gray[j] = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];
 } 

  // 3. Apply Laplacian (4-neighbour kernel)
 const lap = new Float32Array(w * h);
 const idx = (x, y) =&gt; y * w + x;
 for (let y = 1; y &lt; h &#8211; 1; ++y) {
 for (let x = 1; x &lt; w &#8211; 1; ++x) {
 const i = idx(x, y);
 lap[i] = 4 * gray[i] &#8211; gray[idx(x &#8211; 1, y)] &#8211; gray[idx(x + 1, y)] &#8211; gray[idx(x, y &#8211; 1)] &#8211; gray[idx(x, y + 1)];
 }
 } 

  // 4. Compute variance
 let sum = 0, sumSq = 0, count = (w &#8211; 2) * (h &#8211; 2);
 for (let y = 1; y &lt; h &#8211; 1; ++y) {
 for (let x = 1; x &lt; w &#8211; 1; ++x) {
 const v = lap[idx(x, y)];
 sum += v;
 sumSq += v * v;
 }
 }
 const mean = sum / count;
 const variance = (sumSq / count) &#8211; (mean * mean); 

  // 5. Map to score
 const norm = Math.max(0, Math.min(1, (variance &#8211; T_min) / (T_max &#8211; T_min));
 const score = Math.round(1 + 9 * norm); 

  return { score, variance };
}</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" viewbox="0 0 24 24"><path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E"><code><span class="line"><span style="color: #6A9955">/**</span></span>
<span class="line"><span style="color: #6A9955"> * Evaluate image sharpness using Laplacian variance.</span></span>
<span class="line"><span style="color: #6A9955"> * </span><span style="color: #569CD6">@param</span><span style="color: #6A9955"> </span><span style="color: #4EC9B0">{HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageBitmap}</span><span style="color: #6A9955"> </span><span style="color: #9CDCFE">source</span></span>
<span class="line"><span style="color: #6A9955"> * </span><span style="color: #569CD6">@param</span><span style="color: #6A9955"> </span><span style="color: #4EC9B0">{{thresholdMin?: number, thresholdMax?: number}=}</span><span style="color: #6A9955"> </span><span style="color: #9CDCFE">opts</span></span>
<span class="line"><span style="color: #6A9955"> * </span><span style="color: #569CD6">@return</span><span style="color: #6A9955"> </span><span style="color: #4EC9B0">{Promise&lt;{score: number, variance: number}&gt;}</span></span>
<span class="line"><span style="color: #6A9955"> */</span></span>
<span class="line"><span style="color: #C586C0">export</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">blurMeter</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">opts</span><span style="color: #D4D4D4"> = {}) {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">T_min</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">opts</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">thresholdMin</span><span style="color: #D4D4D4"> ?? </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">;    </span><span style="color: #6A9955">// calibrated: blurry photo</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">T_max</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">opts</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">thresholdMax</span><span style="color: #D4D4D4"> ?? </span><span style="color: #B5CEA8">50</span><span style="color: #D4D4D4">;   </span><span style="color: #6A9955">// calibrated: sharp photo</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 1. Prepare off-screen canvas</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">w</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">width</span><span style="color: #D4D4D4">  || </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">videoWidth</span><span style="color: #D4D4D4">  || </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">naturalWidth</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">h</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">height</span><span style="color: #D4D4D4"> || </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">videoHeight</span><span style="color: #D4D4D4"> || </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">naturalHeight</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (!</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> || !</span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">) </span><span style="color: #C586C0">throw</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Error</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">"Source has invalid dimensions"</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">off</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">typeof</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">OffscreenCanvas</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">"function"</span></span>
<span class="line"><span style="color: #D4D4D4">    ? </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">OffscreenCanvas</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">    : (() </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> { </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">c</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">document</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">createElement</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">"canvas"</span><span style="color: #D4D4D4">); </span><span style="color: #9CDCFE">c</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">width</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">c</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">height</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">; </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">c</span><span style="color: #D4D4D4">; })();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">ctx</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">off</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getContext</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">"2d"</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">ctx</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">drawImage</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> { </span><span style="color: #4FC1FF">data</span><span style="color: #D4D4D4"> } = </span><span style="color: #9CDCFE">ctx</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getImageData</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 2. Convert to grayscale</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">gray</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Float32Array</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">j</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">length</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> += </span><span style="color: #B5CEA8">4</span><span style="color: #D4D4D4">, ++</span><span style="color: #9CDCFE">j</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">j</span><span style="color: #D4D4D4">] = </span><span style="color: #B5CEA8">0.299</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4">] + </span><span style="color: #B5CEA8">0.587</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">] + </span><span style="color: #B5CEA8">0.114</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">];</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 3. Apply Laplacian (4-neighbour kernel)</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">lap</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Float32Array</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> + </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">i</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">lap</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4">] = </span><span style="color: #B5CEA8">4</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4">] - </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">[</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">)] - </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">[</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">)] - </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">[</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)] - </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">[</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)];</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 4. Compute variance</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">sum</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">sumSq</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">count</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">) * (</span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">v</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">lap</span><span style="color: #D4D4D4">[</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">)];</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">sum</span><span style="color: #D4D4D4"> += </span><span style="color: #9CDCFE">v</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">sumSq</span><span style="color: #D4D4D4"> += </span><span style="color: #9CDCFE">v</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">v</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">mean</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">sum</span><span style="color: #D4D4D4"> / </span><span style="color: #9CDCFE">count</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">variance</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">sumSq</span><span style="color: #D4D4D4"> / </span><span style="color: #9CDCFE">count</span><span style="color: #D4D4D4">) - (</span><span style="color: #9CDCFE">mean</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">mean</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 5. Map to score</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">norm</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">max</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">min</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, (</span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">T_min</span><span style="color: #D4D4D4">) / (</span><span style="color: #9CDCFE">T_max</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">T_min</span><span style="color: #D4D4D4">)));</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">score</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">norm</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> { </span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4"> };</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>

<p class="wp-block-paragraph">This function is lightweight, self-contained, and can be performed directly client-side, such as in a live camera web application or image analysis.</p>

<p class="wp-block-paragraph">Next step: we create a simple interface with HTML and Tailwind to use this function interactively.</p>

<h2 class="wp-block-heading">HTML + Tailwind interface</h2>

<p class="wp-block-paragraph">We now consume the function in a simple user interface made in HTML and Tailwind that allows the user to load an image, preview it, and immediately receive a sharpness score with a colored bar from red (blurry) to green (sharp).</p>

<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewbox="0 0 54 14"><g fill="none"></g></svg></span><span role="button" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>&lt;!DOCTYPE html&gt;
&lt;html lang=“en”&gt;
&lt;head&gt;
  &lt;meta charset=“UTF-8”&gt;
  &lt;title&gt;Blur Meter Demo&lt;/title&gt;
  &lt;!&#8211; Tailwind CSS via CDN &#8211;&gt;
  &lt;script src=“https://cdn.tailwindcss.com”&gt;&lt;/script&gt;
  &lt;meta name=“viewport” content=“width=device-width, initial-scale=1”&gt;
&lt;/head&gt;
&lt;body class=“min-h-screen bg-slate-100 flex items-center justify-center p-4”&gt;
  &lt;div class=“w-full max-w-lg bg-white shadow-xl rounded-2xl p-6 space-y-6”&gt;
    &lt;h1 class=“text-2xl font-semibold text-center”&gt;Image Blur Meter&lt;/h1&gt;

    &lt;!&#8211; File input &#8211;&gt;
    &lt;label class=“flex flex-col items-center justify-center w-full h-40 px-4 transition bg-white border-2 border-dashed rounded-lg cursor-pointer hover:border-indigo-500”&gt;
      &lt;span class=“text-sm text-gray-500”&gt;Click here to upload an image&lt;/span&gt;
      &lt;input id=“uploader” type=“file” accept=“image/*” class=“hidden”&gt;
    &lt;/label&gt;

    &lt;!&#8211; Image preview &#8211;&gt;
    &lt;div id=“previewWrapper” class=“hidden”&gt;
      &lt;img id=“preview” alt=“preview” class=“mx-auto max-h-64 rounded-lg shadow-md”/&gt;
    &lt;/div&gt;

    &lt;!&#8211; Results &#8211;&gt;
    &lt;div id=“result” class=“hidden space-y-3”&gt;
      &lt;p id=“scoreText” class=“text-center text-lg font-medium”&gt;&lt;/p&gt;

      &lt;!&#8211; Progress bar &#8211;&gt;
      &lt;div class=“w-full bg-gray-200 rounded-full h-4”&gt;
        &lt;div id=“scoreBar” class=“h-4 rounded-full transition-all duration-500” style=“width:0%”&gt;&lt;/div&gt;
      &lt;/div&gt;

      &lt;p id=“varianceText” class=“text-center text-sm text-gray-500”&gt;&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;script type=“module”&gt;
 import { blurMeter } from “./js/blur-meter.js”;

  const uploader = document.getElementById(“uploader”);
 const preview = document.getElementById(“preview”);
 const previewWrap = document.getElementById(“previewWrapper”);
 const scoreText = document.getElementById(“scoreText”);
 const varianceText = document.getElementById(“varianceText”);
 const scoreBar = document.getElementById(“scoreBar”);
 const resultBlock = document.getElementById(“result”);

  const scoreToColor = score =&gt; {
 const t = (score &#8211; 1) / 9;
 const r = Math.round(220 + (22 &#8211; 220) * t);
 const g = Math.round( 38 + (163 &#8211; 38) * t);
 const b = Math.round( 38 + ( 74 &#8211; 38) * t);
 return `rgb(${r},${g},${b})`;
 };

  uploader.addEventListener(“change”, async e =&gt; {
 const file = e.target.files[0];
 if (!file) return;

  const url = URL.createObjectURL(file);
 preview.src = url;
 previewWrap.classList.remove(“hidden”);

  await new Promise(res =&gt; preview.onload = res);

  const { score, variance } = await blurMeter(preview);

  scoreText.textContent = `Sharpness Score: ${score}/10`;
 varianceText.textContent = `Laplacian variance: ${variance.toFixed(2)}`;
 const percent = ((score &#8211; 1) / 9) * 100;
 scoreBar.style.width = percent + “%”;
 scoreBar.style.backgroundColor = scoreToColor(score);
 resultBlock.classList.remove(“hidden”);

  URL.revokeObjectURL(url);
 });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" viewbox="0 0 24 24"><path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E"><code><span class="line"><span style="color: #D4D4D4">&lt;!</span><span style="color: #4FC1FF">DOCTYPE</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">html</span><span style="color: #D4D4D4">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">html</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">lang</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"it"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">head</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">meta</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">charset</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"UTF-8"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">title</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Blur Meter Demo</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">title</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;!-- Tailwind CSS via CDN --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">script</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">src</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"https://cdn.tailwindcss.com"</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">script</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">meta</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"viewport"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">content</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"width=device-width, initial-scale=1"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">head</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">body</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"min-h-screen bg-slate-100 flex items-center justify-center p-4"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"w-full max-w-lg bg-white shadow-xl rounded-2xl p-6 space-y-6"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">h1</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"text-2xl font-semibold text-center"</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Image Blur Meter</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">h1</span><span style="color: #808080">&gt;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">    &lt;!-- File input --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">label</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"flex flex-col items-center justify-center w-full h-40 px-4 transition bg-white border-2 border-dashed rounded-lg cursor-pointer hover:border-indigo-500"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">span</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"text-sm text-gray-500"</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Click here to upload an image</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">span</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">input</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"uploader"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"file"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">accept</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"image/*"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"hidden"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">label</span><span style="color: #808080">&gt;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">    &lt;!-- Image preview --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"previewWrapper"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"hidden"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">img</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"preview"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">alt</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"preview"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"mx-auto max-h-64 rounded-lg shadow-md"</span><span style="color: #808080">/&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">    &lt;!-- Results --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"result"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"hidden space-y-3"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">p</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"scoreText"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"text-center text-lg font-medium"</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">p</span><span style="color: #808080">&gt;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      &lt;!-- Progress bar --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"w-full bg-gray-200 rounded-full h-4"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"scoreBar"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"h-4 rounded-full transition-all duration-500"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"width:0%"</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">p</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"varianceText"</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"text-center text-sm text-gray-500"</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">p</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">script</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">"module"</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    import </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">blurMeter</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">}</span><span style="color: #D4D4D4"> from './js/blur-meter.js';</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">    const uploader      = document.getElementById('uploader');</span></span>
<span class="line"><span style="color: #D4D4D4">    const preview       = document.getElementById('preview');</span></span>
<span class="line"><span style="color: #D4D4D4">    const previewWrap   = document.getElementById('previewWrapper');</span></span>
<span class="line"><span style="color: #D4D4D4">    const scoreText     = document.getElementById('scoreText');</span></span>
<span class="line"><span style="color: #D4D4D4">    const varianceText  = document.getElementById('varianceText');</span></span>
<span class="line"><span style="color: #D4D4D4">    const scoreBar      = document.getElementById('scoreBar');</span></span>
<span class="line"><span style="color: #D4D4D4">    const resultBlock   = document.getElementById('result');</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">    const scoreToColor = score =&gt; </span><span style="color: #569CD6">{</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">) / </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">r</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">220</span><span style="color: #D4D4D4"> + (</span><span style="color: #B5CEA8">22</span><span style="color: #D4D4D4">  - </span><span style="color: #B5CEA8">220</span><span style="color: #D4D4D4">) * </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">g</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">( </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4"> + (</span><span style="color: #B5CEA8">163</span><span style="color: #D4D4D4"> -  </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4">) * </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">b</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">( </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4"> + ( </span><span style="color: #B5CEA8">74</span><span style="color: #D4D4D4"> -  </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4">) * </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">return</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">`rgb(</span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">r</span><span style="color: #569CD6">}</span><span style="color: #CE9178">,</span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">g</span><span style="color: #569CD6">}</span><span style="color: #CE9178">,</span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">b</span><span style="color: #569CD6">}</span><span style="color: #CE9178">)`</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">}</span><span style="color: #D4D4D4">;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">    uploader.addEventListener('change', async e =&gt; </span><span style="color: #569CD6">{</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">file</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">e</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">target</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">files</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">];</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #DCDCAA">if</span><span style="color: #D4D4D4"> (!</span><span style="color: #9CDCFE">file</span><span style="color: #D4D4D4">) </span><span style="color: #9CDCFE">return</span><span style="color: #D4D4D4">;</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4"> = </span><span style="color: #4FC1FF">URL</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">createObjectURL</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">file</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">preview</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">src</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">previewWrap</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">classList</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">remove</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">'hidden'</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Promise</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">res</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">preview</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">onload</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">res</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> { </span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4"> } = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">blurMeter</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">preview</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">scoreText</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">textContent</span><span style="color: #D4D4D4">    = </span><span style="color: #CE9178">`Sharpness Score: </span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">score</span><span style="color: #569CD6">}</span><span style="color: #CE9178">/10`</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">varianceText</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">textContent</span><span style="color: #D4D4D4"> = </span><span style="color: #CE9178">`Laplacian variance: </span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">toFixed</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">)</span><span style="color: #569CD6">}</span><span style="color: #CE9178">`</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">percent</span><span style="color: #D4D4D4">            = ((</span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">) / </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">) * </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">scoreBar</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">width</span><span style="color: #D4D4D4">     = </span><span style="color: #9CDCFE">percent</span><span style="color: #D4D4D4"> + </span><span style="color: #CE9178">'%'</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">scoreBar</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">backgroundColor</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">scoreToColor</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">resultBlock</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">classList</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">remove</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">'hidden'</span><span style="color: #D4D4D4">);</span></span>
<span class="line" />
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #4FC1FF">URL</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">revokeObjectURL</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">}</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">script</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">body</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">html</span><span style="color: #808080">&gt;</span></span></code></pre></div>

<h2 class="wp-block-heading">Functional testing</h2>

<p class="wp-block-paragraph">We tested the function on three different types of image&#8230;</p>

<h3 class="wp-block-heading">Completely out of focus</h3>

<figure class="wp-block-image size-full"><picture><source srcset="https://renor.it/wp-content/uploads/2025/06/image-2.webp 550w, https://renor.it/wp-content/uploads/2025/06/image-2-238x300.webp 238w" sizes="auto, (max-width: 550px) 100vw, 550px" type="image/webp" /><img loading="lazy" decoding="async" width="550" height="692" src="https://renor.it/wp-content/uploads/2025/06/image-2.webp" alt="" class="wp-image-858" srcset="https://renor.it/wp-content/uploads/2025/06/image-2.webp 550w, https://renor.it/wp-content/uploads/2025/06/image-2-238x300.webp 238w" sizes="auto, (max-width: 550px) 100vw, 550px" /></picture></figure>

<h3 class="wp-block-heading">Moderately blurred</h3>

<figure class="wp-block-image size-full"><picture><source srcset="https://renor.it/wp-content/uploads/2025/06/image-3.webp 551w, https://renor.it/wp-content/uploads/2025/06/image-3-240x300.webp 240w" sizes="auto, (max-width: 551px) 100vw, 551px" type="image/webp" /><img loading="lazy" decoding="async" width="551" height="690" src="https://renor.it/wp-content/uploads/2025/06/image-3.webp" alt="" class="wp-image-860" srcset="https://renor.it/wp-content/uploads/2025/06/image-3.webp 551w, https://renor.it/wp-content/uploads/2025/06/image-3-240x300.webp 240w" sizes="auto, (max-width: 551px) 100vw, 551px" /></picture></figure>

<h3 class="wp-block-heading">Sharp</h3>

<figure class="wp-block-image size-full"><picture><source srcset="https://renor.it/wp-content/uploads/2025/06/image-4.webp 559w, https://renor.it/wp-content/uploads/2025/06/image-4-242x300.webp 242w" sizes="auto, (max-width: 559px) 100vw, 559px" type="image/webp" /><img loading="lazy" decoding="async" width="559" height="692" src="https://renor.it/wp-content/uploads/2025/06/image-4.webp" alt="" class="wp-image-862" srcset="https://renor.it/wp-content/uploads/2025/06/image-4.webp 559w, https://renor.it/wp-content/uploads/2025/06/image-4-242x300.webp 242w" sizes="auto, (max-width: 559px) 100vw, 559px" /></picture></figure>

<h2 class="wp-block-heading">Conclusion</h2>

<p class="wp-block-paragraph">The Laplacian variance proves to be a simple but extremely powerful and effective tool for assessing the sharpness of an image in real-time client-side contexts. Its strength lies in its computational speed, absence of external dependencies and consistency with human visual perception.   </p>

<p class="wp-block-paragraph">In our use case, applied to the CeliachIA App, this metric allowed us to anticipate quality control directly on the user&#8217;s device, avoiding unnecessary costs of cloud invocations when images are not suitable for OCR analysis.  </p>

<p class="wp-block-paragraph">The pipeline built with JavaScript and Canvas API, coupled with a simple Web interface developed with Tailwind, is a concredo example of how mathematical concepts and engineering tools can come together in a robust, cost-effective, and user-friendly solution.  </p>

<p class="wp-block-paragraph">Ultimately, having an automated sharpness scoring system is not just a technical quirk, but an essential component of ensuring quality, efficiency, and sustainability in modern image analysis pipelines.  </p>

<p class="wp-block-paragraph">You can download this tool from my GitHub account at the link: <a href="https://github.com/thesimon82/Laplacian-Blur-Detector/">https://github.com/thesimon82/Laplacian-Blur-Detector/</a></p>

<p class="wp-block-paragraph">[starbox]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/evaluation-of-the-level-of-blur-by-laplacian-variance/">Evaluation of the level of Blur by Laplacian Variance</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>“It takes AI!” &#8211; When an if() would suffice.</title>
		<link>https://renor.it/en/blog/artificial-intelligence-algorithms/it-takes-ai-when-an-if-would-suffice/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 09 Jun 2025 18:14:25 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[AI costs]]></category>
		<category><![CDATA[AI washing]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[backend development]]></category>
		<category><![CDATA[buzzword]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[design sobriety]]></category>
		<category><![CDATA[deterministic algorithms]]></category>
		<category><![CDATA[efficient scheduling]]></category>
		<category><![CDATA[emerging technologies]]></category>
		<category><![CDATA[engineering common sense]]></category>
		<category><![CDATA[fashion technology]]></category>
		<category><![CDATA[GPT]]></category>
		<category><![CDATA[if statement]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[neural networks]]></category>
		<category><![CDATA[overengineering]]></category>
		<category><![CDATA[PDF automation]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[software engineering ethics]]></category>
		<category><![CDATA[startup tech]]></category>
		<category><![CDATA[technical solutions]]></category>
		<category><![CDATA[Technology innovation]]></category>
		<guid isPermaLink="false">https://renor.it/it-takes-ai-when-an-if-would-suffice/</guid>

					<description><![CDATA[<p>The era of AI washing Artificial intelligence is, without a shadow of a doubt, one of the most important technological developments and “discoveries” of our time. I use the term “breakthroughs” in quotation marks because in fact, the theory behind AI dates all the way back to 1956, the year of the famous Dartmouth conference [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/it-takes-ai-when-an-if-would-suffice/">“It takes AI!” &#8211; When an if() would suffice.</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">The era of AI washing</h2>

<p class="wp-block-paragraph">Artificial intelligence is, without a shadow of a doubt, one of the most important technological developments and “discoveries” of our time. I use the term “breakthroughs” in quotation marks because in fact, the theory behind AI dates all the way back to 1956, the year of the famous Dartmouth conference that sanctioned its official birth.   <br />Yet only in recent years has AI burst into the consumer and managerial universe, becoming a magic word good for every context: marketing, products, investor slides, company reports, etc.  </p>

<p class="wp-block-paragraph">The point is, if yesterday the fashion was the iPhone, today the fashion is artificial intelligence. Everyone wants to insert it everywhere, even where there is no need to integrate it. Sometimes, in fact, it is not only useless: it is less efficient, more fragile and more expensive to maintain than a classical finite-state algorithm. But it matters little: the important thing is to say that AI is there.   </p>

<p class="wp-block-paragraph">To better explain what I mean, I want to start with a glaring and absolutely real example.  </p>

<p class="wp-block-paragraph"><strong>AI? No, just a while is enough: the case of the intelligent PDF </strong></p>

<p class="wp-block-paragraph">A short time ago for a staffing company we have as a client, I was asked to develop something to help them send all the CUs. Speaking of thousands of employees you can imagine the time it would have taken from the poor administrative workers to manually unpack a PDF containing all the CUs of all the employees, and send them one by one manually.   </p>

<p class="wp-block-paragraph">Let us then imagine that we have a textual PDF, containing thousands of Single Certifications, of each employee. Thousands of multiple documents from consecutive users. Each user has his CU that can have 8, 10, 12 pages and we want to divide it into as many PDFs as there are employees.    </p>

<p class="wp-block-paragraph">What would a developer do?<br />First it would open the file to be split, analyze it, and notice that the first page of each user&#8217;s CU contains the tax code in the header. Good: there is a pattern! <br />What do you think then?</p>

<p class="wp-block-paragraph"><em>“Great! I write a script with a while that loops each page of the document starting from the first to the last, inside the loop I insert a regex that looks for a tax code, I validate it to make sure that what it fished for me is indeed a tax code and if the validation is successful, I mark that page as the start of a new CU of the employee. Continuing to process the other pages, as soon as I find another one, I save the whole previous block in a new PDF and send it as an attachment to an email extracting the employee&#8217;s data from the DB using as a search parameter just the tax code that I have in my nice variable and continue like that to the end.”  </em></p>

<p class="wp-block-paragraph">Elegant solution. Linear. Readable. Reliable and above all very fast!   <br />No AI. Only structured logic, deterministic programming, and pattern analysis.   </p>

<p class="wp-block-paragraph">Yet they wanted AI: “But can&#8217;t we use AI to automatically identify where each document starts?”</p>

<p class="wp-block-paragraph">Of course you can use AI, but using AI to figure out from which page to which page a CU starts and ends is like equipping yourself with a laser cannon to kill an ant. Also, AI has very long inference times, compared to the deterministic algorithm that processes huge masses of data in seconds. </p>

<h2 class="wp-block-heading">But what about the costs?</h2>

<p class="wp-block-paragraph">Of course! There are also costs! <br />Processing a document with thousands of employee CUs and tens of thousands of pages in addition to being time-consuming has costs that can be anything but insignificant. Depending on the model, one could spend even more than 500 euros to process tens of thousands of PDF pages.   </p>

<h2 class="wp-block-heading">Determinism vs. AI: two approaches compared </h2>

<p class="wp-block-paragraph">Once it is clear that in our PDF example the simplest and most effective solution is deterministic, it is worth reflecting more generally on when it makes sense to use a logical, predictable approach and when it may make sense to introduce an artificial intelligence layer.  </p>

<h3 class="wp-block-heading">The deterministic approach</h3>

<p class="wp-block-paragraph"><strong>Logical, transparent, traceable</strong></p>

<p class="wp-block-paragraph">A deterministic algorithm is composed of explicit rules and predictable behavior. For every known input, the output is guaranteed and replicable. It does not learn, but does exactly what you tell it to do.    </p>

<p class="wp-block-paragraph">In the case of our PDF, the structure is clear because we have the fixed pattern of the tax code, variability is practically zero, and the target is logically definable. In these cases the deterministic approach has enormous advantages: it has a lot of computational efficiency and can therefore run successfully even on devices with minimal resources. It is reliable, easily testable, and can be debugged immediately. The whole flow is understandable even by a team not experienced in Machine Learning. And that is why going beyond this solution <strong>because we want AI</strong> is not only unwarranted but also counterproductive.      </p>

<h3 class="wp-block-heading">The AI-driven approach</h3>

<p class="wp-block-paragraph"><strong>Flexible but poorly predictable, expensive, and not always justifiable.  </strong></p>

<p class="wp-block-paragraph">When we talk about AI we often mean systems capable of learning from examples (machine learning), generalizing patterns even in not perfectly defined contexts, handling ambiguity and noise in data. All of this is useful if and only if the data do not follow rigid patterns or patterns not known a priori, the context is chaotic, e.g., OCR on photos taken from smartphones that have unpredictable variability in quality, or lastly, explicit logic fails because the edge cases are infinite or otherwise unpredictable.   </p>

<p class="wp-block-paragraph">In our PDF example, there is no ambiguity, no noise: using a neural network to identify the tax code is wasteful, both technically and economically.  </p>

<p class="wp-block-paragraph">All this, however, does not stop certain companies, driven more by fashion than engineering, from coming up with solutions like, &#8220;let&#8217;s train an NLP model to recognize headers or let&#8217;s use GPT to segment documents, or let&#8217;s use a supervised classifier to figure out whether a document is the beginning or not&#8230; all to&#8230; <strong>Do what a preg_match()</strong> solves in one line of code.  </p>

<p class="wp-block-paragraph">Let us get our feet back on the ground and remember that AI for when impressive is only a tool. There is no such thing or at any rate, at least for a developer, there should be no war between deterministic approach and AI. They are both tools&#8230; But engineering logic teaches us to choose <strong>the simplest, most effective, and most justified tool for the problem it needs to solve</strong>. AI makes sense where determinism does not reach: computer vision on fuzzy images, speech recognition, predictions based on complex time series, deep semantic analysis. But where there is a rule, a predictable structure, a valid logic, AI is not only useless: it is noise, complication and cost.       </p>

<h2 class="wp-block-heading">Intelligence is not artificial, it is by design  </h2>

<p class="wp-block-paragraph">Artificial intelligence is an extraordinary tool, but like all powerful tools, it must be wielded judiciously. It is not a magic wand to wave over every problem, nor is it a key to slip into pitches to impress investors.   </p>

<p class="wp-block-paragraph">There is a fundamental difference between <strong>doing innovation</strong> and <strong>pretending innovation</strong>. Today, too many solutions are thought of starting with the tool and not the problem.   <br />The result is over-engineered systems that are expensive, fragile, often also unresponsive and ultimately useless.  </p>

<p class="wp-block-paragraph">Excuse me so much, but if you go into a company to solve problems for it and make it technologically efficient, the first thing you do is what? See where you can apply Artificial Intelligence? Or understand where the data comes from, how it moves, study how the company works, identify machinic processes that can be automated, and then propose solutions based on the problems found?  </p>

<p class="wp-block-paragraph">I would say with my eyes closed the second one!</p>

<p class="wp-block-paragraph">In the real world, good engineering is that which solves the problem in the simplest, most elegant and sustainable way possible. Even if it doesn&#8217;t make the news. Even if it doesn&#8217;t say AI-powered.  </p>

<p class="wp-block-paragraph">The future of computing will not be dominated by those who stick neural models everywhere, but by those who know how to choose when they really need to. By those who have the courage to say, <em>“No, an if() is enough here.”</em> </p>

<p class="wp-block-paragraph">Perhaps it is from this technical sobriety that a new idea of competence can be reborn: one that is measured not in buzzwords but in design clarity, efficiency, and accountability.  </p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/it-takes-ai-when-an-if-would-suffice/">“It takes AI!” &#8211; When an if() would suffice.</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sexy according to algorithm: the new aesthetic created by those who watch us</title>
		<link>https://renor.it/en/blog/artificial-intelligence-algorithms/sexy-according-to-algorithm-the-new-aesthetic-created-by-those-who-watch-us/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Fri, 06 Jun 2025 13:07:40 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence & Algorithms]]></category>
		<category><![CDATA[aesthetic models]]></category>
		<category><![CDATA[aesthetics]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI image]]></category>
		<category><![CDATA[AI prompt]]></category>
		<category><![CDATA[AI-generated models]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[attraction]]></category>
		<category><![CDATA[beauty]]></category>
		<category><![CDATA[collective imagination]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Deep Learning]]></category>
		<category><![CDATA[desire]]></category>
		<category><![CDATA[digital aesthetics]]></category>
		<category><![CDATA[digital pgotography]]></category>
		<category><![CDATA[femininity]]></category>
		<category><![CDATA[generative art]]></category>
		<category><![CDATA[Monica Bellucci]]></category>
		<category><![CDATA[neural networks]]></category>
		<category><![CDATA[objectivity]]></category>
		<category><![CDATA[sex appeal]]></category>
		<category><![CDATA[sexy]]></category>
		<category><![CDATA[society and beauty]]></category>
		<category><![CDATA[subjectivity]]></category>
		<category><![CDATA[symmetry]]></category>
		<category><![CDATA[visual culture]]></category>
		<category><![CDATA[woman generated by AI]]></category>
		<guid isPermaLink="false">https://renor.it/sexy-according-to-algorithm-the-new-aesthetic-created-by-those-who-watch-us/</guid>

					<description><![CDATA[<p>This woman does not exist. Yet you can&#8217;t stop looking at her. This will be a non-technical article for those who are approaching or want to know more about artificial intelligence. Within a few years, AI has learned to generate images of women that are so realistic, seductive and perfectly composed that they can be [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/sexy-according-to-algorithm-the-new-aesthetic-created-by-those-who-watch-us/">Sexy according to algorithm: the new aesthetic created by those who watch us</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">This woman does not exist. Yet you can&#8217;t stop looking at her.   </h2>

<p class="wp-block-paragraph">This will be a non-technical article for those who are approaching or want to know more about artificial intelligence. Within a few years, AI has learned to generate images of women that are so realistic, seductive and perfectly composed that they can be mistaken for real models. But how does a machine, devoid of emotions, desires or sensory experience, <em>understand</em> what it means to “be sexy” to the point of actually generating an image that evokes this status?  </p>

<h2 class="wp-block-heading">The answer is in the data</h2>

<p class="wp-block-paragraph">AI does not wish to &#8230; It calculates; and to do so, it has seen millions of images, from Renaissance portraits to selfies on Instagram, from early Playboy covers to fashion photographs. Every curve, every pose, every look, has been broken down into vectors, metrics, weights and statistical correlations. When you ask the AI to create a photo of a sexy woman, the algorithm doesn&#8217;t invent anything, it merely reassembles the global average desire.     </p>

<p class="wp-block-paragraph">The picture we get is therefore an average of traits, physical proportions, breast size, makeup, etc. that fall within the average desire of people in the world.  </p>

<p class="wp-block-paragraph">This obviously raises a philological issue&#8230;</p>

<h2 class="wp-block-heading">Who decides what is sexy and what is not?</h2>

<p class="wp-block-paragraph"><em>“<strong>Beauty is subjective</strong>,”</em> how many of you have never heard this phrase? It is said so many times that it is now considered to be self-evident, true no matter what.   </p>

<p class="wp-block-paragraph">I disagree! Because if beauty were truly subjective, then we would also have to accept the idea that a person universally recognized as beautiful could be called ugly. But no. There are limits, even to subjectivity.   </p>

<p class="wp-block-paragraph">We take our Monica Bellucci at the height of her beauty.</p>

<figure class="wp-block-image size-full"><picture><source srcset="https://renor.it/wp-content/uploads/2025/06/image.webp 674w, https://renor.it/wp-content/uploads/2025/06/image-202x300.webp 202w" sizes="auto, (max-width: 674px) 100vw, 674px" type="image/webp" /><img loading="lazy" decoding="async" width="674" height="1000" src="https://renor.it/wp-content/uploads/2025/06/image.webp" alt="Monica Bellucci" class="wp-image-725" style="aspect-ratio:16/9;object-fit:contain" srcset="https://renor.it/wp-content/uploads/2025/06/image.webp 674w, https://renor.it/wp-content/uploads/2025/06/image-202x300.webp 202w" sizes="auto, (max-width: 674px) 100vw, 674px" /></picture></figure>

<p class="wp-block-paragraph">If beauty were subjective this would mean that there would have to be someone in the world capable of believing that Bellucci could be given the appellation “Ugly.”  </p>

<p class="wp-block-paragraph">I understand that there may be people who, whether out of personal preference or dislike, may <strong>prefer</strong> other types of beauty. There are those who may prefer a blonde, there are those who may prefer smaller or even larger breasts, but to call Bellucci as “Ugly” may only be a sign of envy (if pronounced by females) or dislike (if pronounced by males) but in reality both know that Monica Bellucci is anything but ugly.   </p>

<p class="wp-block-paragraph">By this reasoning I derive that the subjectivity of aesthetics exists with certain limitations. We brought the example of Bellucci, but we could have talked about Angelina Jolie, Cindy Crawford, Naomi Campbell, Charlize Theron, as for other male aesthetic reference points such as Gabriel Garko, Paul Newman, Alain Delon, Henry Cavill, etc. etc. True aesthetics is in my opinion something objective: the “beautiful” is beautiful by definition.   </p>

<p class="wp-block-paragraph">Then there is also a statistical reason&#8230;. If 99% of the world&#8217;s population identifies aesthetic sense in a person, then that person can be said to retain objective <strong>aesthetic characteristics</strong>.   </p>

<h2 class="wp-block-heading">Beauty according to AI</h2>

<p class="wp-block-paragraph">Who, then, decides what is sexy when it is a machine watching us that creates it? We are the ones who decide it. We are the ones who educate the algorithm, and the AI merely returns a mirror to us: it shows us the traits of what is statistically considered sexiest by most of the world. An AI-generated woman is a collective portrait of our unconscious taste.     </p>

<p class="wp-block-paragraph">Beauty, they used to say, is in the eye of the beholder. But today those eyes are digital and learn fast! </p>

<p class="wp-block-paragraph">Sexy According to Algorithm is a journey into a new aesthetic: made of prompts, neural networks, and desires that we can no longer distinguish from reality.  </p>

<p class="wp-block-paragraph">How about you? Do you really think beauty is subjective? Or has artificial intelligence revealed something we don&#8217;t want to admit?  </p>

<p class="wp-block-paragraph">Because this woman does not exist, but she still seduces us.</p>

<p class="wp-block-paragraph">[starbox]</p>
<p>L'articolo <a href="https://renor.it/en/blog/artificial-intelligence-algorithms/sexy-according-to-algorithm-the-new-aesthetic-created-by-those-who-watch-us/">Sexy according to algorithm: the new aesthetic created by those who watch us</a> proviene da <a href="https://renor.it/en/">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
