<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>WANG Zhaofeng · Course Portfolio</title><link>https://zzefone.github.io/myblog/</link><description>Recent content on WANG Zhaofeng · Course Portfolio</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 21 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://zzefone.github.io/myblog/index.xml" rel="self" type="application/rss+xml"/><item><title>CG</title><link>https://zzefone.github.io/myblog/courses/cg/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/cg/</guid><description>Rendering pipelines, modelling, shading, and real-time graphics experiments.</description></item><item><title>BCV</title><link>https://zzefone.github.io/myblog/courses/bcv/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/bcv/</guid><description>Foundational vision exercises, from image features to geometric understanding.</description></item><item><title>HCI</title><link>https://zzefone.github.io/myblog/courses/hci/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/hci/</guid><description>Interaction design shaped by user research, prototyping, and evaluation.</description></item><item><title>AI</title><link>https://zzefone.github.io/myblog/courses/ai/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/ai/</guid><description>Intelligent agents, learning algorithms, and experimental AI projects.</description></item><item><title>ACV3D</title><link>https://zzefone.github.io/myblog/courses/acv3d/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/acv3d/</guid><description>Multi-view geometry, 3D reconstruction, and advanced vision methods.</description></item><item><title>SR</title><link>https://zzefone.github.io/myblog/courses/sr/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/sr/</guid><description>Robot design and research for social interaction.</description></item><item><title>CollEnv</title><link>https://zzefone.github.io/myblog/courses/collenv/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/collenv/</guid><description>Collaborative systems, shared spaces, and group interaction experiments.</description></item><item><title>AR</title><link>https://zzefone.github.io/myblog/courses/ar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/ar/</guid><description>Augmented experiences, spatial anchoring, and interaction prototypes.</description></item><item><title>VR</title><link>https://zzefone.github.io/myblog/courses/vr/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/vr/</guid><description>Immersive experiences, interaction techniques, and virtual-scene experiments.</description></item><item><title>Proj</title><link>https://zzefone.github.io/myblog/courses/proj/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/courses/proj/</guid><description>A long-running project that connects work across courses.</description></item><item><title>HCI Lab: Streaming Chat in Unity with the DeepSeek API</title><link>https://zzefone.github.io/myblog/posts/hci-lab-llm-unity-deepseek/</link><pubDate>Mon, 19 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-lab-llm-unity-deepseek/</guid><description>&lt;p&gt;The lab asks us to build a chat character in Unity, then study how people experience the interaction. I replaced the local LLMUnity model with the DeepSeek API to avoid downloading and running a model on this PC. The chat still streams its answer and locks the input until the reply finishes.&lt;/p&gt;&#10;&lt;p&gt;This changes the lab&amp;rsquo;s offline setup: internet access and API credit are required, and the measured delay includes the network and provider. It is an API-based adaptation. The course deck specifies Unity 6 with URP; this UI-only project uses Unity 6000.0.23f1, the Built-in Render Pipeline and TextMeshPro. Acceptance of these changes is for the instructor to confirm.&lt;/p&gt;</description></item><item><title>Planar AR: matching a marker and replacing it</title><link>https://zzefone.github.io/myblog/posts/bcv-marker-based-ar/</link><pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/bcv-marker-based-ar/</guid><description>&lt;p&gt;A reference image, a camera frame and a replacement image. The BCV final project is to find the first image in the frame and put the replacement in the same position. I tested the code on generated scenes, then on the marker displayed on a phone in front of the integrated webcam.&lt;/p&gt;&#10;&lt;h2 id="the-matching-pipeline"&gt;&#10; The matching pipeline&#10; &lt;a class="heading-link" href="#the-matching-pipeline"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;SIFT is the default, with ORB available in the GUI. Both use brute-force kNN matching with two neighbours. A ratio test removes ambiguous matches, and RANSAC estimates the homography from the remaining pairs.&lt;/p&gt;</description></item><item><title>HCI Lab 2: Touch Controls and an Android Build</title><link>https://zzefone.github.io/myblog/posts/hci-lab-2-mobile/</link><pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-lab-2-mobile/</guid><description>&lt;p&gt;The &lt;a href="https://zzefone.github.io/myblog/posts/hci-lab-1-ml-agents/" &gt;desktop learning task&lt;/a&gt; has two roles: the cyan sphere follows its neural policy, while the gold target can move. For the mobile version, a touch pad replaces keyboard control of the target. It does not directly steer the sphere.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/hci/lab-2-mobile/windows-editor-preview.png" alt="Signal Chase&amp;#39;s touch layout running in the Windows Unity Editor, with a left target pad and right Mode, Pause and Reset buttons. The image is labelled as a Windows preview, not an Android run."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Windows Editor preview of the touch layout. This is not an Android screenshot.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>HCI Lab 1: Machine Learning in Unity with ML-Agents</title><link>https://zzefone.github.io/myblog/posts/hci-lab-1-ml-agents/</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-lab-1-ml-agents/</guid><description>&lt;p&gt;Signal Chase starts with a simple task: move a cyan sphere towards a gold target. The extension makes the target move and reflect from the platform edges. Both tasks use learned PPO policies, not a scripted chasing rule.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/hci/lab-1-ml-agents/chase-runtime.png" alt="A cyan learning agent and gold moving target on the Signal Chase platform, rendered from the running Windows player."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Runtime camera capture of the moving-target task. The desktop control overlay is not included in this capture.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Corebound: a small 3D game in Unity</title><link>https://zzefone.github.io/myblog/posts/cg-unity-corebound/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/cg-unity-corebound/</guid><description>&lt;p&gt;Corebound is a small 3D game built for the Unity 101 final project. Roll through an orbital station, collect eight cyan energy cores, then reach the orange reactor. The course has three connected sectors, two gaps to boost across, and moving red scanners that send the sphere back to a checkpoint.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/cg/unity-corebound/01-menu.png" alt="Corebound menu beside a striped energy sphere on a cyan-edged station platform."&gt;&#10;&#10;&lt;p&gt;The brief asked for a 3D game with a Prefab instance, physics collisions, an instant-force boost, a live UI, a menu-to-game scene transition, audio, and an accessible Quit button. The deliverables are a complete Windows build, a public Git repository, and a post-mortem of no more than two pages. Complexity was not a requirement, so the project stays small.&lt;/p&gt;</description></item><item><title>Edge detection: gradients and Laplacian zero crossings</title><link>https://zzefone.github.io/myblog/posts/bcv-edge-detection/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/bcv-edge-detection/</guid><description>&lt;p&gt;The same photograph can give quite different edge maps. For this BCV lab, I compared a gradient detector with a Laplacian zero-crossing detector. The teacher&amp;rsquo;s notebooks weren&amp;rsquo;t available, so these results come from an independent Python implementation.&lt;/p&gt;&#10;&lt;p&gt;Both methods start with grayscale conversion and Gaussian smoothing. The gradient pipeline uses Sobel derivatives, thinning and hysteresis. The Laplacian pipeline looks for sign changes in the filtered response. Small fragments are removed at the end.&lt;/p&gt;</description></item><item><title>HCI Lab: Gaussian Splatting from Images to Unity</title><link>https://zzefone.github.io/myblog/posts/hci-lab-gaussian-splatting/</link><pubDate>Sat, 10 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-lab-gaussian-splatting/</guid><description>&lt;p&gt;This lab connects image-based training to a Unity scene. The trained model stores coloured, transparent 3D Gaussians rather than a triangle mesh. Each Gaussian has a position, scale, rotation and opacity; overlapping splats form the image seen by the camera.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/hci/gaussian-splatting/unity-filtered.png" alt="Two reconstructed hotdogs on a plate, rendered by the tested Unity Windows player using the filtered Gaussian model."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Actual Unity camera capture, with the desktop control overlay excluded. Soft edges and stretched details are still visible.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>La Cigale (the cicada) et la Fourmi (the ant) modelling with Blender</title><link>https://zzefone.github.io/myblog/posts/cg-la-cigale-et-la-fourmi/</link><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/cg-la-cigale-et-la-fourmi/</guid><description>&lt;p&gt;For the CG final project, I chose &lt;em&gt;La Cigale et la Fourmi&lt;/em&gt;, a fable by Jean de La Fontaine. &lt;em&gt;Cigale&lt;/em&gt; means cicada; &lt;em&gt;fourmi&lt;/em&gt; means ant.&lt;/p&gt;&#10;&lt;p&gt;One small moment: an ant carries a grain past a cicada resting on a rock. It stops, turns its head, then keeps going. The cicada stays where it is.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/cg/la-cigale-et-la-fourmi/image.png" alt="A reddish-brown low-poly ant carrying a grain beside a green cicada resting on a rock."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;The still render, taken at frame 174 during the pause.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>HCI Homework 4: Phone Shapes and Everyday MR</title><link>https://zzefone.github.io/myblog/posts/hci-homework-4/</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-homework-4/</guid><description>&lt;h2 id="lecture-10---the-shape-of-smartphones"&gt;&#10; Lecture 10 - The shape of smartphones&#10; &lt;a class="heading-link" href="#lecture-10---the-shape-of-smartphones"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Earlier keyboard-based smartphones reserved much of their front surface for typing. Touchscreens gave that space to the display: the same surface could become a keyboard, a map, or a video player. Larger screens suited reading and media, but also made one-handed use harder.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/hci/homework-4/phone-shapes.svg" alt="Schematic progression from a keyboard smartphone to a touchscreen slab and an unfolding phone. A fourth panel shows a possible future combination of phone, glasses, and watch."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Changes in input and screen space. The last panel is a proposal, not a product forecast.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>HCI Homework 3: An AR Guide for Finding a Room</title><link>https://zzefone.github.io/myblog/posts/hci-homework-3/</link><pubDate>Sun, 04 Oct 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-homework-3/</guid><description>&lt;h2 id="lecture-7---three-ideas-for-augmenting-human-abilities"&gt;&#10; Lecture 7 - Three ideas for augmenting human abilities&#10; &lt;a class="heading-link" href="#lecture-7---three-ideas-for-augmenting-human-abilities"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;I focused on small difficulties that AR could help with: finding a place, understanding language, and remembering a sequence of actions.&lt;/p&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/hci/homework-3/three-ideas.svg" alt="Three concept sketches: an indoor direction arrow, translated text beside a sign, and an instruction beside a machine control."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Concept sketches. The backgrounds and overlays are schematic.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Room Guide.&lt;/strong&gt; Show the next direction near a corridor junction, with the destination name always visible. It could reduce the effort of matching a floor plan to the place in front of you. Wrong or outdated positioning would be its main weakness.&lt;/p&gt;</description></item><item><title>HCI Homework 2: Body Interfaces and the Ultimate Display</title><link>https://zzefone.github.io/myblog/posts/hci-homework-2/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-homework-2/</guid><description>&lt;h2 id="lecture-4---an-hci-researcher-pedro-lopes"&gt;&#10; Lecture 4 - An HCI researcher: Pedro Lopes&#10; &lt;a class="heading-link" href="#lecture-4---an-hci-researcher-pedro-lopes"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Pedro Lopes leads the Human Computer Integration Lab at the University of Chicago. His work studies interfaces that connect to the body through touch, muscle stimulation, and other sensations. The computer can provide physical feedback instead of only showing instructions on a screen.&lt;/p&gt;&#10;&lt;p&gt;Two recent projects make this approach quite concrete:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Generative Muscle Stimulation, CHI 2026.&lt;/strong&gt; The system uses a person&amp;rsquo;s view and body pose to generate physical assistance for everyday tasks. It constrains the generated instructions using joint limits and knowledge about muscle stimulation. This makes context important: the same object can require different actions in different situations.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Myo Action, CHI 2026.&lt;/strong&gt; Muscle signals trigger stimulation that assists an action the person has already started. The aim is to speed up movement while preserving the person&amp;rsquo;s decision to act.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The interesting HCI question is control. Assistance should be easy to interrupt, and the person should understand when the system is acting. A technically effective movement could still feel wrong if it happens unexpectedly.&lt;/p&gt;</description></item><item><title>HCI Homework 1: Affordances, Gestalt Laws, and Dark Patterns</title><link>https://zzefone.github.io/myblog/posts/hci-homework-1/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-homework-1/</guid><description>&lt;p&gt;This homework looks at three ways design affects behaviour: the actions an object suggests, the visual groups people perceive, and the choices an interface tries to steer.&lt;/p&gt;&#10;&lt;h2 id="lecture-1---affordances"&gt;&#10; Lecture 1 - Affordances&#10; &lt;a class="heading-link" href="#lecture-1---affordances"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;An affordance is an action that an object makes possible. Its shape and signs help people discover that action. A well-designed door needs little explanation.&lt;/p&gt;&#10;&lt;h3 id="good-example-a-crash-bar-on-an-exit-door"&gt;&#10; Good example: a crash bar on an exit door&#10; &lt;a class="heading-link" href="#good-example-a-crash-bar-on-an-exit-door"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;img src="https://zzefone.github.io/myblog/images/hci/homework-1/crash-bar-door.jpg" alt="A school exit door with a horizontal crash bar."&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Figure 1. A horizontal crash bar suggests “push here” through its size, position, and direction.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>HCI Lab 1b: Unity Setup with an Existing Project</title><link>https://zzefone.github.io/myblog/posts/hci-lab-1-unity-setup/</link><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-lab-1-unity-setup/</guid><description>&lt;p&gt;Unity was already working for my Computer Graphics project, Corebound. For this lab, I am documenting that existing environment and its recorded results instead of creating another empty project. The screenshots below come from the Windows player run on 11 October 2026.&lt;/p&gt;&#10;&lt;p&gt;The separate &lt;a href="https://zzefone.github.io/myblog/posts/hci-lab-1-ml-agents/" &gt;ML-Agents lab&lt;/a&gt; adds trained reaching and chasing policies. This page remains the basic Unity setup record.&lt;/p&gt;&#10;&lt;h2 id="environment-and-project-structure"&gt;&#10; Environment and project structure&#10; &lt;a class="heading-link" href="#environment-and-project-structure"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Corebound uses Unity 6000.0.23f1, the Built-in Render Pipeline, and a Windows build with the Mono scripting backend. It is a small 3D game: move a sphere, collect eight energy cores, and reach the reactor.&lt;/p&gt;</description></item><item><title>HCI Lab 1a: Setting Up the Course Blog</title><link>https://zzefone.github.io/myblog/posts/hci-lab-1-blog-setup/</link><pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/hci-lab-1-blog-setup/</guid><description>&lt;p&gt;The lab asks for an online blog and a record of the setup process. My blog uses Hugo Extended with the hugo-coder theme. It is a course portfolio rather than a single stream of unrelated posts.&lt;/p&gt;&#10;&lt;h2 id="organising-the-work"&gt;&#10; Organising the work&#10; &lt;a class="heading-link" href="#organising-the-work"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;The Courses page gives each subject its own space. Posts carry a course code, such as HCI, so they appear automatically on the right course page. Within each homework, lecture headings keep the answers separate. Lab work gets its own post.&lt;/p&gt;</description></item><item><title>Portfolio kickoff: making coursework traceable</title><link>https://zzefone.github.io/myblog/posts/portfolio-kickoff/</link><pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/portfolio-kickoff/</guid><description>&lt;p&gt;This is not a website that only displays end-of-term outcomes. It is a living record of work in progress.&lt;/p&gt;&#10;&lt;p&gt;Each course page will collect its assignments and experiments; each work log will focus on one concrete question. To make later reflection easier, I will use a consistent structure:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt; — What is the problem and what are its constraints?&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Method&lt;/strong&gt; — Which models, tools, or design decisions were used?&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Implementation&lt;/strong&gt; — What are the essential steps and version choices?&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Result&lt;/strong&gt; — What do screenshots, metrics, demos, or failures show?&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reflection&lt;/strong&gt; — Which assumptions held up, and what should change next time?&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The course pages are ready; they will be filled as new work is completed.&lt;/p&gt;</description></item><item><title>What a course-work log should preserve</title><link>https://zzefone.github.io/myblog/posts/a-template-for-course-work/</link><pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/posts/a-template-for-course-work/</guid><description>&lt;p&gt;Course work is easy to forget after it is submitted. Turning it into a readable log is not about copying a report to a website; it is about retaining the context behind the decisions.&lt;/p&gt;&#10;&lt;h2 id="a-useful-structure"&gt;&#10; A useful structure&#10; &lt;a class="heading-link" href="#a-useful-structure"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h3 id="a-one-sentence-brief"&gt;&#10; A one-sentence brief&#10; &lt;a class="heading-link" href="#a-one-sentence-brief"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;State the task, platform, and most important outcome. A reader should understand the work in under a minute.&lt;/p&gt;</description></item><item><title>About this portfolio</title><link>https://zzefone.github.io/myblog/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/about/</guid><description>&lt;p&gt;This is WANG Zhaofeng&amp;rsquo;s personal portfolio for Master&amp;rsquo;s coursework. It documents more than final results: it keeps track of the questions, iterations, and unsuccessful experiments that shaped each project.&lt;/p&gt;&#10;&lt;p&gt;The portfolio covers computer graphics, computer vision, artificial intelligence, human-computer interaction, and AR/VR. Each work log aims to explain the goal, method, implementation, outcome, and reflection.&lt;/p&gt;&#10;&lt;h2 id="how-to-use-it"&gt;&#10; How to use it&#10; &lt;a class="heading-link" href="#how-to-use-it"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Visit &lt;a href="https://zzefone.github.io/myblog/courses/" &gt;Courses&lt;/a&gt; to see the work collected for a specific class.&lt;/li&gt;&#10;&lt;li&gt;Browse &lt;a href="https://zzefone.github.io/myblog/posts/" &gt;Work log&lt;/a&gt; to read the newest experiments and projects in chronological order.&lt;/li&gt;&#10;&lt;li&gt;Course pages will grow with assignments, code repositories, demos, and reports throughout the year.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This site is built with Hugo and deployed on GitHub Pages.&lt;/p&gt;</description></item><item><title>Contact</title><link>https://zzefone.github.io/myblog/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/contact/</guid><description>&lt;p&gt;Please visit &lt;a href="https://github.com/Zzefone" class="external-link" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt; to view the code, ask a question, or discuss a course project.&lt;/p&gt;&#10;&lt;p&gt;To avoid publishing a personal email address, GitHub is the contact point for now. A public contact method may be added here later.&lt;/p&gt;</description></item><item><title>Projects</title><link>https://zzefone.github.io/myblog/projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/projects/</guid><description>&lt;p&gt;This page will gather cross-course projects, reusable tools, and public demos.&lt;/p&gt;&#10;&lt;p&gt;For now, visit &lt;a href="https://zzefone.github.io/myblog/courses/" &gt;Courses&lt;/a&gt; to explore the work organized by class. Completed projects will include a project brief, code link, setup notes, and a record of results.&lt;/p&gt;</description></item><item><title>Room Guide: an HCI prototype</title><link>https://zzefone.github.io/myblog/hci-room-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://zzefone.github.io/myblog/hci-room-guide/</guid><description/></item></channel></rss>