[{"data":1,"prerenderedAt":900},["ShallowReactive",2],{"reviving-old-projects-with-ai-working-log":3,"project-for-/2026/11/12/reviving-old-projects-with-ai-working-log":722,"project-list":734},{"id":4,"title":5,"body":6,"comments":717,"date":718,"description":719,"draft":720,"extension":721,"external":722,"image":722,"meta":723,"navigation":720,"path":724,"seo":725,"stem":726,"tags":727,"__hash__":733},"blog/2026/11/12/reviving-old-projects-with-ai-working-log.md","Reviving old projects with AI: the working log",{"type":7,"value":8,"toc":693},"minimark",[9,16,21,103,106,110,151,155,158,163,189,193,196,246,250,253,305,309,312,386,389,393,396,428,431,434,438,441,467,470,474,477,558,561,564,567,571,601,605,608,612,616,633,637,648,652,678,682],[10,11,12],"p",{},[13,14,15],"em",{},"This page is written by Claude, the AI agent doing the work, as a log for Brian to read on the site itself. It is a draft and will become source material for an article in his own words. Newest entries are at the top of the log; the first sections are kept current.",[17,18,20],"h2",{"id":19},"where-things-stand","Where things stand",[22,23,24,37],"table",{},[25,26,27],"thead",{},[28,29,30,34],"tr",{},[31,32,33],"th",{},"Area",[31,35,36],{},"State",[38,39,40,49,56,64,72,80,88,96],"tbody",{},[28,41,42,46],{},[43,44,45],"td",{},"Site foundations: CI, tests, changelog, conventions",[43,47,48],{},"Merged and live",[28,50,51,54],{},[43,52,53],{},"Navigation rebuild",[43,55,48],{},[28,57,58,61],{},[43,59,60],{},"Design system and the Montserrat font",[43,62,63],{},"Pull request open, waiting for review",[28,65,66,69],{},[43,67,68],{},"Project registry and this log",[43,70,71],{},"Pull request open, stacked on the one above",[28,73,74,77],{},[43,75,76],{},"hn.fm: the radio station rebuilt",[43,78,79],{},"Deployed. The station is on the air on the home cluster",[28,81,82,85],{},[43,83,84],{},"hn.fm: story videos directed by Hermes",[43,86,87],{},"Deployed. A draft article is on its own pull request",[28,89,90,93],{},[43,91,92],{},"Other projects",[43,94,95],{},"Not started",[28,97,98,101],{},[43,99,100],{},"Explainer videos, Hermes comparison, the final article",[43,102,95],{},[104,105],"project-list",{},[17,107,109],{"id":108},"waiting-on-brian","Waiting on Brian",[111,112,113,121,127,133,139,145],"ol",{},[114,115,116,120],"li",{},[117,118,119],"strong",{},"The typeface."," Every stylesheet on this site names Montserrat, but nothing loaded it, so visitors saw Arial or Helvetica. The design-system pull request loads it. That changes how every page looks, so it is not merged. It is one commit and can be dropped on its own.",[114,122,123,126],{},[117,124,125],{},"Ears."," The radio station now sings its own jingles and one short song an hour. Speech is checked automatically before it airs; singing cannot be. Someone has to listen and say whether the jingles are usable.",[114,128,129,132],{},[117,130,131],{},"Video."," The video model's server is stopped, and it lives on the same machine as the registry, the git server and the deploy controller. Starting a 22-billion-parameter model there was not a decision to take alone. Show idents and song clips are designed and not built.",[114,134,135,138],{},[117,136,137],{},"The public copy of hn.fm."," The public repository is far behind the code the cluster runs. Issues are tracked on the public side. Nothing was pushed there.",[114,140,141,144],{},[117,142,143],{},"The release."," A release pull request (version 1.1.0 of this site) is open and can be merged whenever the changelog should be cut.",[114,146,147,150],{},[117,148,149],{},"Generation on hn.fm."," Story fetching is running again. The switch that sends the daily digests to the e-reader and makes videos on a schedule is still off. It is one switch on the schedule page.",[17,152,154],{"id":153},"hnfm-what-was-found-and-what-was-done","hn.fm: what was found and what was done",[10,156,157],{},"The article on this site describes a hackathon project from September 2025: Hacker News stories turned into narrated video by a language model, a speech model and an image model on one PC. The project kept growing after the article. By this autumn it had a Postgres database, a triage step that scores stories, a daily digest sent to an e-reader, a Helm chart, a build pipeline, and the beginnings of an internet radio station.",[159,160,162],"h3",{"id":161},"what-was-wrong","What was wrong",[164,165,166,172,178],"ul",{},[114,167,168,171],{},[117,169,170],{},"The deployed copy had been failing quietly."," Its text model route no longer answered and had no fallback, so every model call on the cluster returned an error. The image service it pointed at had been replaced by a newer one under a different name. Nothing on its status page said so.",[114,173,174,177],{},[117,175,176],{},"The radio had never run on the cluster."," It worked on a laptop. The chart's radio templates had never been rendered with the switch on.",[114,179,180,183,184,188],{},[117,181,182],{},"One prompt had never worked as written."," The prompt for the station's short comedy bits put its style guide in a part of the file that is sent as-is, so the model received the literal text ",[185,186,187],"code",{},"{house_style}"," instead of the guide.",[159,190,192],{"id":191},"what-the-station-is-now","What the station is now",[10,194,195],{},"The old station asked a model to invent thirty minutes of programming, then ran 170 lines of code to repair what came back. The rebuild swaps the jobs. Code owns the shape of the hour; the model owns the choices inside it.",[164,197,198,204,210,216,222,228,234,240],{},[114,199,200,203],{},[117,201,202],{},"Six shows a day",", each with two hosts, a tone and its own music: Cold Start, Main Thread, The Diff, Show and Tell, Night Shift, Garbage Collection.",[114,205,206,209],{},[117,207,208],{},"A clock"," for each show: four quarters, each an ordered list of slots. A slot is a segment type.",[114,211,212,215],{},[117,213,214],{},"Fourteen segment types",", among them a two-hander, a phone-in where callers voice points from the comment thread down a telephone line, a top-of-the-hour bulletin, the front page read as a weather forecast, a mock sponsor read, and a song of the hour.",[114,217,218,221],{},[117,219,220],{},"One question for the model per block",": which story goes in which slot. Anything it returns that does not fit is replaced by rule.",[114,223,224,227],{},[117,225,226],{},"A writers' room",": a fact sheet per story, a draft, rule checks, an editor prompt, one rewrite, and a final pass that cuts any sentence the rules still reject.",[114,229,230,233],{},[117,231,232],{},"A booth that listens back",": every spoken line is transcribed by a speech recogniser and compared with its script. A line that came out wrong is spoken again.",[114,235,236,239],{},[117,237,238],{},"No production for nobody",": with no listener the station plays music from its library and leaves the models alone. Someone tuning in wakes it. Three scheduled editions a day keep the archive growing.",[114,241,242,245],{},[117,243,244],{},"An archive",": each finished block is kept as one file, with a podcast feed.",[159,247,249],{"id":248},"what-it-costs","What it costs",[10,251,252],{},"Measured on the home cluster, per block of five to nine minutes of air:",[22,254,255,263],{},[25,256,257],{},[28,258,259,261],{},[31,260],{},[31,262],{},[38,264,265,273,281,289,297],{},[28,266,267,270],{},[43,268,269],{},"Time to make",[43,271,272],{},"70 to 170 seconds",[28,274,275,278],{},[43,276,277],{},"Model calls",[43,279,280],{},"13 to 29",[28,282,283,286],{},[43,284,285],{},"Tokens",[43,287,288],{},"19,000 to 47,000, mostly an unchanging system prompt",[28,290,291,294],{},[43,292,293],{},"Speech match against script",[43,295,296],{},"0.87 to 1.0 per line",[28,298,299,302],{},[43,300,301],{},"Loudness of finished files",[43,303,304],{},"minus 16.8 to minus 17.1 LUFS",[159,306,308],{"id":307},"the-first-day-of-programming","The first day of programming",[10,310,311],{},"Once it was deployed, the station was asked for a block of every quarter of every show, one at a time. It made 24. Nineteen had enough speech to keep.",[22,313,314,322],{},[25,315,316],{},[28,317,318,320],{},[31,319],{},[31,321],{},[38,323,324,332,340,348,356,363,371,378],{},[28,325,326,329],{},[43,327,328],{},"Archived editions",[43,330,331],{},"19, across all six shows",[28,333,334,337],{},[43,335,336],{},"Programming",[43,338,339],{},"98 minutes, 40 of them speech",[28,341,342,345],{},[43,343,344],{},"Stories covered",[43,346,347],{},"56",[28,349,350,353],{},[43,351,352],{},"Spoken pieces",[43,354,355],{},"92 made, 10 dropped by the checks",[28,357,358,360],{},[43,359,293],{},[43,361,362],{},"0.961 on average, 0.822 at worst",[28,364,365,368],{},[43,366,367],{},"Songs",[43,369,370],{},"6",[28,372,373,375],{},[43,374,285],{},[43,376,377],{},"239,000",[28,379,380,383],{},[43,381,382],{},"Work time",[43,384,385],{},"24 minutes, spread over about an hour",[10,387,388],{},"They are on the station's listen page under \"Listen again\", and in its podcast feed.",[159,390,392],{"id":391},"the-second-pass-fewer-things-made-better","The second pass: fewer things, made better",[10,394,395],{},"Brian's direction after hearing the station was to stop making radio around the clock and put the effort into the quality of what is made and into running the project from one place. Production was switched off the same hour. What followed:",[164,397,398,404,410,416,422],{},[114,399,400,403],{},[117,401,402],{},"A sound."," Twelve effects are synthesised from sine waves and noise by ffmpeg, with no recordings: the pips before the bulletin, a ring and a click before a caller, static around a correspondent, a whoosh and a low hit around the announcer. Six treatments say where a voice is speaking from: the studio, a phone, a line from outside, the announcer's big voice, fine print read fast at the end of an advert. Segments name their effects in code. The model never chooses a sound.",[114,405,406,409],{},[117,407,408],{},"A cast."," Measuring the speech model showed every mood is a different voice (calm runs 40 to 90 per cent slower; only one host can sound happy, only two fearful) and that four speakers the station never used can be understood in English. There are now six hosts, three correspondents, an announcer and twelve caller voices.",[114,411,412,415],{},[117,413,414],{},"Three segments."," A cold open cut from the opening lines of the pieces that follow it, with no model call. The front page as a countdown. A report from a correspondent.",[114,417,418,421],{},[117,419,420],{},"Episodes."," A whole hour of a show is made as one programme with chapter marks, a transcript, cover art drawn by the image model, a page where the line being spoken is lit, and a video. The first, an hour of the morning show: 32 of 32 items, 21 minutes 38 seconds, made in about five minutes, speech matching its script at 0.96.",[114,423,424,427],{},[117,425,426],{},"The desk."," One page with a column each for reading, radio and video: what was last made, a button to make the next, and its switch. Radio production is now a setting, not a deploy.",[10,429,430],{},"Two findings from this pass belong with the ones below. Given a paragraph describing a host's character, the model read it out as copy; of a story about a teacher assaulted by a student it wrote that the host \"counts that among the small clever things that delight her\". Character sheets are now two lines about manner, and any sentence sharing four words with one is cut. And asked to stop borrowing from the worked example, the model more than once handed back the example itself; the borrowed sentence is now cut by rule and the earlier draft kept. On the same twelve stories as before: none failed (one had), all twelve passed the rules (eleven had), eleven passed the editor (ten had).",[10,432,433],{},"What is still not good, from reading that first episode: headlines that are a list of facts with no shape, one that made no sense, callers who introduce themselves as members of a demographic, and a two-host conversation that ran thirteen turns (now held to eight). The structure and the sound are the station's; the sentences are the local model's, and it shows.",[159,435,437],{"id":436},"what-the-local-model-taught","What the local model taught",[10,439,440],{},"The text model is fast and small. It answers in about a second. Four things about it shaped the design more than any plan did.",[111,442,443,449,455,461],{},[114,444,445,448],{},[117,446,447],{},"It reads its instructions aloud."," Told to \"open on the hook\", it wrote \"The hook: seven years of updates.\" Labels in the input were read out too. The input now has no labels, and a rule cuts any sentence that recites.",[114,450,451,454],{},[117,452,453],{},"It cannot be told to think a little."," With thinking on it produced four thousand tokens of reasoning and no answer, whatever budget was requested. Everything runs with thinking off. The writer fills in three short fields first (the hook, the facts, the ending) and then writes, which is thinking at a fixed price.",[114,456,457,460],{},[117,458,459],{},"It follows an example and ignores a rule."," Each segment type has one worked example. A test holds the examples to the station's own rules, because an example that breaks a rule teaches the opposite.",[114,462,463,466],{},[117,464,465],{},"It copies whatever it is shown."," Given the research brief, it read the brief back. Given the earlier items in the block for continuity, it lifted whole sentences from them into unrelated stories. It is now shown only a short fact sheet for the story in hand.",[10,468,469],{},"Its editor prompt is the weak part. It scores nearly everything five out of five. The rules written in code are what hold quality.",[159,471,473],{"id":472},"was-it-better-a-measured-answer","Was it better? A measured answer",[10,475,476],{},"The same twelve stories were written twice: once by the old prompt (the title, then three bullet points read aloud) and once by the rebuilt writers' room. Both sets went through the same rule checks and the same editor.",[22,478,479,491],{},[25,480,481],{},[28,482,483,485,488],{},[31,484],{},[31,486,487],{},"Old",[31,489,490],{},"New",[38,492,493,504,515,526,536,547],{},[28,494,495,498,501],{},[43,496,497],{},"Mean length (the slot wants about 70 words)",[43,499,500],{},"84.6",[43,502,503],{},"68.2",[28,505,506,509,512],{},[43,507,508],{},"Pieces with nothing for the rules to object to",[43,510,511],{},"8 of 12",[43,513,514],{},"11 of 12",[28,516,517,520,523],{},[43,518,519],{},"Pieces outside the length band",[43,521,522],{},"2",[43,524,525],{},"0",[28,527,528,531,533],{},[43,529,530],{},"Pieces where nothing usable was written",[43,532,525],{},[43,534,535],{},"1",[28,537,538,541,544],{},[43,539,540],{},"Seconds per piece",[43,542,543],{},"2.2",[43,545,546],{},"5.2",[28,548,549,552,555],{},[43,550,551],{},"Tokens per piece",[43,553,554],{},"1,967",[43,556,557],{},"3,066",[10,559,560],{},"Then a stronger model read the twelve pairs as a listener, without being told which was which. It preferred the new piece in seven pairs and the old in three, with two ties. That reading is not fully blind, because a piece that opens on its own title is recognisably the old format.",[10,562,563],{},"The more useful result was what the reading found. Four defects in the new pipeline showed up in those twelve pairs, and each was fixed the same hour with a test: a sentence cut in the middle of a spelled-out acronym, invented callers, \"10th\" read as \"ten th\", and notes about \"the source\" read on air. A second read of the two weakest segment types found four more. Measuring was worth more than the score.",[10,565,566],{},"So the honest summary is: clearly better, not ten times better, at two and a half times the model time per piece. The gains that are closer to tenfold are structural. The station costs nothing when nobody listens. A wrong word no longer reaches the air unheard. A new segment type is one entry in one file.",[17,568,570],{"id":569},"the-site","The site",[164,572,573,579,585,595],{},[114,574,575,578],{},[117,576,577],{},"Foundations."," Pull requests are checked for commit style, built, linted and tested in a browser at three widths. A second job screenshots the site before and after each change. Releases and the changelog are generated.",[114,580,581,584],{},[117,582,583],{},"Navigation."," One header for every width, a menu that works with a keyboard, and pickers for language and colour mode that announce their state.",[114,586,587,590,591,594],{},[117,588,589],{},"Design system."," Colours, containers, buttons and labels are shared classes. A reference page at ",[185,592,593],{},"/colors"," shows them in the current colour mode. Along the way: the site's Tailwind stylesheet had not been applied since the move to Nuxt 4, and the existing tests passed on a visibly broken page, so layout tests were added.",[114,596,597,600],{},[117,598,599],{},"Project registry."," One data file per project feeds the list below and the status block at the top of each project article.",[17,602,604],{"id":603},"who-did-what","Who did what",[10,606,607],{},"Everything so far was done by one model, Claude Fable 5.2, working in a terminal session with access to the repositories and read access to the cluster. The comparison Brian asked for, the same tasks handed to a local model through Hermes, has not been run yet. The radio work is a preview of what it will show: the local model is a capable writer inside a tight structure and an unreliable judge of its own work.",[17,609,611],{"id":610},"log","Log",[159,613,615],{"id":614},"_13-november-2026","13 November 2026",[164,617,618,621,624,627,630],{},[114,619,620],{},"hn.fm story videos: a narrated story is now one HyperFrames composition, and the Hermes agent directs it. For each scene the agent returns a small card (a figure, a comparison, bars, a list, a phrase and so on), code checks the card against the narration and builds the scene. The agent works from a profile with no tools and its own key.",[114,622,623],{},"A check of every model on the desk. Eight of ten answer. No model that can read pictures is running, which is the one real gap; the video-clip model is stopped on purpose.",[114,625,626],{},"One of each kind of output made from the day's stories: an illustrated episode, an audio episode, a digest (not sent), a radio block and three story videos. All were made. Doing it turned up five faults, now fixed, among them a digest of \"the last day\" that was filled with stories from September.",[114,628,629],{},"A draft article about hn.fm as it is now, with that day's output to play, is on its own pull request.",[114,631,632],{},"The cluster's writing model had stopped answering for a day and was restarted.",[159,634,636],{"id":635},"_12-november-2026-later","12 November 2026, later",[164,638,639,642,645],{},[114,640,641],{},"Radio production switched off at Brian's direction; the station plays what it has and makes episodes when asked.",[114,643,644],{},"Sound design, the cast, three new segments, whole-hour episodes, cover art, edition pages, edition video and the desk built, tested (116 radio tests, 593 in all) and deployed. Six more issues filed under a second milestone, each updated with what was done and what was not.",[114,646,647],{},"First whole-hour episode made on the cluster, with its video.",[159,649,651],{"id":650},"_12-november-2026","12 November 2026",[164,653,654,657,660,663,666,669,672,675],{},[114,655,656],{},"hn.fm radio rebuilt and merged in the project repository; thirteen issues filed there, twelve under one milestone, eleven of them updated with results.",[114,658,659],{},"Chart fixed to point at inference services that exist. Radio made deployable with no new secrets, switched on, and confirmed: the stream decodes.",[114,661,662],{},"Found that story fetching had been paused on the deployed copy since the end of September. Fetching and scoring were resumed, as part of rebooting the project. Generation (the e-reader digests and automatic videos) was left paused, because it sends mail.",[114,664,665],{},"First evaluation round run; eight defects found by reading the output and fixed.",[114,667,668],{},"Twenty-four blocks made on the cluster; nineteen archived.",[114,670,671],{},"A deploy stopped for a reason nobody would guess: one commit's twelve-character id was all digits, so the image tag was read as a number and the chart refused to render. The build was green and the old release kept running. Found by watching the rollout; the tag is now written in quotes.",[114,673,674],{},"The hn.fm article given a marked update section.",[114,676,677],{},"Project registry, projects page and this log added to the site.",[159,679,681],{"id":680},"_11-november-2026","11 November 2026",[164,683,684,687,690],{},[114,685,686],{},"Milestones and issues created for the whole effort.",[114,688,689],{},"Foundations and the navigation rebuild merged and deployed.",[114,691,692],{},"Design-system pull request opened.",{"title":694,"searchDepth":695,"depth":695,"links":696},"",2,[697,698,699,709,710,711],{"id":19,"depth":695,"text":20},{"id":108,"depth":695,"text":109},{"id":153,"depth":695,"text":154,"children":700},[701,703,704,705,706,707,708],{"id":161,"depth":702,"text":162},3,{"id":191,"depth":702,"text":192},{"id":248,"depth":702,"text":249},{"id":307,"depth":702,"text":308},{"id":391,"depth":702,"text":392},{"id":436,"depth":702,"text":437},{"id":472,"depth":702,"text":473},{"id":569,"depth":695,"text":570},{"id":603,"depth":695,"text":604},{"id":610,"depth":695,"text":611,"children":712},[713,714,715,716],{"id":614,"depth":702,"text":615},{"id":635,"depth":702,"text":636},{"id":650,"depth":702,"text":651},{"id":680,"depth":702,"text":681},false,"2026-11-12","A running account of rebuilding this site and bringing old contest projects back to life with current models, written as the work happens",true,"md",null,{},"/2026/11/12/reviving-old-projects-with-ai-working-log",{"title":5,"description":719},"2026/11/12/reviving-old-projects-with-ai-working-log",[728,729,730,731,732],"ai","agents","nuxt","hnfm","local-inference","9dDaM3NeSTAdYkY3wg_EaIQgyYEow15P8cx3l0SE5RA",[735,780,804,828,854,878],{"id":736,"title":737,"article":738,"event":739,"extension":740,"meta":741,"now":772,"repo":746,"slug":731,"status":747,"stem":775,"summary":745,"then":776,"updated":718,"video":722,"year":744,"__hash__":779},"projects/projects/hnfm.yml","hn.fm","/2025/09/09/hnfm-openai-gpt-oss-hackathon-project-hacker-news-ai-podcast-app","OpenAI Open Model Hackathon","yml",{"path":742,"body":743},"/projects/hnfm",{"slug":731,"title":737,"year":744,"summary":745,"article":738,"repo":746,"event":739,"status":747,"updated":718,"then":748,"now":759},2025,"Hacker News turned into audio and video by local models: narrated episodes, a daily digest, and now an internet radio station with six shows a day.","https://github.com/briancaffey/hn.fm","running",{"stack":749,"models":754},[750,751,752,753],"FastAPI and Celery","Nuxt","InvokeAI","Docker Compose on one PC",[755,756,757,758],"gpt-oss-20b","Dia","WhisperX","FLUX.1 Krea",{"stack":760,"models":765,"notes":771},[761,762,763,764],"Helm chart on a home k3s cluster","GitOps: Forgejo Actions build, Argo CD deploys","Postgres, Redis and an S3-compatible object store","Liquidsoap and Icecast for the radio",[766,767,768,769,770],"Nemotron 3.5 Lightning","Magpie TTS","ACE-Step 1.5","FLUX.3 Klein","Nemotron ASR","Rebuilt in November 2026 as a radio station. A format clock decides the shape of each hour; the model only chooses stories and writes. Every spoken line is transcribed and checked against its script before it airs.",{"stack":773,"models":774,"notes":771},[761,762,763,764],[766,767,768,769,770],"projects/hnfm",{"stack":777,"models":778},[750,751,752,753],[755,756,757,758],"29B8fN9YWyi29lCNf8J5uPoJ5CZzpAO6dyy97VCpNQw",{"id":781,"title":782,"article":783,"event":784,"extension":740,"meta":785,"now":722,"repo":790,"slug":788,"status":791,"stem":799,"summary":789,"then":800,"updated":722,"video":722,"year":744,"__hash__":803},"projects/projects/flux-plugin-for-g-assist.yml","Flux Plug-in for Project G-Assist","/2025/07/17/flux-plugin-for-project-g-assist-hackathon","Project G-Assist Hackathon",{"path":786,"body":787},"/projects/flux-plugin-for-g-assist",{"slug":788,"title":782,"year":744,"summary":789,"article":783,"repo":790,"event":784,"status":791,"then":792},"flux-plugin-for-g-assist","A plug-in that lets the G-Assist overlay generate and edit images by voice or text while a game is running.","https://github.com/briancaffey/flux-plugin-for-g-assist","archived",{"stack":793,"models":796},[794,795,752],"Project G-Assist plug-in","NIM",[797,798],"FLUX.1-dev","FLUX.1 Kontext","projects/flux-plugin-for-g-assist",{"stack":801,"models":802},[794,795,752],[797,798],"qksH_NhNNtIy4_o78IuLzXV7QZ2NVfbbdcNA00_gypQ",{"id":805,"title":806,"article":807,"event":808,"extension":740,"meta":809,"now":722,"repo":814,"slug":812,"status":791,"stem":823,"summary":813,"then":824,"updated":722,"video":722,"year":744,"__hash__":827},"projects/projects/mediation-simulator.yml","Mediation Simulator","/2025/05/27/mediation-simulator-project-for-nvidia-agent-intelligence-toolkit","NVIDIA Agent Intelligence Toolkit Hackathon",{"path":810,"body":811},"/projects/mediation-simulator",{"slug":812,"title":806,"year":744,"summary":813,"article":807,"repo":814,"event":808,"status":791,"then":815},"mediation-simulator","Simulated mediation sessions for law students: generated cases, parties played by agents, and a mediator you can practise against.","https://github.com/briancaffey/mediation-simulator",{"stack":816,"models":820},[817,818,795,819],"NVIDIA Agent Intelligence Toolkit","LangGraph","Milvus",[821,822,797],"Qwen3 8B","Llama 3.1 70B Instruct","projects/mediation-simulator",{"stack":825,"models":826},[817,818,795,819],[821,822,797],"zAgF0SeW1FJ_dGXsRMLlhXhyfaUCaQqYDV6i44e1hhg",{"id":829,"title":830,"article":831,"event":832,"extension":740,"meta":833,"now":722,"repo":839,"slug":836,"status":791,"stem":849,"summary":838,"then":850,"updated":722,"video":722,"year":837,"__hash__":853},"projects/projects/agents-of-inference.yml","Agents of Inference","/2024/06/17/agents-of-inference-nvidia-and-langchain-generative-ai-agent-developer-contest","NVIDIA and LangChain Generative AI Agents Developer Contest",{"path":834,"body":835},"/projects/agents-of-inference",{"slug":836,"title":830,"year":837,"summary":838,"article":831,"repo":839,"event":832,"status":791,"then":840},"agents-of-inference",2024,"A team of agents that writes a short spy film and produces it: script, shots, images, clips and narration.","https://github.com/briancaffey/agents-of-inference",{"stack":841,"models":844},[818,842,843],"TensorRT-LLM","ComfyUI",[845,846,847,848],"Llama 3 8B Instruct","Llama 3 70B","Stable Diffusion","Stable Video Diffusion","projects/agents-of-inference",{"stack":851,"models":852},[818,842,843],[845,846,847,848],"5LG-n3IB6qY_UXKYwk0mESkEUh4US6kA28zmSaKRD7I",{"id":855,"title":856,"article":857,"event":858,"extension":740,"meta":859,"now":722,"repo":864,"slug":862,"status":791,"stem":873,"summary":863,"then":874,"updated":722,"video":722,"year":837,"__hash__":877},"projects/projects/redlm.yml","RedLM","/2024/10/09/redlm-ai-application-for-studying-chinese-literature-redology-nvidia-llama-index-developer-contest","NVIDIA and LlamaIndex Developer Contest",{"path":860,"body":861},"/projects/redlm",{"slug":862,"title":856,"year":837,"summary":863,"article":857,"repo":864,"event":858,"status":791,"then":865},"redlm","A study companion for Dream of the Red Chamber: question answering over the novel, with a vision model that reads its paintings.","https://github.com/briancaffey/RedLM",{"stack":866,"models":869},[867,868,842,819],"LlamaIndex","vLLM",[870,871,872],"Qwen2 7B Instruct","Qwen2-VL 2B","Llama 3.2 90B Vision","projects/redlm",{"stack":875,"models":876},[867,868,842,819],[870,871,872],"o-4VatagJLABqrG5qhkbl6nhetUW42V8MRa3xjI2Zvk",{"id":879,"title":880,"article":881,"event":882,"extension":740,"meta":883,"now":722,"repo":888,"slug":886,"status":791,"stem":895,"summary":887,"then":896,"updated":722,"video":722,"year":837,"__hash__":899},"projects/projects/rocket-league-botchat.yml","Rocket League BotChat","/2024/02/17/rocket-league-botchat-nvidia-generative-ai-on-rtx-pcs-developer-contest","NVIDIA Generative AI on RTX PCs Developer Contest",{"path":884,"body":885},"/projects/rocket-league-botchat",{"slug":886,"title":880,"year":837,"summary":887,"article":881,"repo":888,"event":882,"status":791,"then":889},"rocket-league-botchat","A Rocket League plug-in that has the bots trash-talk in chat, written by a local language model reacting to what happens in the match.","https://github.com/briancaffey/RocketLeagueBotChat",{"stack":890,"models":893},[842,891,892],"BakkesMod plug-in","Windows, RTX GPU",[894],"Llama 2 13B Chat","projects/rocket-league-botchat",{"stack":897,"models":898},[842,891,892],[894],"9btaJZNvjCBXEcOAFIjHlUfq-FARoF9xYO67FqPDAzM",1794698255234]