The first project is a C++ embedded device. The second is a sophisticated Django-based UI front end for a hardware device (so, python interacting with hardware and various JS libraries handling most of the front end).
So far I am deeper into the Django project than the C++ embedded project.
It's interesting.
I had already hand-coded a conceptual version of the UI just to play with UI and interaction ideas. I handed this to Cursor as well as a very detailed specification for the entire project, including directory structure, libraries, where to use what and why, etc. In other words, exactly what I would provide a contractor or company if I were to outsource this project. I also told it to take a first stab at the front end based on the hand-coded version I plopped into a temporary project directory.
And then I channeled Jean-Luc Picard and said "Engage!".
The first iteration took a few minutes. It was surprisingly functional and complete. Yet, of course, it had problems. For example, it failed to separate various screens into separate independent Django apps. It failed to separate the one big beautiful CSS and JS files into independent app-specific CSS and JS files. In general, it ignored separation of concerns and just made it all work. This is the kind of thing you might expect from a junior programmer/fresh grad.
Achieving separation of concerns and other undesirable cross-pollination of code took some effort. LLM's don't really understand. They simulate understanding very well, but, at the end of the day, I don't think we are there. They tend to get stuck and make dumb mistakes.
The process to get to something that is now close to a release candidate entailed an interesting combination of manual editing and "molding" of the code base with short, precise and scope-limited instructions for Cursor. For my workflow I am finding that limiting what I ask AI to do delivers better results. Go too wide and it can be in a range between unpredictable and frustrating.
Speaking of frustrations, one of the most mind-numbing things it does every so often is also in a range, between completely destroying prior work or selectively eliminating or modifying functionality that used to work. This is why limiting the scope, for me, has been a much better path. If I tell it to do something in app A, there's a reasonable probability that it isn't going to mess with and damage the work done in app B.
This issue means that testing become far more important in this workflow, because, on every iteration, you have no idea what functionality may have been altered or damaged. It will also go nuts and do things you never asked it to do. For example, I was in the process of redoing the UI for one of the apps. For some reason it decided it was a good idea to change the UI for one of the other apps, remove all controls and replace them with controls it thought were appropriate or relevant (which wasn't even remotely the case). And, no, I did not ask it to touch anything other than the app we were working on.
Note: For those not familiar with Django, think of an app as a page with mostly self-contained functionality. Apps (pages) can share data with each other through various means, but, for the most part, the idea is that they are designed as independent units that can be plucked out of a project and plugged into another (in theory).
The other thing I've been doing is using ChatGPT and Cursor simultaneously. While Cursor is working I work with ChatGPT on the browser to plan the next steps, evaluate options (libraries, implementation, etc.) and even create quick stand-alone single file HTML tests I can run without having to plug into the Django project to test ideas. I like this very much. It works well for me. It allows me to explore ideas and options in the context of an OpenAI project and test things without the potential to confuse Cursor. I have been trying to limit Cursor to being a programmer, rather than having long exploratory conversations.
Based on this experience, one thing is very clear to me: If you don't know what you are doing, you are screwed. While the OpenAI demo where they have v5 develop a French language teaching app is cool and great, I cannot see people who don't know how to code producing anything that would be safe to bet the farm on. The code can be great and it can also be horrific. It can be well designed and it can be something that would cause you to fail your final exams in a software engineering course. There's great variability and you have to get your hands in there, understand and edit code by hand as part of the process.
Overall, I do like what I am seeing. Anyone who has done non-trivial projects in Django knows that there's a lot of busy boilerplate typing that is just a pain in the ass. With Cursor, that evaporates and you can focus on where the real value lies: The problem you are trying to solve.
I jump into the embedded C++ project next week. I've already done some of it, but I'm in that mental space 100% next week. Looking forward to new discoveries.
The other reality is simple: This is the worse this will ever be. And it is already pretty good.
You can cut objects in place, including irregularly shaped stuff you'd need to disassemble to put on your gantry. That comes up frequently for engraving but it's not exclusive to it.
The whole device is basically the size of a sewing machine. Yet it can cut parts that won't fit on an gantry you're able to fit in your garage.
It's quite tedious for repeated work. So I think it's really more in the class of manual power tools than in the same class as a CNC setup.
As far as accuracy goes, the tracking tape eliminates some source of errors. Say your clamping is not 100% and the part shifts slightly while being worked-- tape the part moves with it and all is still happy. Of course, it introduces some of its own problems too.
So in summary:
1. Very small device, yet can work with arbitrarily large pieces. 2. Good workflow means very fast setup suitable for one offs. 3. Works in situ, especially useful for engraving things in place.
I imagine that if it weren't a bit pricey that many people who do CNC woodworking would also have a shaper origin like device-- much like you probably have a skillsaw in spite of owning a CNC router.
Plus the simplicity of setup and the size makes it attractive to anyone who only wants a tiny amount of CNC for precision engraving, hole positioning, or cutting an inset for a hinge... and would never own a CNC gantry.
That's just-about the only real use case I can see.
And then, again, is the question: How much engraving in place does anyone really have to do?
What are you engraving? Doors? Signs? Trophies? Well, if it is a one-off occasional thing...is the cost justified? If it is done as a business, chances are you are not going on-site to someone's home to engrave stuff. If it a rare once-in a couple of years thing, there are services that will do that for you for very little money...etc.
Forget CNC, I am comparing this to a $50 router and some jigs, off-the-shelf and self made. Even as a robotics guy, I just don't see it. And I have a shop full of robots and CNC machines.
To me this falls under the category of "just because you can, it doesn't mean you should".
Hand router jigs:
https://www.rockler.com/power-tools/routers/router-jigs
Hand router sign-making templates:
https://www.rockler.com/power-tools/routers/router-accessori...
I'm happy to be wrong...I just don't see it except for corner cases (which could be all you need for a nice business).
> It automatically adjusts the cutting tool to stay on the programmed design path, enabling a significantly smaller device footprint while still handling large-scale cuts.
I don't know how many people it concerns but the use case is very clear
My comment wasn't intended to denigrate the tool or the approach. I am trying to understand the use case at scale.
Why?
Because if you are going to use this type of a tool onece or twice a year for an odd job, you don't need it. A $50 router will do just-about anything if you take the time to make a jig or jigs for the job. Again, if it is an one-in-a-while job, the time taken to build jigs is not important.
If you are making dozens or hundreds of something, forget it. Not the right use case. A CNC router or, again, a set of jigs or fixtures is the ticket.
Oddly shaped material might be a use case, however, I cannot see this working on concave or convex material with any degree of precision. This, once again, depending on the nature of the work, falls under the realm of CNC (possibly 4 or 5 axis) or specialized jigs.
Having done so much work, I just can't see dropping that kind of money for something that isn't likely to give me any real advantages. It will get used a few times due to the cool factor and then just sit on a shelf while I get real work done using manual or gantry CNC tools.
I've probably built hundreds of custom workstations using 100% manual tools, jigs and fixtures. It works, you can get amazing precision and repeatability and there's no limit to what you can make. Best of all, if you need five people working on a project, making extra jibs and fixtures is easy and cheap.
I was introduced to the general concept when the Shaper Origin came out a while back. Here's my problem with the idea:
What's the use case?
Any xyz gantry router will run circles around this approach, by far. They will be much faster, more accurate and, more importantly, hands off. There's a lot to say for clamping the material and mashing the "go" button. The pattern shown in the video on the YT channel literally takes three seconds to cut on a gantry router. And you can swap material and push go again, very quickly (or cut as many as possible out of one piece of material.
For around $1K you can have a much more capable machine. Unless the use case is cutting/engraving on items that cannot be cut on a traditional router, I am not sure what these would be used for. Then the question becomes: How many of those projects do DIY hobbyists have?
The other question is one of accuracy and repeatability. Having done loads of CNC metal machining, CNC and manual wood routing, I can tell you that nothing beats a rigid xyz machine.
So, if someone has just one or a few odd parts that cannot be cut on an xyz router, well, maybe that's a use case. Other than that, why would anyone guild one of these rather than a gantry?
The argument goes something like: We are direct descendants of French immigrants ("pure blood" argument). It's along similar lines as descendants of Italian immigrants in New York calling themselves "Italian"...not realizing how far they are from that being remotely real.
There's a reality to content with here. We all know that software developers have been coming out of school with decidedly substandard skills (and I am being very kind). In that context, the value they might add to an organization has almost always been negative. Meaning that, without substantial training and coaching --which costs time, money and market opportunity-- they can be detrimental to a business.
Before LLM's you had no options available. With the advent of capable AI coding tools, the contrast between hiring an person who needs hand-holding and significant training and just using AI is significant and will be nothing less than massive with the passage of time.
Simply put, software development teams who do not embrace a workflow that integrates AI will not be able to compete with those who do. This is a business forcing function. It has nothing to do with not being able to or not wanting to train newcomers (or not seeing value in their training).
People wanting to enter the software development field in the future (which is here now), will likely have to demonstrate a solid software development baseline and equally solid AI-co-working capabilities. In other words, everyone will need to be a 5x or 10x developer. AI alone cannot make you that today. You have to know what you are doing.
I mean, I have seen fresh university CS graduates who cannot design a class hierarchy if their life depended on it. One candidate told me that the only data structure he learned in school was linked lists (don't know how that's possible). Pointers? In a world dominated by Python and the like, newbies have no clue what's going on in the machine. Etc.
My conclusion is that schools are finally going to be forced to do a better job. It is amazing to see just how many CS programs are just horrible. Sure, the modules/classes they take have the correct titles. What and how they teach is a different matter.
Here's an example:
I'll omit the school name because I just don't want to be the source of (well-deserved, I might add) hatred. When I interviewed someone who graduated from this school, I came to learn that a massive portion of their curriculum is taught using Javascript and the P5js library. This guy had ZERO Linux skills --never saw it school. His OOP class devoted the entire semester to learning the JUCE library...and nobody walked out of that class knowing how to design object hierarchies, inheritance, polymorphism, etc.
Again, in the context of what education produces as computer scientists, yes, without a doubt, AI will replace them in a microsecond. No doubt about it at all.
Going back to the business argument. There is a parallel:
Companies A, B and C were manufacturing products in, say, Europe. Company A, a long time ago, decides they are brilliant and moves production to China. They can lower their list price, make more money and grab market share from their competitors.
Company B, a year later, having lost 25% of their market share to company A due to pricing pressure, decides to move production to China. To gain market share, they undercut Company A. They have no choice on the matter; they are not competitive.
A year later A and B, having engaged in a price war for market share, are now selling their products at half the original list price (before A went to China). They are also making far less money per unit sold.
Company C now has a decision to make. They lost a significant portion of market share to A and B. Either they exit the market and close the company or follow suit and move production to China.
At this point the only company one could suggest acted based on greed was A during the initial outsourcing push. All decisions after that moment in time were about market survival in an environment caused by the original move.
Company C decides to move production to China. And, of course, wanting to regain market share, they drop their prices. Now A, B and C are in a price war until some form of equilibrium is reached. The market price for the products they sell are now one quarter what they were before A moved to China. They are making money, but it is a lot tighter than it used to be. All three organizations had serious reorganization and reductions in the labor force.
The AI transition will follow exactly this mechanism. Some companies will be first movers and reap short-term benefits of using AI to various extents. Others will be forced into adoption just to remain competitive. At the limit, companies will integrate AI into every segment of the organization. It will be a do or die scenario.
Universities will have to graduate candidates who will be able to add value in this reality.
Job seekers will have to be excellent candidates in this context, not the status quo ante context.
I guess these days a few paragraphs qualifies for an "in depth" article. No links to any of the sources referenced, except to one of their own pages. Not very useful.
That said, sure, as someone who speaks several languages and can mostly understand a few more, I think there are interesting insights gained by having this ability. For me, a lot of it has to do with, perhaps, less-than-verbal communication. Each culture has a certain way to communicate in person during conversations. Spanish spoken in Spain, Mexico, Peru, Ecuador and Argentina, while different, also drag along non-verbal cues that are distinct in each culture. Same with English in various parts of the UK, US and other anglo-speaking countries. As much as some Canadians think themselves to be French, there are differences there as well with France. Non-verbal cues in the Arab world (and Middle East in general) are different as well. How you sit, move, pace, use your hands and gesticulate during in-person conversations are linked to both language and culture. Etc.
Who remembers the bar scene in Inglorious Basterds? Yup, very true. Instant communication.
This really important to understand! Engineers can't design good hardware products entirely from a cozy cubicle. It's necessary to intimately understand how the parts are made and assembled. The notion of putting design and manufacturing an ocean apart is madness. It's probably why my "Designed by Kitchenaid, St. Joseph Michigan USA" electric kettle keeps breaking under warranty.
I use the Prusa's all the time. They just work. Not the fastest, but that's not a problem. When we need fast we use our own brushless servo-driven stationary table beast.
Build a good MK3/4 style 350 x 350 x 350~500 printer and I will likely buy it. Not interested in the other stuff. Don't even care about multi-material. We use 3D printers for design validation and to explore concepts. Don't need the complexity at all. Don't need crazy speed. Just a good solid printer that works reliably and I don't have to think about. This isn't a hobby, it's a tool. I want it on the network and don't need (can't have) external connectivity (ITAR).