ECS (Part 1/3) - Introduction to Data-Oriented Design.
Some small experiments to verify CPU Cache problems, SOA vs AOS and some other problems from OOP approach.
Then basic things about DOD.
Game Programming 02 - Component-Based Entity SystemsNick Pruehs
The document discusses component-based entity systems for building game object models. It outlines some drawbacks of inheritance-based approaches, such as deep class hierarchies leading to call order issues. It then introduces an aggregation-based approach using entities, components, and systems. Entities are simple IDs, with all data and logic contained in independent, reusable components. Systems operate on components to implement game functionality without coupling. This approach has advantages like easy extensibility and multi-threading. Blueprints and attribute tables are discussed as ways to configure entities using components and data at runtime.
Entity-Component-System (ECS) is a distributed and compositional architectural design pattern that is mostly used in game development. Elixir is a dynamic, functional language built on top of the Erlang VM designed for building scalable and maintainable applications. In this talk, discover how we can use both ECS and Elixir in a novel approach to structure our programs beyond the traditional OO/inheritance paradigm.
Scene Graphs & Component Based Game EnginesBryan Duggan
A presentation I made at the Fermented Poly meetup in Dublin about Scene Graphs & Component Based Game Engines. Lots of examples from my own game engine BGE - where almost everything is a component. Get the code and the course notes here: https://github.com/skooter500/BGE
The document discusses SPU shaders, which are fragments of code used in larger systems on the SPU. SPU shaders are like scripts or callbacks and are used to customize system data and provide feedback outside the current system. They provide advantages like improved performance by offloading work to the SPU and allowing new functionality without modifying core systems. Implementing SPU shaders involves identifying where in systems to inject shader code fragments and setting up common functions and configurations to manage the shaders.
Best practices: Async vs. coroutines - Unite Copenhagen 2019Unity Technologies
Before async was introduced in Unity 2017, asynchronous routines were implemented using coroutines and/or callbacks. This video covers the benefits of async over coroutines. You'll see how one example problem – building an asynchronous prompt popup – can be solved using async vs coroutines.
Speaker:
Johannes Ahvenniemi - Seriously Digital Entertainment
Watch the session here: https://youtu.be/7eKi6NKri6I
Game engines have long been in the forefront of taking advantage of the ever
increasing parallel compute power of both CPUs and GPUs. This talk is about how the
parallel compute is utilized in practice on multiple platforms today in the Frostbite game
engine and how we think the parallel programming models, hardware and software in
the industry should look like in the next 5 years to help us make the best games possible.
Game Programming 07 - Procedural Content GenerationNick Pruehs
Chapter 7 of the lecture Game Programming taught at HAW Hamburg.
Introduction to procedural content generation and its implication for the game design.
State-Based Scripting in Uncharted 2: Among ThievesNaughty Dog
This document discusses state-based scripting in games. It provides an introduction and history of state scripts, including their use on the Uncharted series. The author discusses why scripts are used in games and characteristics of scripting languages. Extending game object models through scripting and Naughty Dog's approach are also covered.
Unity - Internals: memory and performanceCodemotion
by Marco Trivellato - In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part will cover implementation details and their memory vs cycles tradeoffs in both Unity4 and the upcoming Unity5.
This article contains information about performance optimization of Unity3D games for android. Different solutions provided both for CPU and GPU. Also here you can find methodology which will help you to detect performance problems, analyze them and perform appropriate optimization.
Optimization in Unity: simple tips for developing with "no surprises" / Anton...DevGAMM Conference
This document provides optimization tips for Unity projects. It begins by explaining the problems caused by poor optimization like low frame rates and performance issues. It then provides general optimization tips like optimizing only what is needed and checking optimization results. The rest of the document details optimization techniques for various areas like the engine, code, architecture, physics, sound, UI, textures, meshes, lighting, animation, shaders, terrain and provides useful links for further information.
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
With further advancement in the current console cycle, new tricks are being learned to squeeze the maximum performance out of the hardware. This talk will present how the compute power of the console and PC GPUs can be used to improve the triangle throughput beyond the limits of the fixed function hardware. The discussed method shows a way to perform efficient "just-in-time" optimization of geometry, and opens the way for per-primitive filtering kernels and procedural geometry processing.
Takeaway:
Attendees will learn how to preprocess geometry on-the-fly per frame to improve rendering performance and efficiency.
Intended Audience:
This presentation is targeting seasoned graphics developers. Experience with DirectX 12 and GCN is recommended, but not required.
The past few years have seen a sharp increase in the complexity of rendering algorithms used in modern game engines. Large portions of the rendering work are increasingly written in GPU computing languages, and decoupled from the conventional “one-to-one” pipeline stages for which shading languages were designed. Following Tim Foley’s talk from SIGGRAPH 2016’s Open Problems course on shading language directions, we explore example rendering algorithms that we want to express in a composable, reusable and performance-portable manner. We argue that a few key constraints in GPU computing languages inhibit these goals, some of which are rooted in hardware limitations. We conclude with a call to action detailing specific improvements we would like to see in GPU compute languages, as well as the underlying graphics hardware.
This talk was originally given at SIGGRAPH 2017 by Andrew Lauritzen (EA SEED) for the Open Problems in Real-Time Rendering course.
Built for performance: the UIElements Renderer – Unite Copenhagen 2019Unity Technologies
In this technical talk, we will describe the science behind the UIElements rendering system, built from the ground up for retained-mode UI. It uses every CPU/GPU trick in the book to render thousands of different elements onscreen in a fraction of a millisecond, all on one thread. This powerful UI performance and optimization tool also supports complex features like clipping and vector graphics, even on low-end devices.
Speaker: Wessam Bahnassi – Unity
Watch the session on YouTube: https://youtu.be/zeCdVmfGUN0
The document provides guidance on optimizing games for mobile devices using Unity. It emphasizes the importance of setting a target device, testing and measuring performance on the actual device, understanding platform-specific optimizations, and using profiling tools. Key steps include profiling CPU, GPU, and memory usage; addressing overdraw, batching, and shader complexity; and minimizing loading time, unnecessary calculations, and memory usage. The goal is to identify and fix the most impactful performance issues for a given target device.
This document discusses CPU cache and its impact on performance. It begins with questions about matrix traversal order and container types. It then defines cache as small, fast memory that stores recently accessed memory. The CPU needs cache because main memory is much slower. Cache works by checking if requested data is present (a hit) or needs loading (a miss). Writing data either backs or flushes to main memory. Adjacent data is often accessed, so cache lines of 64 bytes are used. The document recommends structures like vector for better cache utilization and avoiding false sharing.
introduction to data structures and typesankita946617
A ppt on primitive and non primitive data structures, abstract data types , performance analysis(time and space complexity) using asymptotic notations-(Big O, Theta, Omega), introduction to arrays and their memory representation, types of arrays- single dimension, two dimension, multi-dimensions, basic operations on arrays- insertion, deletion, searching, sorting, sparse matrix and its representation, applications of array
Game engines have long been in the forefront of taking advantage of the ever
increasing parallel compute power of both CPUs and GPUs. This talk is about how the
parallel compute is utilized in practice on multiple platforms today in the Frostbite game
engine and how we think the parallel programming models, hardware and software in
the industry should look like in the next 5 years to help us make the best games possible.
Game Programming 07 - Procedural Content GenerationNick Pruehs
Chapter 7 of the lecture Game Programming taught at HAW Hamburg.
Introduction to procedural content generation and its implication for the game design.
State-Based Scripting in Uncharted 2: Among ThievesNaughty Dog
This document discusses state-based scripting in games. It provides an introduction and history of state scripts, including their use on the Uncharted series. The author discusses why scripts are used in games and characteristics of scripting languages. Extending game object models through scripting and Naughty Dog's approach are also covered.
Unity - Internals: memory and performanceCodemotion
by Marco Trivellato - In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part will cover implementation details and their memory vs cycles tradeoffs in both Unity4 and the upcoming Unity5.
This article contains information about performance optimization of Unity3D games for android. Different solutions provided both for CPU and GPU. Also here you can find methodology which will help you to detect performance problems, analyze them and perform appropriate optimization.
Optimization in Unity: simple tips for developing with "no surprises" / Anton...DevGAMM Conference
This document provides optimization tips for Unity projects. It begins by explaining the problems caused by poor optimization like low frame rates and performance issues. It then provides general optimization tips like optimizing only what is needed and checking optimization results. The rest of the document details optimization techniques for various areas like the engine, code, architecture, physics, sound, UI, textures, meshes, lighting, animation, shaders, terrain and provides useful links for further information.
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
With further advancement in the current console cycle, new tricks are being learned to squeeze the maximum performance out of the hardware. This talk will present how the compute power of the console and PC GPUs can be used to improve the triangle throughput beyond the limits of the fixed function hardware. The discussed method shows a way to perform efficient "just-in-time" optimization of geometry, and opens the way for per-primitive filtering kernels and procedural geometry processing.
Takeaway:
Attendees will learn how to preprocess geometry on-the-fly per frame to improve rendering performance and efficiency.
Intended Audience:
This presentation is targeting seasoned graphics developers. Experience with DirectX 12 and GCN is recommended, but not required.
The past few years have seen a sharp increase in the complexity of rendering algorithms used in modern game engines. Large portions of the rendering work are increasingly written in GPU computing languages, and decoupled from the conventional “one-to-one” pipeline stages for which shading languages were designed. Following Tim Foley’s talk from SIGGRAPH 2016’s Open Problems course on shading language directions, we explore example rendering algorithms that we want to express in a composable, reusable and performance-portable manner. We argue that a few key constraints in GPU computing languages inhibit these goals, some of which are rooted in hardware limitations. We conclude with a call to action detailing specific improvements we would like to see in GPU compute languages, as well as the underlying graphics hardware.
This talk was originally given at SIGGRAPH 2017 by Andrew Lauritzen (EA SEED) for the Open Problems in Real-Time Rendering course.
Built for performance: the UIElements Renderer – Unite Copenhagen 2019Unity Technologies
In this technical talk, we will describe the science behind the UIElements rendering system, built from the ground up for retained-mode UI. It uses every CPU/GPU trick in the book to render thousands of different elements onscreen in a fraction of a millisecond, all on one thread. This powerful UI performance and optimization tool also supports complex features like clipping and vector graphics, even on low-end devices.
Speaker: Wessam Bahnassi – Unity
Watch the session on YouTube: https://youtu.be/zeCdVmfGUN0
The document provides guidance on optimizing games for mobile devices using Unity. It emphasizes the importance of setting a target device, testing and measuring performance on the actual device, understanding platform-specific optimizations, and using profiling tools. Key steps include profiling CPU, GPU, and memory usage; addressing overdraw, batching, and shader complexity; and minimizing loading time, unnecessary calculations, and memory usage. The goal is to identify and fix the most impactful performance issues for a given target device.
This document discusses CPU cache and its impact on performance. It begins with questions about matrix traversal order and container types. It then defines cache as small, fast memory that stores recently accessed memory. The CPU needs cache because main memory is much slower. Cache works by checking if requested data is present (a hit) or needs loading (a miss). Writing data either backs or flushes to main memory. Adjacent data is often accessed, so cache lines of 64 bytes are used. The document recommends structures like vector for better cache utilization and avoiding false sharing.
introduction to data structures and typesankita946617
A ppt on primitive and non primitive data structures, abstract data types , performance analysis(time and space complexity) using asymptotic notations-(Big O, Theta, Omega), introduction to arrays and their memory representation, types of arrays- single dimension, two dimension, multi-dimensions, basic operations on arrays- insertion, deletion, searching, sorting, sparse matrix and its representation, applications of array
"Optimization of a .NET application- is it simple ! / ?", Yevhen TatarynovFwdays
Optimization of .NET application seems complex and tied full task, but don’t hurry up with conclusions. Let’s look on several cases from real projects.
For this we:
look under the hood of an application from a real project;
define the metric for optimization;
choose the necessary tools;
find bottlenecks /memory leaks and best practice to resolve them.
We'll improve the application step by step and we’ll what with simple analysis and simple best practice we can significantly reduce total resources usage.
Rainer Grimm, “Functional Programming in C++11”Platonov Sergey
C++ это мультипарадигменный язык, поэтому программист сам может выбирать и совмещать структурный, объектно-ориентированный, обобщенный и функциональный подходы. Функциональный аспект C++ особенно расширился стандартом C++11: лямбда-функции, variadic templates, std::function, std::bind. (язык доклада: английский).
This document provides an overview of advanced data structures and algorithm analysis taught by Dr. Sukhamay Kundu at Louisiana State University. It discusses the role of data structures in making computations faster by supporting efficient data access and storage. The document distinguishes between algorithms, which determine the computational steps and data access order, and data structures, which enable efficient reading and writing of data. It also describes different methods for measuring algorithm performance, such as theoretical time complexity analysis and empirical measurements. Examples are provided for instrumenting code to count operations. Overall, the document introduces fundamental concepts about algorithms and data structures.
This document discusses data structures and asymptotic analysis. It begins by defining key terminology related to data structures, such as abstract data types, algorithms, and implementations. It then covers asymptotic notations like Big-O, describing how they are used to analyze algorithms independently of implementation details. Examples are given of analyzing the runtime of linear search and binary search, showing that binary search has better asymptotic performance of O(log n) compared to linear search's O(n).
The document discusses four models of interaction between humans and machines: 1) Following pre-defined decision trees, 2) Search queries based on keyword intersections, 3) Neural networks using pattern recognition, and 4) "Neural-like" processing that treats data and functions as fused and stateful. It argues that today's methods like relational databases are brittle for natural language queries and that a neural-like approach may enable more flexible and precise answers by representing data and inputs in a neural-like way. The document also contains examples of Java code for integrating data and functions across different applications and systems.
This document provides an introduction to the CSE 326: Data Structures course. It discusses the following key points in 3 sentences or less:
The course will cover common data structures and algorithms, how to choose the appropriate data structure for different needs, and how to justify design decisions through formal reasoning. It aims to help students become better developers by understanding fundamental data structures and when to apply them. The document provides examples of stacks and queues to illustrate abstract data types, data structures, and their implementations in different programming languages.
This document provides an overview of a Data Structures course. The course will cover basic data structures and algorithms used in software development. Students will learn about common data structures like lists, stacks, and queues; analyze the runtime of algorithms; and practice implementing data structures. The goal is for students to understand which data structures are appropriate for different problems and be able to justify design decisions. Key concepts covered include abstract data types, asymptotic analysis to evaluate algorithms, and the tradeoffs involved in choosing different data structure implementations.
This document provides an introduction to the CSE 326: Data Structures course. It discusses the following key points in 3 sentences or less:
The course will cover common data structures and algorithms, how to choose the appropriate data structure for different needs, and how to justify design decisions through formal reasoning. It aims to help students become better developers by understanding fundamental data structures and when to apply them. The document provides examples of stacks and queues to illustrate abstract data types, data structures, and their implementations in different programming languages.
This document discusses third party patches for MySQL that provide quick wins and new features. It summarizes five such patches: 1) Slow query filtering which helps identify expensive queries, 2) Index statistics which helps determine unused indexes, 3) An InnoDB dictionary limit which constrains memory usage, 4) A global long query time setting, and 5) A "fix" for InnoDB group commit performance regressions in MySQL 5.0. The document encourages using third party patches to gain features and improvements not yet available in the MySQL core.
Algorithm Analysis
Computational Complexity
Introduction to Basic Data
Structures
Graph Theory
Graph Algorithms
Greedy Algorithms
Divide and Conquer
Dynamic Programming
Introduction to Linear Programming
Flow Network
How Database Convergence Impacts the Coming Decades of Data ManagementSingleStore
How Database Convergence Impacts the Coming Decades of Data Management by Nikita Shamgunov, CEO and co-founder of MemSQL.
Presented at NYC Database Month in October 2017. NYC Database Month is the largest database meetup in New York, featuring talks from leaders in the technology space. You can learn more at http://www.databasemonth.com.
This document provides an overview of basic Java syntax including:
- How to create, compile, and execute simple Java programs
- Using arrays, loops, if/else statements, and comparing strings
- Building one-dimensional and multi-dimensional arrays
- Common data structures like Vector and Hashtable
- Errors handling and the Collections Framework
This article covers the basics to advanced concepts of Data Structures and Algorithms (DSA) using C. It explains key data structures, essential algorithms, and time-space complexity in a clear, easy-to-understand way — perfect for beginners and those looking to improve their coding skills.
This document discusses algorithms for sorting and searching. It introduces algorithm analysis and why it is important to analyze algorithms to compare different solutions, predict performance, and set parameter values. It discusses analyzing running time by counting primitive operations as a function of input size. Common growth rates like linear, quadratic, and cubic functions are introduced. Big-O notation is explained as a way to classify algorithms by their worst-case running time. Several specific sorting algorithms are described, including bubble sort, insertion sort, merge sort, and quicksort. Their pseudocode and running times are analyzed. Graph traversal algorithms like depth-first search and breadth-first search are also introduced.
Almost everything you see on the screen is created by Shader. The only reason that you don't have to deal with shaders when beginning with game development is: the game engine or the graphic library handle it automatically for you to render objects in a default way. Sooner or later, you would want to control the shader yourself. And this series (Unity Shader Graph) is made for that purpose: Help you understand the shader.
In this presentation, we're gonna figure out what a shader is and do some experiments with a completed shader called [URP/Lit].
A research about an HTML5 game engine called Phaser, including reviews about tools, learning curve, build pipeline and quick comparisons to other engines.
Project link: https://github.com/DancingPhoenix88/phaser-features-test
The document discusses particle effects and the Unity Visual Effect Graph (VFX Graph) tool. It provides examples of making basic particle effects using techniques like burst, turbulence, and aging properties. It then compares VFX Graph to Unity's built-in Shuriken particle system, noting that VFX Graph allows for more particles, performance, and creative freedom through a node-based interface. Finally, it argues that VFX Graph and node-based tools are the future of visual effects authoring.
The document discusses contrast in design and provides examples of how to use contrast effectively. It defines contrast as the difference between elements and explains that contrast is important for emphasis and directing user attention. It then outlines seven methods for applying contrast: size, color, value, shape, position, movement, and texture. For each method, examples are given to illustrate high and low contrast scenarios. The document concludes by recommending combining different contrast methods and also using them for similarity in design.
The document discusses techniques for simpler user interface design, including using modal windows to display additional information without changing the overall page, hover controls that only appear when the user hovers their mouse, and context-based controls that adapt depending on what the user has selected. It provides examples of interfaces with and without these techniques, noting that simpler designs with fewer choices make decisions easier for users. Specific tips include using placeholders to guide users, icons instead of text for brevity, and expanding forms as needed rather than having a fixed structure. The overall goal is to reduce complexity through minimalism and adapting the interface based on user needs.
[UX Series] 3 - User behavior patterns and design principlesPhuong Hoang Vu
12 user behavior patterns from famous book "Design Interface", and 10 design principles which designer must know. These principles are based on user behavior patterns, so you can use them to design UX efficiently.
The document provides an introduction to UX and UI design. It defines UI as the visual elements and interface a user sees, while UX encompasses usability, aesthetics, and the overall user experience. The author is working on a game project and learning UX/UI design. They explain that good design requires both good UI and UX, and that UX can be improved through testing and research, even with limited design skills. The basic UX design process involves research, wireframing, mockups, and interactive prototypes. The document outlines several future topics to be covered.
This document discusses cross-platform mobile development. It defines cross-platform development as developing applications that can run on multiple platforms simultaneously. The document then explores different cross-platform approaches like web apps, hybrid apps, interpreted apps, cross-compiled apps, and generated apps. It provides details on how each approach works and when they are involved in the development process. The document also compares the different approaches based on factors like native access, performance, cost, and tools. It concludes that cross-platform options are not fully mature but can be good choices for prototypes, existing web apps, or as a shortcut to the market.
fennec fox optimization algorithm for optimal solutionshallal2
Imagine you have a group of fennec foxes searching for the best spot to find food (the optimal solution to a problem). Each fox represents a possible solution and carries a unique "strategy" (set of parameters) to find food. These strategies are organized in a table (matrix X), where each row is a fox, and each column is a parameter they adjust, like digging depth or speed.
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Cyntexa
At Dreamforce this year, Agentforce stole the spotlight—over 10,000 AI agents were spun up in just three days. But what exactly is Agentforce, and how can your business harness its power? In this on‑demand webinar, Shrey and Vishwajeet Srivastava pull back the curtain on Salesforce’s newest AI agent platform, showing you step‑by‑step how to design, deploy, and manage intelligent agents that automate complex workflows across sales, service, HR, and more.
Gone are the days of one‑size‑fits‑all chatbots. Agentforce gives you a no‑code Agent Builder, a robust Atlas reasoning engine, and an enterprise‑grade trust layer—so you can create AI assistants customized to your unique processes in minutes, not months. Whether you need an agent to triage support tickets, generate quotes, or orchestrate multi‑step approvals, this session arms you with the best practices and insider tips to get started fast.
What You’ll Learn
Agentforce Fundamentals
Agent Builder: Drag‑and‑drop canvas for designing agent conversations and actions.
Atlas Reasoning: How the AI brain ingests data, makes decisions, and calls external systems.
Trust Layer: Security, compliance, and audit trails built into every agent.
Agentforce vs. Copilot
Understand the differences: Copilot as an assistant embedded in apps; Agentforce as fully autonomous, customizable agents.
When to choose Agentforce for end‑to‑end process automation.
Industry Use Cases
Sales Ops: Auto‑generate proposals, update CRM records, and notify reps in real time.
Customer Service: Intelligent ticket routing, SLA monitoring, and automated resolution suggestions.
HR & IT: Employee onboarding bots, policy lookup agents, and automated ticket escalations.
Key Features & Capabilities
Pre‑built templates vs. custom agent workflows
Multi‑modal inputs: text, voice, and structured forms
Analytics dashboard for monitoring agent performance and ROI
Myth‑Busting
“AI agents require coding expertise”—debunked with live no‑code demos.
“Security risks are too high”—see how the Trust Layer enforces data governance.
Live Demo
Watch Shrey and Vishwajeet build an Agentforce bot that handles low‑stock alerts: it monitors inventory, creates purchase orders, and notifies procurement—all inside Salesforce.
Peek at upcoming Agentforce features and roadmap highlights.
Missed the live event? Stream the recording now or download the deck to access hands‑on tutorials, configuration checklists, and deployment templates.
🔗 Watch & Download: https://www.youtube.com/live/0HiEmUKT0wY
Mastering Testing in the Modern F&B Landscapemarketing943205
Dive into our presentation to explore the unique software testing challenges the Food and Beverage sector faces today. We’ll walk you through essential best practices for quality assurance and show you exactly how Qyrus, with our intelligent testing platform and innovative AlVerse, provides tailored solutions to help your F&B business master these challenges. Discover how you can ensure quality and innovate with confidence in this exciting digital era.
Viam product demo_ Deploying and scaling AI with hardware.pdfcamilalamoratta
Building AI-powered products that interact with the physical world often means navigating complex integration challenges, especially on resource-constrained devices.
You'll learn:
- How Viam's platform bridges the gap between AI, data, and physical devices
- A step-by-step walkthrough of computer vision running at the edge
- Practical approaches to common integration hurdles
- How teams are scaling hardware + software solutions together
Whether you're a developer, engineering manager, or product builder, this demo will show you a faster path to creating intelligent machines and systems.
Resources:
- Documentation: https://on.viam.com/docs
- Community: https://discord.com/invite/viam
- Hands-on: https://on.viam.com/codelabs
- Future Events: https://on.viam.com/updates-upcoming-events
- Request personalized demo: https://on.viam.com/request-demo
Canadian book publishing: Insights from the latest salary survey - Tech Forum...BookNet Canada
Join us for a presentation in partnership with the Association of Canadian Publishers (ACP) as they share results from the recently conducted Canadian Book Publishing Industry Salary Survey. This comprehensive survey provides key insights into average salaries across departments, roles, and demographic metrics. Members of ACP’s Diversity and Inclusion Committee will join us to unpack what the findings mean in the context of justice, equity, diversity, and inclusion in the industry.
Results of the 2024 Canadian Book Publishing Industry Salary Survey: https://publishers.ca/wp-content/uploads/2025/04/ACP_Salary_Survey_FINAL-2.pdf
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/canadian-book-publishing-insights-from-the-latest-salary-survey/
Presented by BookNet Canada and the Association of Canadian Publishers on May 1, 2025 with support from the Department of Canadian Heritage.
Config 2025 presentation recap covering both daysTrishAntoni1
Config 2025 What Made Config 2025 Special
Overflowing energy and creativity
Clear themes: accessibility, emotion, AI collaboration
A mix of tech innovation and raw human storytelling
(Background: a photo of the conference crowd or stage)
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?Lorenzo Miniero
Slides for my "RTP Over QUIC: An Interesting Opportunity Or Wasted Time?" presentation at the Kamailio World 2025 event.
They describe my efforts studying and prototyping QUIC and RTP Over QUIC (RoQ) in a new library called imquic, and some observations on what RoQ could be used for in the future, if anything.
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrus AI
Gyrus AI: AI/ML for Broadcasting & Streaming
Gyrus is a Vision Al company developing Neural Network Accelerators and ready to deploy AI/ML Models for Video Processing and Video Analytics.
Our Solutions:
Intelligent Media Search
Semantic & contextual search for faster, smarter content discovery.
In-Scene Ad Placement
AI-powered ad insertion to maximize monetization and user experience.
Video Anonymization
Automatically masks sensitive content to ensure privacy compliance.
Vision Analytics
Real-time object detection and engagement tracking.
Why Gyrus AI?
We help media companies streamline operations, enhance media discovery, and stay competitive in the rapidly evolving broadcasting & streaming landscape.
🚀 Ready to Transform Your Media Workflow?
🔗 Visit Us: https://gyrus.ai/
📅 Book a Demo: https://gyrus.ai/contact
📝 Read More: https://gyrus.ai/blog/
🔗 Follow Us:
LinkedIn - https://www.linkedin.com/company/gyrusai/
Twitter/X - https://twitter.com/GyrusAI
YouTube - https://www.youtube.com/channel/UCk2GzLj6xp0A6Wqix1GWSkw
Facebook - https://www.facebook.com/GyrusAI
Original presentation of Delhi Community Meetup with the following topics
▶️ Session 1: Introduction to UiPath Agents
- What are Agents in UiPath?
- Components of Agents
- Overview of the UiPath Agent Builder.
- Common use cases for Agentic automation.
▶️ Session 2: Building Your First UiPath Agent
- A quick walkthrough of Agent Builder, Agentic Orchestration, - - AI Trust Layer, Context Grounding
- Step-by-step demonstration of building your first Agent
▶️ Session 3: Healing Agents - Deep dive
- What are Healing Agents?
- How Healing Agents can improve automation stability by automatically detecting and fixing runtime issues
- How Healing Agents help reduce downtime, prevent failures, and ensure continuous execution of workflows
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Raffi Khatchadourian
Efficiency is essential to support responsiveness w.r.t. ever-growing datasets, especially for Deep Learning (DL) systems. DL frameworks have traditionally embraced deferred execution-style DL code—supporting symbolic, graph-based Deep Neural Network (DNN) computation. While scalable, such development is error-prone, non-intuitive, and difficult to debug. Consequently, more natural, imperative DL frameworks encouraging eager execution have emerged but at the expense of run-time performance. Though hybrid approaches aim for the “best of both worlds,” using them effectively requires subtle considerations to make code amenable to safe, accurate, and efficient graph execution—avoiding performance bottlenecks and semantically inequivalent results. We discuss the engineering aspects of a refactoring tool that automatically determines when it is safe and potentially advantageous to migrate imperative DL code to graph execution and vice-versa.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAll Things Open
Presented at All Things Open RTP Meetup
Presented by Brent Laster - President & Lead Trainer, Tech Skills Transformations LLC
Talk Title: AI 3-in-1: Agents, RAG, and Local Models
Abstract:
Learning and understanding AI concepts is satisfying and rewarding, but the fun part is learning how to work with AI yourself. In this presentation, author, trainer, and experienced technologist Brent Laster will help you do both! We’ll explain why and how to run AI models locally, the basic ideas of agents and RAG, and show how to assemble a simple AI agent in Python that leverages RAG and uses a local model through Ollama.
No experience is needed on these technologies, although we do assume you do have a basic understanding of LLMs.
This will be a fast-paced, engaging mixture of presentations interspersed with code explanations and demos building up to the finished product – something you’ll be able to replicate yourself after the session!
UiPath Agentic Automation: Community Developer OpportunitiesDianaGray10
Please join our UiPath Agentic: Community Developer session where we will review some of the opportunities that will be available this year for developers wanting to learn more about Agentic Automation.
Autonomous Resource Optimization: How AI is Solving the Overprovisioning Problem
In this session, Suresh Mathew will explore how autonomous AI is revolutionizing cloud resource management for DevOps, SRE, and Platform Engineering teams.
Traditional cloud infrastructure typically suffers from significant overprovisioning—a "better safe than sorry" approach that leads to wasted resources and inflated costs. This presentation will demonstrate how AI-powered autonomous systems are eliminating this problem through continuous, real-time optimization.
Key topics include:
Why manual and rule-based optimization approaches fall short in dynamic cloud environments
How machine learning predicts workload patterns to right-size resources before they're needed
Real-world implementation strategies that don't compromise reliability or performance
Featured case study: Learn how Palo Alto Networks implemented autonomous resource optimization to save $3.5M in cloud costs while maintaining strict performance SLAs across their global security infrastructure.
Bio:
Suresh Mathew is the CEO and Founder of Sedai, an autonomous cloud management platform. Previously, as Sr. MTS Architect at PayPal, he built an AI/ML platform that autonomously resolved performance and availability issues—executing over 2 million remediations annually and becoming the only system trusted to operate independently during peak holiday traffic.
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Raffi Khatchadourian
Efficiency is essential to support responsiveness w.r.t. ever-growing datasets, especially for Deep Learning (DL) systems. DL frameworks have traditionally embraced deferred execution-style DL code—supporting symbolic, graph-based Deep Neural Network (DNN) computation. While scalable, such development is error-prone, non-intuitive, and difficult to debug. Consequently, more natural, imperative DL frameworks encouraging eager execution have emerged but at the expense of run-time performance. Though hybrid approaches aim for the “best of both worlds,” using them effectively requires subtle considerations to make code amenable to safe, accurate, and efficient graph execution—avoiding performance bottlenecks and semantically inequivalent results. We discuss the engineering aspects of a refactoring tool that automatically determines when it is safe and potentially advantageous to migrate imperative DL code to graph execution and vice-versa.
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...Ivano Malavolta
Slides of the presentation by Vincenzo Stoico at the main track of the 4th International Conference on AI Engineering (CAIN 2025).
The paper is available here: http://www.ivanomalavolta.com/files/papers/CAIN_2025.pdf
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSeasia Infotech
Unlock real estate success with smart investments leveraging agentic AI. This presentation explores how Agentic AI drives smarter decisions, automates tasks, increases lead conversion, and enhances client retention empowering success in a fast-evolving market.
2. ▪ found it too hard to reduce lags ?
▪ tried to improve core functions ?
▪ be defeated by a heavy loop ?
Check this out for some experiments
Have you ever ...
A “simple” loop
Frame Rate
4. Test #1 - Result
for (int r = 0; r < ROWS_COUNT; ++r) {
for (int c = 0; c < COLUMNS_COUNT; ++c) {
minValue = Math.Min(minValue, table[r][c]);
}
}
Iterate by each row, then by each column
4ms
for (int c = 0; c < COLUMNS_COUNT; ++c) {
for (int r = 0; r < ROWS_COUNT; ++r) {
minValue = Math.Min(minValue, table[r][c]);
}
}
Just swap the loops order
8ms ???
5. Test #1 - Result
for (int r = 0; r < ROWS_COUNT; ++r) {
for (int c = 0; c < COLUMNS_COUNT; ++c) {
minValue = Math.Min(minValue, table[r][c]);
}
}
Iterate by each row, then by each column
4ms
for (int c = 0; c < COLUMNS_COUNT; ++c) {
for (int r = 0; r < ROWS_COUNT; ++r) {
minValue = Math.Min(minValue, table[r][c]);
}
}
Just swap the loops order
8ms ???
CPU Cache
6. ▪ Loading from Cache is faster than RAM
▪ Both data & instructions will be loaded
▪ References:
▪ Dogged Determination
▪ Fuzzy Reflection
▪ codeburst.io
CPU Cache
PS4 data loading latency
7. ▪ When a value is read from memory, next values will be read too
à Data is loaded in batch (size = cache line)
▪ A cache line = 64 bytes
▪ Data already in Cache à Cache-hit
▪ Data not in Cache à Cache-miss à Need to load from slower memory
CPU Cache
8. H: Cache-Hit, M: Cache-Miss
Test #1 - Result explain
for (int r = 0; r < ROWS_COUNT; ++r) {
for (int c = 0; c < COLUMNS_COUNT; ++c) {
minValue = Math.Min(minValue, table[r][c]);
}
}
r1
r2
r3
for (int c = 0; c < COLUMNS_COUNT; ++c) {
for (int r = 0; r < ROWS_COUNT; ++r) {
minValue = Math.Min(minValue, table[r][c]);
}
}
c1 c2 c3
M H H H ...
M H H H ...
M
M M M
M M
M M
... ...
9. Test #1 - Take it further
int[][] table = new int[ ROWS_COUNT ][ ];
// table[i] = new int[ COLUMNS_COUNT ];
Iterate 2D array
4ms ???
int CELLS_COUNT = ROWS_COUNT * COLUMNS_COUNT
int[] flatTable = new int[ CELLS_COUNT ];
Iterate 1D array
2ms
Fragmentation
10. ▪ Contiguous data is faster to load
▪ CPU allocates memory block where it fits
▪ Memory fragmentation is like a Swiss cheese
▪ Lead to cache-misses
Swiss-Cheese Memory
12. Test #2 - Result
Iterate an array of int (4 bytes)
35ms
Iterate an array of struct (32 bytes)
58ms
Why ?
Bigger struct (36 bytes) is even worse
60ms
13. Test #2 - Result explain
Iterate an array of int (4 bytes)
35ms
Iterate an array of struct (32 bytes)
58ms
Why ? Answer: CPU Cache, again
14. Test #2 - Result explain
Cache Pollution
Un-used data
still loaded
Less space
in cache-line
More
cache-misses
15. Test #2 - Result explain
Un-used data
still loaded
Less space
in cache-line
More
cache-misses
GameObject in
OOP style ?
16. Test #2 - Take it further
Add 1 byte data to the struct.
Then its size comes from 32 to 36 bytes (expect 33).
Why ?
17. Add 1 byte data to the struct.
Then its size comes from 32 to 36 bytes (expect 33).
Why ?
Answer: Data alignment
More:
▪ Try appending 1 more byte, size keeps at 36.
▪ Try prepending 1 more byte, size goes to 40.
Test #2 - Take it further
18. ▪ Data is put into 4-bytes “buckets”
for fast access
▪ When added data doesn’t fit
▪ Next (& empty) bucket will be used
▪ Wasted un-used bytes = padding
▪ References:
▪ Stdio.vn
▪ Wikipedia
▪ Song Ho Ahn
Data alignment
Without
data alignment
20. Just re-order data from biggest to smallest size
8 bytes
Test #3 - Result
12 bytes
???
21. Cache-miss
▪ Fastest way to load data: NOT LOADING IT :)
▪ Second best ways ?
▪ Keep data small (if not, notice about data alignment)
▪ Keep data contiguous
▪ Separate data by function
▪ In Relational Database, sometimes we de-normalize for performance, too !
◆ Problem #1: Encapsulation makes it hard to do this
23. ▪ Function is split into instruction blocks
▪ CPU looks up these blocks from a table
▪ CPU loads these blocks into instruction cache (I$)
▪ Function call suffers from cache-miss, too !!!
▪ References:
▪ Wikipedia (Instruction Cycle)
▪ Wikipedia (Branch Misprediction)
Function call
25. Test #4 - Result
Direct call
35ms
1-level indirect call
61ms
10-levels indirect call
411ms
26. ▪ Fastest way to call a function: NOT CALLING IT :)
▪ Second best ways:
▪ Keep high-performance function small (fits in cache)
▪ Keep narrow class hierarchy
▪ 1 function to process multiple instances, not 1 function for each instance
◆ Problem #2: Encapsulation / Polymorphism makes it hard to do this
Function call
27. Wait, they are OOP core !
Encapsulation + Inheritance + Polymorphism
28. ▪ Multiple inheritance
▪ Useful for game development, bad architecture
▪ “Diamond of dead”
◆ Problem #3: Not an easy way to implement multiple inheritance properly
Other OOP problems
29. ▪ Multiple inheritance
▪ Useful for game development, bad architecture
▪ “Diamond of dead”
◆ Problem #3: Not an easy way to implement multiple inheritance properly
▪ Unit test
▪ My test uses some members, but I need to initialize them all !!!
◆ Problem #4: Unit test involves un-related constraints
Other OOP problems
30. ▪ Multiple inheritance
▪ Useful for game development, bad architecture
▪ “Diamond of dead”
◆ Problem #3: Not an easy way to implement multiple inheritance properly
▪ Unit test
▪ My test uses some members, but I need to initialize them all !!!
◆ Problem #4: Unit test involves un-related constraints
▪ Jobify, False sharing, ...
Other OOP problems
32. ▪ Focus on how data is laid out in memory
▪ Focus on how data is read / processed
▪ Build functions around data
Data-Oriented Design
33. ▪ Focus on how data is laid out in memory
▪ Focus on how data is read / processed
▪ Build functions around data
▪ References:
▪ DICE
▪ Mike Acton (Insomniac Games, Unity)
▪ Richard Fabian
▪ Keith O’Connor (Ubisoft Montreal)
Data-Oriented Design
34. “The purpose of all programs, and all
parts of those programs, is to transform
data from one form to another ”
- Mike Acton -
38. Test #5 - Result
for (int i = 0; i < ELEMENTS_COUNT; ++i) {
d = GetDistance(center, objects[i].position);
if (minDistance > d) {
minDistance = d;
closestId = i;
}
}
Iterate Array of “GameObjects”
209ms
for (int i = 0; i < ELEMENTS_COUNT; ++i) {
d = GetDistance(center, positions[i]);
if (minDistance > d) {
minDistance = d;
closestId = i;
}
}
Iterate Array of positions
128ms
They’re almost identical, except line #2
39. Test #5 - Take it further
▪ You already knew DOD is faster (from previous test results)
▪ Let’s improve the algorithm (current: 209ms)
▪ Use GetSquareDistance instead of GetDistance à 137ms
▪ *Eliminate too far objects & pick the 1st close-enough object à 36ms
▪ Reduce branch mis-prediction à 34ms
*Human needs good-enough choice, not the optimal one.
40. Test #5 - Take it further
for (int i = 0; i < ELEMENTS_COUNT; ++i) {
d = GetSqDistance(center, objects[i].position);
if (d > MAX_SQ_DST) continue;
if (d < MIN_SQ_DST) { closestId = i; break; }
// ... original comparison here
}
Iterate Array of “GameObjects”
36ms
for (int i = 0; i < ELEMENTS_COUNT; ++i) {
d = GetSqDistance(center, positions[i]);
if (d > MAX_SQ_DST) continue;
if (d < MIN_SQ_DST) { closestId = i; break; }
// ... original comparison here
}
Iterate Array of positions
25ms
Your smart algorithm + DOD = AWESOME
41. ▪ Reduce data cache-misses (Problem #1)
▪ Reduce function cache-misses, indirect function calls (Problem #2)
▪ Component over inheritance (Problem #3)
▪ Unit test = Feed input & Assert the output (Problem #4)
▪ References:
▪ Games From Within
▪ Tencent
Data-Oriented Design
43. ▪ Performance & flexibility
▪ It’s the FUTURE (click links to see more)
▪ Mentioned top companies (Insomniac Games, Ubisoft, EA/DICE, ...)
▪ Sony
▪ Intel
▪ Apple
▪ Riot Games
▪ Unity !!! (other, other, other, other)
▪ More ...
Why should we care ?