
Stories from the Blog:
- DNND 3: the U-Net ArchitectureThis is episode three of a miniseries on the vast world of Deep Neural Networks. I start by exploring the Intel® Open Image Denoise open-source library (OIDN) and create a CUDA/CUDNN-based denoiser that produces high-quality results at real-time frame rates. Throughout the series, I narrate the story in first person. In episode two, I tookContinue reading “DNND 3: the U-Net Architecture”
- DNND 2: Tensors and ConvolutionThis is the second episode of a miniseries in the vast world of Deep Neural Networks, where I start from Intel® Open Image Denoise open-source library (OIDN) and create a CUDA/CUDNN-based denoiser that produces high-quality results at real-time frame rates. In this series, I narrate the story in first person. The first episode was focusedContinue reading “DNND 2: Tensors and Convolution”
- DNND 1: a Deep Neural Network DiveThis is the first episode of a mini-series where I invite you to join me on a journey of discovery in the vast world of Deep Neural Networks. We will be exploring the Deep Neural Network in the Intel® Open Image Denoise open source library (OIDN) and learning some basic concepts of Convolutional Neural Networks.Continue reading “DNND 1: a Deep Neural Network Dive”
- Anatomy of a task schedulerIn designing a task scheduler, it is fundamental to consider how it would impact your code. I find that some articles on tasking systems put emphasis on the innerworkings, how to achieve lightweight synchronization and context switches, while I offer a different perspective on the subject.
- Axis of comfortThere are many ways to step out of your comfort zone. The comfort zone is not a 2d map with concentric circles!
- Undo, the art of – Part 1People seem to think that implementing a solid undo system in a program is hard work, and yes for the most part that can be true, but it doesn’t have to be. In this blog post I explore the design of undo/redo and provide some guidelines that simplify such a task. I’ll touch on theContinue reading “Undo, the art of – Part 1”
- Offline to Realtime: ManipulatorsIn my new system design I allow to draw anything and give free range of what a manipulator may be and how it may behave. The infrastructure in Gesture::Input and Gesture::Graphics comes together to create the design.
- Offline to Realtime: Gesture GraphicsToday I am writing about the second part of Gesture, the graphics component that allows me to draw on screen. Gesture::Graphics is not meant to draw a 3d scene, it is rather some infrastructure for immediate mode GUI
- What is the quickest path to my dream job?A common question I am asked is: “what is the quickest path to my dream job?” Generalizing a little: what is the quickest way to fulfill my dream? Whether that may be an important life fulfillment or a quick fix, the concept applies. To classify people across the two proverbial types, there are those whoContinue reading “What is the quickest path to my dream job?”
- Offline to Realtime: Camera ManipulationIn a previous post I began describing Gesture, my GUI layer system. Today I complete that introduction and develop on top the basic camera controls of a typical 3d DCC application. The system will still be primordial, far from fully formed. First and foremost I need a camera. To move it around I am goingContinue reading “Offline to Realtime: Camera Manipulation”
- Offline to Realtime: GestureGesture is the name I have chosen for my GUI layer. As mentioned, there are at least two parts to it; for now, I am going to look at the user input decoder. Other parts will be subject of future blog posts.
- Offline to Realtime: the beginning of a journeyI feel I am far from home right now. For the longest time I cut my teeth on movies. Doing lighting, writing tools, writing rendering tech. It grew up very familiar, that type of familiar where instinctively you don’t need to make a plan to figure out what need to be done. That type ofContinue reading “Offline to Realtime: the beginning of a journey”
- Imposter SyndromeThe term Imposter Syndrome is thrown around way too easily these days to express “I had a bad day”. This is my rationalization and why do I feel the Imposter Syndrome.
- Dev: Tracking Memory Usage – Part 2By structuring computation as data and its transformation steps, we can achieve lower memory utilization and better performance. In the process we introduce some peculiarities of virtual memory systems.
- Dev: Tracking Memory Usage – Part 1This post is part 4 of the mini series “It’s all about memory” where we discuss various aspects which should bring front and center data transformation in software engineering. In this post we are going to venture in the realm of memory tracking, trying to understand how and where our software allocates memory. Why isContinue reading “Dev: Tracking Memory Usage – Part 1”
- When I Realized I Could Do That SomethingRecently somebody asked me to write the story of the moment when I realized I could do a new job that I aspired to do. I didn’t have a quip for that which let me thinking: at which point did I realize I was confident I could do something? Sometimes you are looking for aContinue reading “When I Realized I Could Do That Something”
- Dev: It’s all about memory – part 3Building on top of what we have discussed so far in previous installments of this series (part 1: memory allocation, part 2: structs or classes?), this time is about what we can do with structs. While previous posts were aimed at novices, this post digs deeper to some techniques that some mid level developer mayContinue reading “Dev: It’s all about memory – part 3”
- Dev: It’s all about memory – part 2If you haven’t already, check part 1 of this post series. It is an introduction to why we should care about memory (therefore data) when we write software. This series is mostly about C++ with some hints at C, although some of the concepts may apply to other programming languages. In this post we willContinue reading “Dev: It’s all about memory – part 2”
- Dev: It’s all about memory – part 1You have some data to load in memory to run some computation, now what? Perhaps you are relatively new to programming, perhaps you are an expert and you just want to have a laugh at how lopsided my explanation is. In this series of blog posts I want to explain memory in the way IContinue reading “Dev: It’s all about memory – part 1”
- Life stories: the Glimpse Renderer – part 3After The LEGO Movie (TLM) delivered, the company took a long breath. I knew change was coming that we wanted it or not, part of it was my proposal after all. I created a detailed business plan with costs, budgets and prospects. You can present some tech to you peers, but you need a plan,Continue reading “Life stories: the Glimpse Renderer – part 3”
- Life stories: the Glimpse Renderer – part 2The Lego Movie (TLM) pre-production was at full steam. A key design directive from directors Phil Lord and Chris Miller was that everything had to be made with LEGO bricks, everything. Production Supervisors, R&D and TDs at Animal Logic figured out very neat and efficient pipeline and process for asset creation, modeling, shading and layout.Continue reading “Life stories: the Glimpse Renderer – part 2”
- Life stories: the Glimpse Renderer – part 1In my previous post Life stories: From Art to Tech, part 2 you have followed me through part of my journey from small shop, small side-gig, to deploy big transformational projects at large studios. From a technical perspective the biggest single-handed project had been the creation of a production path-tracer renderer: Glimpse. Compared to myContinue reading “Life stories: the Glimpse Renderer – part 1”
- Life stories: From Art to Tech, part 2My previous blog post is a piece I have originally written for Casey Muratori a while ago. Casey wanted to dedicate one episode of his show “Handmade Hero” to tell a few stories of people switching career to software engineering. I was very happy to tell a bit of my story because I felt itContinue reading “Life stories: From Art to Tech, part 2”
- The secret to a good Job InterviewI have mentored quite a few people over the years and one of the common questions that come up is, how do you prepare for a job interview? In my career I have not been in many as interviewee, on the flip side I have been the interviewer hundreds and hundreds of times, mostly lookingContinue reading “The secret to a good Job Interview”
- Life stories: From Art to TechI write software to make a living, but my career didn’t start at the tech side of things. Changing career and embracing software engineering later in life is like changing culture, moving to a different country. I know this because I have done both, more than once actually. The change brings both positives and negatives.Continue reading “Life stories: From Art to Tech”
- Life stories: Where it all beganAre you the type of person who always knew what you wanted to do in life? Or are you one who never had a clue, you still don’t know and you are trying to figure it out? It’s too easy to be tempted to draw a line. Fact is it is a complete spectrum ofContinue reading “Life stories: Where it all began”
- Something about mePeople ask me questions at times, “how did you get where you are?”, “how did you do what you did?”. These people know something about me. Chances are you got here by chance and, for some reason I will never know, you decided to read through some of things I may have written in thisContinue reading “Something about me”