<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://granite-lifeline.github.io/granite-lifeline-blog/</id><title>Granite Lifeline</title><subtitle>Granite Lifeline is an IBM-sponsored MSc Computer Science project at the University of Bristol. This blog documents the development journey of an engine component failure prediction system, built using IBM Granite TTM for anomaly detection and IBM Granite LLM for natural language diagnostic reports, trained on the KIT Automotive OBD-II dataset.</subtitle> <updated>2026-07-27T16:55:43+01:00</updated> <author> <name>Granite Lifeline</name> <uri>https://granite-lifeline.github.io/granite-lifeline-blog/</uri> </author><link rel="self" type="application/atom+xml" href="https://granite-lifeline.github.io/granite-lifeline-blog/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://granite-lifeline.github.io/granite-lifeline-blog/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Granite Lifeline </rights> <icon>/granite-lifeline-blog/assets/img/favicons/favicon.ico</icon> <logo>/granite-lifeline-blog/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Why the Model Layer Uses Granite TTM Forecasting with Residual Detection</title><link href="https://granite-lifeline.github.io/granite-lifeline-blog/posts/model-layer-residual-detection-decision/" rel="alternate" type="text/html" title="Why the Model Layer Uses Granite TTM Forecasting with Residual Detection" /><published>2026-07-27T01:00:00+01:00</published> <updated>2026-07-27T01:00:00+01:00</updated> <id>https://granite-lifeline.github.io/granite-lifeline-blog/posts/model-layer-residual-detection-decision/</id> <content type="text/html" src="https://granite-lifeline.github.io/granite-lifeline-blog/posts/model-layer-residual-detection-decision/" /> <author> <name>ray</name> </author> <category term="Technical Deep Dives" /> <summary>While designing the Model Layer for Granite Lifeline, we ran into a fundamental problem. The system ultimately needs to identify vehicle faults, yet most of our training data consists of unlabelled vehicle sensor readings. That makes direct fault classification difficult to train and hard to validate. Forecasting healthy vehicle behaviour gave us a practical starting point: predict what the sig...</summary> </entry> <entry><title>Sprint 4 Standup: The Last Mile Before an End-to-End Pipeline</title><link href="https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-4-standup-connecting-the-pipeline/" rel="alternate" type="text/html" title="Sprint 4 Standup: The Last Mile Before an End-to-End Pipeline" /><published>2026-07-21T01:00:00+01:00</published> <updated>2026-07-21T01:00:00+01:00</updated> <id>https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-4-standup-connecting-the-pipeline/</id> <content type="text/html" src="https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-4-standup-connecting-the-pipeline/" /> <author> <name>team</name> </author> <category term="Sprint Updates" /> <summary>Six days into Sprint 4, we pulled everyone into a standup to check the one thing that actually matters this sprint: can a CSV go in one end and a diagnostic report come out the other? Short answer — almost. Every layer has real, working code now; what’s missing is the wiring between them. This post walks through who did what, and exactly which three connectors stand between us and a genuine end...</summary> </entry> <entry><title>Sprint 3 Retrospective and Sprint 4 Planning: Building Towards a Complete Pipeline</title><link href="https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-3-retro-sprint-4-planning/" rel="alternate" type="text/html" title="Sprint 3 Retrospective and Sprint 4 Planning: Building Towards a Complete Pipeline" /><published>2026-07-14T01:00:00+01:00</published> <updated>2026-07-14T01:00:00+01:00</updated> <id>https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-3-retro-sprint-4-planning/</id> <content type="text/html" src="https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-3-retro-sprint-4-planning/" /> <author> <name>team</name> </author> <category term="Sprint Updates" /> <summary>Today was a full day of meetings. The team sat down with the supervisor, ran the Sprint 3 retrospective, and closed with Sprint 4 planning — all in one sitting. This post covers what was learned in each, and lays out the plan for the sprint ahead. What We Learned from Our Supervisor The supervisor meeting focused almost entirely on the viva, and the guidance reshaped how the team is thinking ...</summary> </entry> <entry><title>Sprint 3 Week 1: Pipeline Integration, Report Planning, and Viva Preparation</title><link href="https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-3-week1-pipeline-integration/" rel="alternate" type="text/html" title="Sprint 3 Week 1: Pipeline Integration, Report Planning, and Viva Preparation" /><published>2026-07-07T13:00:00+01:00</published> <updated>2026-07-07T16:56:09+01:00</updated> <id>https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-3-week1-pipeline-integration/</id> <content type="text/html" src="https://granite-lifeline.github.io/granite-lifeline-blog/posts/sprint-3-week1-pipeline-integration/" /> <author> <name>team</name> </author> <category term="Sprint Updates" /> <summary>As we wrote in last week’s retrospective, Sprint 3 would open with RAG pipeline integration — and that’s exactly what filled this first week. Alongside it, the Data and Model Layer teams pushed key groundwork forward, we locked in two roadmap decisions, and we started planning ahead for the viva and the group report. Sprint 3 Week 1 Progress Data Layer. Lei and Qiuting completed feature engin...</summary> </entry> <entry><title>Why We Chose Metadata-Filtered Retrieval: A Four-Way Empirical Comparison</title><link href="https://granite-lifeline.github.io/granite-lifeline-blog/posts/retrieval-method-comparison/" rel="alternate" type="text/html" title="Why We Chose Metadata-Filtered Retrieval: A Four-Way Empirical Comparison" /><published>2026-07-07T10:00:00+01:00</published> <updated>2026-07-07T16:56:09+01:00</updated> <id>https://granite-lifeline.github.io/granite-lifeline-blog/posts/retrieval-method-comparison/</id> <content type="text/html" src="https://granite-lifeline.github.io/granite-lifeline-blog/posts/retrieval-method-comparison/" /> <author> <name>charlotte</name> </author> <category term="Technical Deep Dives" /> <summary>As promised in Sprint 3 Week 1, here’s the full breakdown of the retrieval evaluation we ran this week. The Question When we designed the RAG pipeline for Granite Lifeline, we chose metadata-filtered retrieval over semantic vector search. The reasoning was simple: the Model Layer already tells us exactly which anomaly type it detected, so an exact metadata match should be more reliable than a...</summary> </entry> </feed>
