Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
153429 stories
·
33 followers

Amazon Relents, Lets its Programmers Use OpenAI's Codex and Anthropic's Claude

1 Share
An anonymous reader shared this report from Futurism: In November, Amazon leaders sent an internal memo to employees, pushing them to use its in-house code generating tool, Kiro, over third-party alternatives from competitors. "While we continue to support existing tools in use today, we do not plan to support additional third party, AI development tools," the memo read, as quoted by Reuters at the time. "As part of our builder community, you all play a critical role shaping these products and we use your feedback to aggressively improve them." It was an unusual development, considering the tens of billions of dollars the e-commerce giant has invested in its competitors in the space, including Anthropic and OpenAI... Half a year later, Amazon is singing a dramatically different tune. As Business Insider reports, Amazon is officially throwing in the towel, succumbing to growing calls among employees for access to OpenAI's Codex and Anthropic's Claude... Given the unfortunate optics of opening the floodgates for Codex and Claude Code, an Amazon spokesperson told the publication in a statement that teams are still "primarily using" Kiro, claiming that 83 percent of engineers at the company are leaning on it.

Read more of this story at Slashdot.

Read the whole story
alvinashcraft
23 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Week in Review: Most popular stories on GeekWire for the week of May 3, 2026

1 Share

Get caught up on the latest technology and startup news from the past week. Here are the most popular stories on GeekWire for the week of May 3, 2026.

Sign up to receive these updates every Sunday in your inbox by subscribing to our GeekWire Weekly email newsletter.

Most popular stories on GeekWire

Read the whole story
alvinashcraft
23 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Random.Code() - Adding Replacement Capabilities to Rocks, Part 2

1 Share
From: Jason Bock
Duration: 1:21:24
Views: 7

In this stream, I'll continue working on adding replacement capabilities to Rocks.

https://github.com/JasonBock/Rocks/issues/410

#dotnet #csharp #roslyn

Read the whole story
alvinashcraft
24 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Unity AI is genuinely useful, and make your own Steam Controller!

1 Share

Hello and Welcome, I’m your Code Monkey!

I'm finally back from my travels, Brazil and Gamescom Latam were awesome but it's time to get back to work, there's so much stuff on my to-do list!

I got back Wednesday at 6am, took a quick nap and got right to work on building challenge #4 for my Game Dev Practice Lab, this is the first 2D challenge which a lot of people have been asking about. It is already live and later today I will publish the FREE YouTube video talking about challenges #2 and #3. So whether you can afford it or not it doesn't matter, go learn by DOING!

  • Game Dev: Unity AI useful

  • Tech: Make your own Steam Controller

  • Gaming: Fight your unplayed Games!

  • Fun: Glue THIS to THAT!



Game Dev

Unity AI is genuinely useful!

Unity AI has just entered into Open Beta, meaning anyone who wants to try it can, no need to request access, you can try it out here.

I'm currently researching Unity AI for a super detailed tutorial and so far in my research I am finding the tool is actually genuinely helpful! This is not mindless AI hype, and it's not even focused on AI generation, but rather is capable of building genuinely useful things like custom editor tools, helping you analyze the profiler, taking actions in your project, it can see your project visually, it can do basic level design, helps you organize your codebase, fix bugs (with context of your project) and a bunch more.

Like I said I'm still in the research phase but thankfully Unity actually invited me to be a guest of their Unity AI livestream showcase which was quite educational to me. They showed how they built a really nice demo and included a ton of useful hints for how to get the most out of these tools.

The demo is a vehicle combat game in an arena where the player controls a car and the NPC trucks spawn and try to destroy the player. The demo was built with a handful of the developers WITH AI, not replaced by it. Meaning in order for this AI to be useful it required actually developers who know how to get the most out of the AI.

You can watch the full livestream but here are the main useful takeaways that I got myself:

  • Build systems and learn. At 13:00 they showcase terrain deformation which I personally found really nice. And they describe how they used AI to help come up with that system. Personally this is something that I've wanted to research for ages and I think AI is super useful in this process, you can ask it to help you build such a system like they did, and then importantly ask it to help you understand WHY it works. The fact that this AI exists inside Unity means it has context of Unity itself and game development, so it's much better at building systems like these that rely on shaders and rendering as opposed to a generic LLM.

  • Use it for editor tools. At 18:00 they showcase a simple editor tool made with AI that helps position all the modular pieces to make an arena of any size. Super important takeaway: Ask AI to give you tons of sliders and settings so you can manually make it perfect, because the AI output will not be perfect.

  • Great for research. At 26:00 they wanted to have some robots cheering, but did not know which approach would be best, so they just asked AI and it gave them 3 possible options with their pros and cons, another great learning example. And after picking an option (in this case Vertex Animated Textures) the AI helped implement that system (with another custom tool)

  • Profiler Analysis. At 33:20 the game was having performance issues, so they asked AI what could be the cause and it identified a very niche issue, one ProBuilder mesh had super insanely long triangles which apparently tanks performance. This is one of those things that is hard to find and easy to fix, and "finding" things is where AI excels.

There's a lot more uses they showed in the livestream, like making a Hexagon shader to protect the robots, generating the UI and the code behind it, generating the statue and vehicles and more.

Some general best practices:

  • Break problems down. Don't ask "build me an entire game", instead ask "help me with this tiny specific task", then ask for another one, etc. Many tiny tasks instead of huge ones.

  • Be as descriptive as possible, the more detail the better

  • Generate characters in T-pose to make them easier to animate.

  • When generating sprites, ask for a solid color background (like green) to make it easier to remove later.

  • Ask for editor tools with tons of fine-tuning sliders

  • Ask it brainstorming questions instead of asking for a specific output. "I have some robots in the stands and I want a shield to protect them, give me 5 possible approaches for solving this problem"

  • Use screenshots and images to visually guide the AI if you want a visual task (like level design or particle effects)

  • Drag related prefabs and assets to give more context to the AI

  • Use Plan mode to come up with a plan before you attempt any changes

Again the main thing here is this is NOT "AI will make the game for you" but rather "your skills + AI will help you make better games faster". As always it's a tool meant to help you, not replace you. So give it a try here and see how it helps you in your workflow.

In terms of pricing, here is their page. On the Free Unity Personal plan you get 1000 free credits you can try out, and after that you can pay $10 per month. If you're on the Unity Pro tier you get 2000 credits per month. Then you can buy more separately if you need them. Different tasks require different credits, for example generating a sprite is 5-10 credits, and a quick query is 2-5 credits, so it feels like 1000 is actually a pretty decent amount. Example: This demo which had very heavy usage of AI (with lots of trial and error) was built with around 1800 credits.

At the end of the livestream I asked if this demo would be available for download so we could inspect all of it and they mentioned how they hadn't considered it but maybe.

I am very very curious to see how people adopt these AI tools. From my limited research so far (and AI in general) I would say learning how to use these tools is the most important thing. Knowing the best practices for how to break tasks down and knowing how to prompt correctly are crucial to getting the best results, so I look forward to seeing how those best practices come to be. Stay tuned for my dedicated video tutorial coming out in the near future.


Affiliate

Surprising Bundle 94% OFF, FREE Shader

Unity is running an surprising bundle! Surprising because I instantly spotted how it contains one of my most recommended assets of all time, that I definitely did not expect to be bundled!

It’s worth it for that asset alone (Asset Inventory) and on top of that getting all the other assets is just an awesome bonus. The whole thing has a huge discount and it’s mostly made up of new assets so you probably don’t have any yet. (I only had one asset myself)

Get it HERE!

The Publisher of the Week this time is Daniel Ilett, who makes a bunch of useful URP shaders.

Get the FREE Toon Shaders Pro for URP which is a really nice toon shader with a ton of rendering options.

Get it HERE and use coupon DANIELILETT at checkout to get it for FREE!

Looking for Characters and Weapons in a realistic style to make your games? Check out this awesome HumbleBundle!

It’s made by Bugrimov Maksim which is one of the best realistic publishers. This pack has a mountain of characters in all styles, alongside a ton of weapons with first person animations.

It’s 98% OFF! Get it HERE!


Tech

Make your own Steam Controller!

Valve is such a weird company, but usually weird in the good way. (although I do wish they would lower their 30% cut for indie games)

They just released their latest piece of hardware, the Steam Controller, and pretty much instantly it went out of stock. You can't buy it on the official site for $99 (although there are already scalpers on ebay selling them for $300)

While you wait for more official stock, you can actually build one yourself! By that I mean that Valve has just released the CAD files for the Steam Controller and its Puck under a slightly restrictive Creative Commons license, which means people can now freely download the official shell files, modify them, 3D print accessories, and make all sorts of weird custom creations, as long as it is non-commercial.

They also included engineering drawings and "keep out" zones so people do not accidentally block things like the antenna or other critical areas.

Now technically you can't really build your own complete Steam Controller, these files are for the external shell and not the internals, but still this is pretty fun for them to do! Usually things like console shells are proprietary so it's nice to see a big company just put them out for anyone to build third party accessories for. There's a nice Valve-like message on the GitLab page: "Your Steam Controller is yours, and you have the right to do with it what you want."

I am now curious to see what people will build from this. A giant Steam Controller? A cursed ergonomic shell? A phone mount? A clever puck holder with flashing lights? This is one of those stories that is just fun, and I really hope the community goes crazy with creativity.



Fun

Glue THIS to THAT!

Glue (or more technically, adhesives) is a fascinating thing. How do you connect one thing to another thing? It is also a surprisingly complex topic since you need different glue types to glue different objects. Gluing a Hat to a piece of Wood? You need something different than if you were gluing Metal to Plastic.

Here is a fun website that shows you what you need to glue THIS to THAT. You just pick the this and that from the dropdown menu and it tells you what works best, neat!

Plus there's a Trivia page! Did you know that "The Aztec Indians in Central America used animal blood mixed with cement as a mortar for their buildings"?

I love super niche websites like these, so silly but so useful when you really need it. Now I know that if I ever want to glue Ceramic to some Rubber that I should be using Household Goop




Get Rewards by Sending the Game Dev Report to a friend!

(please don’t try to cheat the system with temp emails, it won’t work, just makes it annoying for me to validate)

Thanks for reading!

Code Monkey

Read the whole story
alvinashcraft
24 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

From Pet Projects to +20 Open Source NuGet Packages, Thanks to GitHub Copilot 🚀

1 Share

⚠ This blog post was created with the help of AI tools. Yes, I used a bit of magic from language models to organize my thoughts and automate the boring parts, but the geeky fun and the 🤖 in C# are 100% mine.

Hi!

Some of these started as small pet projects.

IE: a quick helper for a demo, a tiny tool for a conference, a library to avoid repeating the same code again and again, or one of those “I’ll just build this in one evening” ideas that somehow becomes a real thing.

And now, thanks to GitHub Copilot, many of these experiments are becoming open source, free NuGet packages that I hope are useful to everyone.

Some are focused on AI. Some are focused on local models. Some help with embeddings, speech, QR codes, document processing, MCP tools, agents, and developer productivity.

In other words: a beautiful collection of useful chaos.


Quick package index

Versions are current as of the latest dashboard snapshot: 2026-05-10.
Dashboard repo: https://github.com/elbruno/nuget-repo-dashboard

PackageVersionNuGetGitHub
ElBruno.AI.Evaluation0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluationhttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AI.Evaluation.Reporting0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluation.Reportinghttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AI.Evaluation.SyntheticData0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluation.SyntheticDatahttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AI.Evaluation.Xunit0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluation.Xunithttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AgentsOrchestration.Abstractions0.5.5https://www.nuget.org/packages/ElBruno.AgentsOrchestration.Abstractionshttps://github.com/elbruno/elbruno.agentsorchestration
ElBruno.AgentsOrchestration.Orchestration0.5.5https://www.nuget.org/packages/ElBruno.AgentsOrchestration.Orchestrationhttps://github.com/elbruno/elbruno.agentsorchestration
ElBruno.AotMapper0.6.0https://www.nuget.org/packages/ElBruno.AotMapperhttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AotMapper.AspNetCore0.6.0https://www.nuget.org/packages/ElBruno.AotMapper.AspNetCorehttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AotMapper.EntityFramework0.6.0https://www.nuget.org/packages/ElBruno.AotMapper.EntityFrameworkhttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AotMapper.Generator0.6.0https://www.nuget.org/packages/ElBruno.AotMapper.Generatorhttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AspireMonitor1.5.0https://www.nuget.org/packages/ElBruno.AspireMonitorhttps://github.com/elbruno/ElBruno.AspireMonitor
ElBruno.BM250.5.0https://www.nuget.org/packages/ElBruno.BM25https://github.com/ElBruno/ElBruno.BM25
ElBruno.ClockTray1.0.0https://www.nuget.org/packages/ElBruno.ClockTrayhttps://github.com/elbruno/ElBruno.ClockTray
elbruno.Extensions.AI.Skills.Corehttps://www.nuget.org/packages/elbruno.Extensions.AI.Skills.Corehttps://github.com/elbruno/elbruno-agentskills
elbruno.Extensions.AI.Skills.Clihttps://www.nuget.org/packages/elbruno.Extensions.AI.Skills.Clihttps://github.com/elbruno/elbruno-agentskills
ElBruno.HuggingFace.Downloader1.1.0https://www.nuget.org/packages/ElBruno.HuggingFace.Downloaderhttps://github.com/elbruno/ElBruno.HuggingFace.Downloader
ElBruno.HuggingFace.Downloader.Clihttps://www.nuget.org/packages/ElBruno.HuggingFace.Downloader.Clihttps://github.com/elbruno/ElBruno.HuggingFace.Downloader
ElBruno.LocalEmbeddings1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddingshttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Harrier1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Harrierhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.ImageEmbeddings1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.ImageEmbeddingshttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.ImageEmbeddings.Downloader1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.ImageEmbeddings.Downloaderhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.KernelMemory1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.KernelMemoryhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Npu1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Npuhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Npu.Intel1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Npu.Intelhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Npu.Qualcomm1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Npu.Qualcommhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.VectorData1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.VectorDatahttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalLLMs0.16.0https://www.nuget.org/packages/ElBruno.LocalLLMshttps://github.com/elbruno/ElBruno.LocalLLMs
ElBruno.LocalLLMs.BitNet0.16.0https://www.nuget.org/packages/ElBruno.LocalLLMs.BitNethttps://github.com/elbruno/ElBruno.LocalLLMs
ElBruno.LocalLLMs.Rag0.16.0https://www.nuget.org/packages/ElBruno.LocalLLMs.Raghttps://github.com/elbruno/ElBruno.LocalLLMs
ElBruno.MarkItDotNet0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNethttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.AI0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.AIhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.AzureSearch0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.AzureSearchhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Chunking0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Chunkinghttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Citations0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Citationshttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Cli0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Clihttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.CoreModel0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.CoreModelhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.DocumentIntelligence0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.DocumentIntelligencehttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Excel0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Excelhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Metadata0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Metadatahttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.PowerPoint0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.PowerPointhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Quality0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Qualityhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Sync0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Synchttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.VectorData0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.VectorDatahttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Whisper0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Whisperhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.ModelContextProtocol.MCPToolRouter0.6.0https://www.nuget.org/packages/ElBruno.ModelContextProtocol.MCPToolRouterhttps://github.com/elbruno/ElBruno.ModelContextProtocol
ElBruno.OllamaMonitor0.7.0https://www.nuget.org/packages/ElBruno.OllamaMonitorhttps://github.com/elbruno/ElBruno.OllamaMonitor
ElBruno.OllamaSharp.Extensions1.0.2https://www.nuget.org/packages/ElBruno.OllamaSharp.Extensionshttps://github.com/elbruno/elbruno.OllamaSharp.Extensions
ElBruno.PersonaPlex0.6.0https://www.nuget.org/packages/ElBruno.PersonaPlexhttps://github.com/elbruno/ElBruno.PersonaPlex
ElBruno.QRCodeGenerator.Ascii1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Asciihttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.CLI1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.CLIhttps://github.com/elbruno/ElBruno.QRCodeGenerator.CLI
ElBruno.QRCodeGenerator.Image1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Imagehttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Payloads1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Payloadshttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Pdf1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Pdfhttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Svg1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Svghttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Tool1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Toolhttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QwenTTS1.4.7https://www.nuget.org/packages/ElBruno.QwenTTShttps://github.com/elbruno/ElBruno.QwenTTS
ElBruno.QwenTTS.VoiceCloning1.4.7https://www.nuget.org/packages/ElBruno.QwenTTS.VoiceCloninghttps://github.com/elbruno/ElBruno.QwenTTS
ElBruno.Realtime0.10.0https://www.nuget.org/packages/ElBruno.Realtimehttps://github.com/elbruno/ElBruno.Realtime
ElBruno.Realtime.SileroVad0.10.0https://www.nuget.org/packages/ElBruno.Realtime.SileroVadhttps://github.com/elbruno/ElBruno.Realtime
ElBruno.Realtime.Whisper0.10.0https://www.nuget.org/packages/ElBruno.Realtime.Whisperhttps://github.com/elbruno/ElBruno.Realtime
ElBruno.Reranking0.5.1https://www.nuget.org/packages/ElBruno.Rerankinghttps://github.com/elbruno/ElBruno.Reranking
ElBruno.Text2Image1.2.11https://www.nuget.org/packages/ElBruno.Text2Imagehttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Cli1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Clihttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Cpu1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Cpuhttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Cuda1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Cudahttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.DirectML1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.DirectMLhttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Foundry1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Foundryhttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.VibeVoiceTTS0.5.0https://www.nuget.org/packages/ElBruno.VibeVoiceTTShttps://github.com/elbruno/ElBruno.VibeVoiceTTS
ElBruno.Whisper0.2.0https://www.nuget.org/packages/ElBruno.Whisperhttps://github.com/elbruno/ElBruno.Whisper
graphify-dotnet0.6.1https://www.nuget.org/packages/graphify-dotnethttps://github.com/elbruno/graphify-dotnet
MemPalace.Core0.15.2https://www.nuget.org/packages/MemPalace.Corehttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Ai0.15.2https://www.nuget.org/packages/MemPalace.Aihttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Agents0.15.2https://www.nuget.org/packages/MemPalace.Agentshttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Backends.Sqlite0.15.2https://www.nuget.org/packages/MemPalace.Backends.Sqlitehttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.KnowledgeGraph0.15.2https://www.nuget.org/packages/MemPalace.KnowledgeGraphhttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Mcp0.15.2https://www.nuget.org/packages/MemPalace.Mcphttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Mining0.15.2https://www.nuget.org/packages/MemPalace.Mininghttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Search0.15.2https://www.nuget.org/packages/MemPalace.Searchhttps://github.com/elbruno/ElBruno.MempalaceNet
mempalacenet0.15.2https://www.nuget.org/packages/mempalacenethttps://github.com/elbruno/ElBruno.MempalaceNet
mempalacenet-bench0.15.2https://www.nuget.org/packages/mempalacenet-benchhttps://github.com/elbruno/ElBruno.MempalaceNet

AI evaluation: because demos are easy, validation is the hard part

The ElBruno.AI.Evaluation family is about bringing testing discipline to AI apps.

Packages:

  • ElBruno.AI.Evaluation
  • ElBruno.AI.Evaluation.Reporting
  • ElBruno.AI.Evaluation.SyntheticData
  • ElBruno.AI.Evaluation.Xunit

Repo:

https://github.com/elbruno/elbruno-ai-evaluation

These packages help with evaluation workflows, reporting, synthetic test data, and xUnit integration. The idea is simple: AI applications should not rely only on “it worked once in my demo.”

They need repeatable checks.

They need quality gates.

They need tests that can run again tomorrow, when the model, prompt, data, or weather in the cloud changes.

Because yes, AI apps are fun. But “trust me bro, the prompt is good” is not a testing strategy.


Agents and orchestration

The agents orchestration packages are focused on coordinating multiple AI agents through a lightweight workflow.

Packages:

  • ElBruno.AgentsOrchestration.Abstractions
  • ElBruno.AgentsOrchestration.Orchestration

Repo:

https://github.com/elbruno/elbruno.agentsorchestration

This is useful when you want agents to do more than just reply to a prompt. The orchestration repo describes a 6-step pipeline:

Plan → Parse → Execute → Verify → Review → Report

That is a nice mental model for agent-based workflows. It also fits very well with GitHub Copilot, SQUAD-style automation, and repo-based development experiments.

Because once you have more than one agent, you need orchestration.

Otherwise, congratulations, you invented a very expensive group chat.


AOT-friendly mapping for .NET

The ElBruno.AotMapper family is focused on compile-time DTO mapping.

Packages:

  • ElBruno.AotMapper
  • ElBruno.AotMapper.AspNetCore
  • ElBruno.AotMapper.EntityFramework
  • ElBruno.AotMapper.Generator

Repo:

https://github.com/elbruno/ElBruno.AotMapper

This project is especially interesting for modern .NET workloads because it avoids runtime reflection and generates mapping code at compile time.

That makes it useful for:

  • NativeAOT apps
  • trimmed applications
  • cloud-native workloads
  • serverless scenarios
  • places where startup time and predictability matter

In short: less runtime magic, more generated code that you can actually inspect.

And sometimes that is exactly what you want.


Local embeddings

The ElBruno.LocalEmbeddings family is one of the most useful groups for AI developers building RAG, semantic search, local-first AI apps, or privacy-aware demos.

Packages include:

  • ElBruno.LocalEmbeddings
  • ElBruno.LocalEmbeddings.Harrier
  • ElBruno.LocalEmbeddings.ImageEmbeddings
  • ElBruno.LocalEmbeddings.ImageEmbeddings.Downloader
  • ElBruno.LocalEmbeddings.KernelMemory
  • ElBruno.LocalEmbeddings.Npu
  • ElBruno.LocalEmbeddings.Npu.Intel
  • ElBruno.LocalEmbeddings.Npu.Qualcomm
  • ElBruno.LocalEmbeddings.VectorData

Repo:

https://github.com/elbruno/elbruno.localembeddings

This family gives you local embedding generation in .NET, including support for text embeddings, image embeddings, vector data integrations, Kernel Memory, and NPU-specific packages.

The NPU packages are especially cool because they connect directly with the AI PC story.

Not every embedding call needs to cross the internet.

Sometimes the best cloud call is the one you did not make.


Local LLMs

The ElBruno.LocalLLMs packages are focused on running and integrating local language models from .NET.

Packages:

  • ElBruno.LocalLLMs
  • ElBruno.LocalLLMs.BitNet
  • ElBruno.LocalLLMs.Rag

Repo:

https://github.com/elbruno/ElBruno.LocalLLMs

These are useful for local chat, local model experimentation, and RAG-style workflows.

Cloud models are amazing. But sometimes you want the model running right there next to your code, your logs, your fan noise, and your questionable coffee.


MarkItDotNet: from files to AI-ready Markdown

The ElBruno.MarkItDotNet family is probably one of the biggest and most useful areas in this package collection.

Packages include:

  • ElBruno.MarkItDotNet
  • ElBruno.MarkItDotNet.AI
  • ElBruno.MarkItDotNet.AzureSearch
  • ElBruno.MarkItDotNet.Chunking
  • ElBruno.MarkItDotNet.Citations
  • ElBruno.MarkItDotNet.Cli
  • ElBruno.MarkItDotNet.CoreModel
  • ElBruno.MarkItDotNet.DocumentIntelligence
  • ElBruno.MarkItDotNet.Excel
  • ElBruno.MarkItDotNet.Metadata
  • ElBruno.MarkItDotNet.PowerPoint
  • ElBruno.MarkItDotNet.Quality
  • ElBruno.MarkItDotNet.Sync
  • ElBruno.MarkItDotNet.VectorData
  • ElBruno.MarkItDotNet.Whisper

Repo:

https://github.com/elbruno/ElBruno.MarkItDotNet

This family is about converting, preparing, enriching, chunking, indexing, validating, and syncing content for AI workflows.

In a typical RAG project, everyone wants the fancy chat UI.

But before that, someone has to solve the real problem:

Can we clean and prepare the documents first?

That is where this package family fits.

It helps turn files into AI-ready Markdown and supports scenarios like document conversion, chunking, metadata extraction, citations, Azure AI Search, Whisper transcription, and quality checks.

Because every RAG project eventually becomes a document-cleanup project wearing an AI hat.


Text-to-image generation

The ElBruno.Text2Image packages provide a .NET-friendly way to work with image generation.

Packages:

  • ElBruno.Text2Image
  • ElBruno.Text2Image.Cli
  • ElBruno.Text2Image.Cpu
  • ElBruno.Text2Image.Cuda
  • ElBruno.Text2Image.DirectML
  • ElBruno.Text2Image.Foundry

Repo:

https://github.com/elbruno/ElBruno.Text2Image

The nice part here is the multi-backend design:

  • CPU
  • CUDA
  • DirectML
  • Microsoft Foundry
  • CLI

That gives you flexibility depending on the machine, the demo, the budget, and how much your GPU is already crying.

One API, multiple ways to make pixels appear like magic.

Very expensive magic sometimes, but still magic.


Realtime audio, Whisper, and voice

This group is about speech, transcription, realtime audio, text-to-speech, and voice scenarios.

Packages:

  • ElBruno.Whisper
  • ElBruno.Realtime
  • ElBruno.Realtime.SileroVad
  • ElBruno.Realtime.Whisper
  • ElBruno.QwenTTS
  • ElBruno.QwenTTS.VoiceCloning
  • ElBruno.VibeVoiceTTS
  • ElBruno.PersonaPlex

Repos:

https://github.com/elbruno/ElBruno.Whisper
https://github.com/elbruno/ElBruno.Realtime
https://github.com/elbruno/ElBruno.QwenTTS
https://github.com/elbruno/ElBruno.VibeVoiceTTS
https://github.com/elbruno/ElBruno.PersonaPlex

This is useful for voice agents, transcription tools, accessibility scenarios, podcast workflows, and realtime conversational demos.

Because sooner or later every AI demo becomes:

Can I talk to it?

And then, ten minutes later:

Why is my microphone still open?


QR code generation

The ElBruno.QRCodeGenerator family is a lightweight utility set for generating QR codes in different formats.

Packages:

  • ElBruno.QRCodeGenerator.Ascii
  • ElBruno.QRCodeGenerator.CLI
  • ElBruno.QRCodeGenerator.Image
  • ElBruno.QRCodeGenerator.Payloads
  • ElBruno.QRCodeGenerator.Pdf
  • ElBruno.QRCodeGenerator.Svg
  • ElBruno.QRCodeGenerator.Tool

Repos:

https://github.com/elbruno/ElBruno.QRCodeGenerator
https://github.com/elbruno/ElBruno.QRCodeGenerator.CLI

This one is very practical: terminal output, images, SVG, PDF, payloads, and a global tool.

Because every conference session eventually needs a QR code.

Usually five minutes before going live.


MCP and tool routing

The ElBruno.ModelContextProtocol.MCPToolRouter package focuses on smarter tool selection for Model Context Protocol scenarios.

Package:

  • ElBruno.ModelContextProtocol.MCPToolRouter

Repo:

https://github.com/elbruno/ElBruno.ModelContextProtocol

This is useful when working with agents that have access to many tools.

Sending every possible tool to the model all the time is not always a good idea. It burns tokens, increases noise, and makes the model work harder than needed.

Tool routing helps select the most relevant tools for the task.

Agents are great.

Agents with 97 tools in context are a token bonfire.


Search, ranking, and retrieval

These packages help with retrieval, ranking, and search scenarios.

Packages:

  • ElBruno.BM25
  • ElBruno.Reranking
  • graphify-dotnet

Repos:

https://github.com/ElBruno/ElBruno.BM25
https://github.com/elbruno/ElBruno.Reranking
https://github.com/elbruno/graphify-dotnet

This group fits nicely into RAG and knowledge discovery workflows.

You need search.

Then you need better search.

Then you need reranking.

Then you need graphs.

Then you realize your “simple chatbot” is now a distributed knowledge system.

Classic.


Developer desktop utilities

These are small tools that make developer life better.

Packages:

  • ElBruno.AspireMonitor
  • ElBruno.ClockTray
  • ElBruno.OllamaMonitor

Repos:

https://github.com/elbruno/ElBruno.AspireMonitor
https://github.com/elbruno/ElBruno.ClockTray
https://github.com/elbruno/ElBruno.OllamaMonitor

These are the kind of tools that start with:

I just need a tiny helper.

And then become useful enough to publish.

AspireMonitor helps with Aspire monitoring.
ClockTray helps with Windows tray clock scenarios.
OllamaMonitor gives quick visibility into local Ollama runtime status.

Tiny tools. Big quality-of-life improvement.

The best kind of yak shaving.


Hugging Face helpers

The Hugging Face downloader packages help with downloading models and related assets from Hugging Face.

Packages:

  • ElBruno.HuggingFace.Downloader
  • ElBruno.HuggingFace.Downloader.Cli

Repo:

https://github.com/elbruno/ElBruno.HuggingFace.Downloader

This is useful across many of the local AI packages, because local AI usually starts with:

Great, now where do I get the model files?

And then:

Why is this model 4 GB?


OllamaSharp extensions

Package:

  • ElBruno.OllamaSharp.Extensions

Repo:

https://github.com/elbruno/elbruno.OllamaSharp.Extensions

This package adds useful extensions around OllamaSharp, especially for scenarios where local LLM calls can take longer and timeout management becomes important.

If you have ever waited for a local model to respond and wondered whether it was thinking, frozen, or silently judging your prompt, this one makes sense.


MemPalace: memory for AI apps

The MemPalace family is focused on memory infrastructure for AI apps and agents.

Packages:

  • MemPalace.Core
  • MemPalace.Ai
  • MemPalace.Agents
  • MemPalace.Backends.Sqlite
  • MemPalace.KnowledgeGraph
  • MemPalace.Mcp
  • MemPalace.Mining
  • MemPalace.Search
  • mempalacenet
  • mempalacenet-bench

Repo:

https://github.com/elbruno/ElBruno.MempalaceNet

This is about local-first AI memory, storage, search, knowledge graphs, agents, MCP integration, mining, and benchmarking.

Because agents without memory are just very confident goldfish.


Closing thoughts

Most of these packages started as small ideas, experiments, demos, or helper libraries.

But this is one of the things I love about modern development with GitHub Copilot: it makes it easier to move from:

This works on my machine

to:

This is packaged, documented, published, open source, and maybe useful for someone else.

Are all of these perfect?

Of course not.

Are they useful?

I hope so.

Are they free, open source, and ready for you to try, break, improve, fork, complain about, and maybe even use in a real project?

Yes. That is the idea.

And as always:

Today, code is cheap. The decisions are expensive.

Happy coding!

Greetings

El Bruno

More posts in my blog ElBruno.com.

More info in https://beacons.ai/elbruno




Read the whole story
alvinashcraft
24 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

How AI Is Changing the Role of .NET Developers

1 Share

Modern .NET applications are increasingly distributed, integrating APIs, background services, and external AI systems. With the rise of AI coding tools such as GitHub Copilot and frameworks like the Microsoft Agent Framework, developers can now generate large portions of application logic.

This raises a question: When AI can generate much of the code, what becomes the core responsibility of a .NET developer?

This article will answer you the above question by sharing a practical case study of that shift—highlighting how architecture, contracts, and observability via Aspire - As systems become more dynamic and AI-driven, observability and orchestration become just as important as implementation.

To explore this in an easy-to-understand way, I built a simple full-stack e-commerce application (“flowershop”) using:

• Vue.js (frontend)

• ASP.NET Core Web API (backend)

• Microsoft Agent Framework (agent orchestration)

• .NET Aspire (distributed tracing and system visibility)

• GitHub Copilot (AI-assisted development)

\ Now, let’s explore!

\ 1. System Overview

The application includes features:• Product browsing and checkout• AI-powered chat assistant• Automated product description generation• End-to-end observability using .NET Aspire

This is final UI (Vue.js + AI Assistant)

Homepage

Admin page

Figure 1. Vue.js frontend with product listing, admin form, and AI assistant.

The frontend communicates with ASP.NET Core APIs, which orchestrates AI agents and external services.

\ 2. Architecture: Orchestrating AI in .NET

Sales Assistant Flow

Sales Agent architecture

Figure 2. Sales Assistant architecture (Vue.js → ASP.NET Core API → Agent → LLM).

In this architecture:• The Vue.js client sends requests to the API• The API routes requests to a Sales Agent• The agent interacts with the LLM and backend tools

Writer Flow

Writer agent architecture

Figure 3. Writer flow for generating product descriptions.

When a product image is uploaded:

  1. The API forwards the request to an agent
  2. The agent interacts with LLM for image understanding
  3. Additional context is retrieved
  4. A final description is generated

Observability and Orchestration with .NET Aspire

Aspire Monitoring

Tool call monitoring

Figure 4. .NET Aspire tracing of LLM interactions and tool calls.

\ Using .NET Aspire, I was able to:

  • Trace full request flows:
  • Vue.js → API → Agent → LLM → Tool calls
  • Inspect tool usage:
  • GetFlowerDetails
  • PlaceOrder
  • SearchFlowersByOccasion
  • Monitor:
  • Latency
  • Token usage
  • Execution paths

\ This is essential because:

AI systems are non-deterministic—without observability, their behavior is difficult to understand and debug.

\ 3. Implementation Challenges

During implementation, I encountered several challenges:

\ Ambiguous Specifications

Initial GitHub issues were short and informal. This led to:

• Misinterpreted requirements

• Inconsistent outputs

AI requires structured and explicit instructions.

\ Loss of Control

AI-generated pull requests often:

• Ignored coding conventions

• Required heavy revision

Effort shifted from writing code to reviewing and testing it manually.

\ Debugging Complexity

  • AI-generated logic was difficult to trace and fix.
  • AI accelerates generation, but not understanding

\ 4. Evolving the Development Approach

To address these challenges, the process was refined.

\ Structured Issue Definition

Issues were rewritten using Markdown, clear requirements, and acceptance criteria, improving clarity and reducing ambiguity [1][2].

\ API Contract Design

Explicit API contracts were introduced to align frontend and backend components, ensuring clear interfaces and predictable integration [3][4].

Contracts become critical when AI generates both sides of a system.

\ Instruction and Agent Design

Custom instructions and configurations were used to guide coding conventions, architecture, and workflow [5][6].

GitHub Copilot setup

Figure 3: Setup GitHub Copilot in project

\ Continuous Learning

Improving outcomes required continuous learning from official documentation and evolving frameworks [7][8].

\ AI amplifies—not replace the need for technical knowledge.

\ 5. Key Lessons for .NET Developers

• Design before generating code

• Be explicit across the system

• Treat AI as a co-engineer

• Invest in observability (Aspire is critical)

\ 6. Discussion: The Shift in Developer Responsibility

AI does not remove responsibility—it redistributes it to a higher level.

Key questions remain:

\

• Which responsibilities should remain human-controlled?

• Who is accountable for AI-generated code?

• How might teams adapt workflows to integrate AI effectively?

• What skills are required to remain effective in this new paradigm?

\ 7. Conclusion

AI-assisted development in .NET is not just about generating code—it is about building systems that integrate AI reliably.With tools like GitHub Copilot, Microsoft Agent Framework, and especially .NET Aspire, developers gain new capabilities—but also new responsibilities.

Success depends on:

\

• Clear architecture

• Strong contracts

• Well-defined orchestration

• Deep observability

\ 8. Source Code

The full implementation is available on GitHub:👉 GitHub Repo

\ 9. References

[1] GitHub, Inc. 2026. About issues.

[2] GitHub, Inc. 2026. Creating an issue

[3] Microsoft. 2026. API design best practices

[4] OpenAPI Initiative. 2023. OpenAPI Specification.

[5] Copilot Academy. 2025. Copilot customization workshop.

[6] GitHub, Inc. 2026. Prompt engineering for GitHub Copilot.

[7] Microsoft. 2026. Agent Framework

[8] Microsoft. 2026. Responsible AI overview

Read the whole story
alvinashcraft
4 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories