Thanks.
You may have mentioned this, but do you use Unity or Unreal for this sort of ‘rigging’ too?
Thanks.
You may have mentioned this, but do you use Unity or Unreal for this sort of ‘rigging’ too?
I am a Sketchup purist; I tried doing Blender, the UI was so convoluted and it was so jam-packed with stuff, I couldn’t learn the difference between heads or tails, lol.
I don’t use Unity or Unreal. That would involve having a proper skeleton rig and doing it through Unity or Unreal (to my knowledge), so I haven’t even tried
.
So pretty much, all of my 3D output is Sketchup.
Wow. I haven’t heard the term “Sketchup purist” before… but it seems to be working for you. The Blender UI: yep. Agree. It’s a shame too because the terrain type stuff I see looks like it would be really useful.
So the approach you’re using now is based on, or inspired by, Animations in SketchUp?
Maybe? It was born from the thought “I’m tired of having multiple components hidden under tags to achieve various poses for images I’d like to share on DeviantArt, Pixiv, etc.” I’d rather have a system that lets me set poses and immediately trigger them through a UI, instead of disabling this tag, enabling this tag.
I probably could’ve gone about it by using a system that hides one tag when turning on another… but then I wanted to see what transition between the two poses would look like. Then I wanted it buttery smooth. Then I wanted more control over the motions to do various things. then I wanted to set limits, so parts didn’t clip. Then I wanted to set timing gates and segments so I can have that cockpit open and close consisting of multiple parts and it looks cool. Let’s be able to export all of that as a video! Let’s fire off multiple poses at once!
And now I’m at the “Why the heck not, let’s true inverse kinematics, see if I can tie this into my preset system, more easily create wild poses by linking and moving parts together, and see the result” lol.
Yeah, so a big-time usability improvement. And it was about static images.
And that’s where the movement => organic movement (buttery smooth!) is coming into this.
Yeah. I almost see this as moving to a ‘cartoon’ domain, like a RoboTech type animation-maker. Clip together and you sort of have the ‘bones’ for it. With speech/thought bubbles it goes kind of ‘comic’. With sound, ‘cartoon’.
Once ARCticulation is solid, maybe there will be an ARC-mation extension ![]()
I think that’s why I like his models. My neuro-tree is pretty well pruned but I still have a nostalgia branch that goes something like: Speed Racer → RoboTech → Transformers.
Jankiness resolved, polishing done. Working out a few kinks, and working to get it setup with pose presets.
Attached below is version 0.8.4.5, the introduction of the Export Hub.
ARCticulation_tool_v0_8_4_5_signed.rbz (418.0 KB)
This does not include the inverse kinematics testing, but is the stable build with Frames export (Currently only from the Library; Composites to be added at a later date).
Here’s a preview of the export options…
…and here’s the video exported from that preview (Converted over to MP4 because apparently this community forum doesn’t support webm playback):
It’s encoded directly through the chromium browser in Sketchup; I wanted to avoid having to do ffmpeg and all that jazz and fortunately, I was able to just use the existing chromium support to encode. Of course, the longer the animation and higher the quality… it can take awhile to export.
This export was around 360 frames at 720x1280 resolution at 60fps, for about six seconds of animation.
One small note on a change… sometimes if getExtents is not used you can get bad clipping (especially close zoom). Using this has fixed that problem for me:
P3/mediumTools And View DrawingRule: TOOL002
Location: arcticulation_tool/tools/frame_export/preview.rb
Tools that draw transient viewport geometry should define getExtents so SketchUp can frame and clip the drawing correctly.
Conservative fix: Implement getExtents to return a bounds object covering all geometry drawn by the tool.
Is this with regards to the viewport framing out sections based on chosen aspect ratio and resolution, etc?
If so I was having a weird problem where when I would initiate the export and it would always zoom in and change the camera type, so I did something to get around that quirkiness.
Or is this about part clipping, where it kind of clips through the components and you see the interior of objects?
No. Likely that is a false positive because that preview is not a tool, but an overlay using view.draw2d. Without getExtents -with tools- I get clipping that is like a clipping box. So I guess similar to what you describe. That’s why it was built into the scan. The overlay may not be an issue. Sorry about that.
I see your input guard tool for orbit/pan/zoom/selection. I don’t recall if the first scan showed a VCB issue with that specifically… but it was too strict and I suppose you skipped it if it pointed at your guard.
The scan isn’t rubocop but rubocop would likely point to enableVCB?, draw, suspend, deactivate, and getExtents, even if they aren’t problems.
Anyway, not trying to be a pest. The goal of the scanner is to reduce EW workload by having people scan their own extensions before submitting so EW has fewer problems to comb through during review. That will hopefully help everyone who is trying to get their extensions reviewed. That’s why I’m scanning code here on the Forum.
Nah, it’s all good, I understand.
Yeah, when I initially got around the weird zoom issue with drawing the overlay instead of the getExtents bit (by the sounds of it), the viewport was still active, so I could move the model around as it was exporting frames and that would translate to the final product, lol.
So I had to lock down orbit/pan/zoom/selection with my custom viewport approach so that couldn’t be done.
If there’s a better way to go about doing it without re-introducing the weird zoom/camera perspective issue, I can certainly look into getting it implemented if the workaround method possibly consttutes a problem.
If it don’t, I think we’re good staying the course.
Thanks for saying so. Judging by your results, it’s not -not- working. So that’s good.
The getExtents thing is different from the Zoom/camera thing. I don’t know what the weird zoom was. But it looks like the guard shuts down inputs… probably because those were muddling things. I think, but don’t know, that you do a crop and then there’s a ‘re-crop/recenter’ as another ‘guard’. Anyway, no, I wouldn’t say there’s a better way since what you’re doing seems to be working.
Are you using Plus or Codex with skills/agents? If not, you could sharpen your saw with those. Plus Rubocop. The scanner is aimed at users who aren’t doing those things.
I’m primary using ChatGPT w/ a Plus subscription in the browser… I haven’t setup Codex. I did setup Claude, but I burned through Fable 5 relatively early on and the remainder of my usage limits a couple days ago there. I’ve been bouncing between the two doing a mix of Deep Research and intensive Fable 5 runs to pick out and fix problems or code complex things.
ChatGPT has done surprisingly well building out the IK system, but I’ll still probably run it through Claude/Fable 5 once my usage resets in a couple days lol.
I like this as a more manual way of using the ChatGPT. You can add instructions to show code context (like preceding lines) and then crtl+c that, ctrl+f and ctrl+v in VS Code (or whatever) to find the method or lines in your code. It a ‘guided’ way.
You could cross-stich like what you’re saying by cross posting responses as prompts to compose the next prompt. Maybe that’s what you mean by Deep Research → Fable 5 (implied → Deep Research). It can be a good way to build prompts or just save tokens by using the right model (less flammable?) for the job.
I haven’t used Claude/Fable 5. I’ve heard stories of runway token fires (outside of the context of SketchUp) burning limits to the ground. I haven’t heard as much of that lately. But I presume you can select folders and that’s where the power lies.
Is that some extension which basically launches Rubocop against another extension with a couple more steps (such as reviewing the security best practices)? ![]()
Why don’t you just use the ClaudeCode/Codex/OpenCode VScode extensions?
In that way you can use any AI chatbot/agent directly in VScode (or Antigravity or Kiro or whatever VScode fork you prefer) and have access to local file system, plan mode, diffs, gits, terminal and whatever you like all in a single convenient place?
No. It’s aimed a little ‘lower’/'earlier, towards the beginner / first time extension submission and doesn’t install or run anything. The scan does look for some things Rubocop would find, as well as some security best practices.
Then it points people to Resources. For example Rubocop… like this:
So it looks for a bunch of mistakes that would cause an extension to be denied, shows resource links and then also guides the user to start using Rubocop.
It’s like a first line of defense before submitting something to EW that will be denied and hopefully frees the extensibility team up from having to tell people things they ideally would have fixed before submitting.
With regard to the Preflight scanner extension, that is the better way. This extension is the paired-down version of something like this: Delays with extension reviews - Developers / Developer Announcements - SketchUp Community The goal with the simpler version is to have a user-side initiative to reduce EW workload without EW/SketchUp/Trimble having to do anything.
As for using ChatGPT / Codex, Codex wasn’t released until early 2025 (IIRC). So, in my case I had already been using ChaptGPT for a couple of years. The ‘manual way’ of going between ChatGPT desktop/browser and the code editor ‘puts eyes on the code’. So it’s kind of a ‘look and learn approach’ vs. the VS Code extensions which -as you note- can ‘just do it’. But either way, if a user is cobbling things together line by line or has a dark factory set up, the code should be reviewed for code quality / safety.
I did try to get this extension in front of some experts who could really sharpen it up. Hopefully there will be some feedback. In the meantime I’m trying to test and improve it.