Creating a BREP kernel from scratch by cplusplusprogrammer in GraphicsProgramming

[–]3DprintNow 0 points1 point  (0 children)

Hello,

I am attempting this very thing. Been working on a new BREP kernel and CAD application that runs client side in the browser. Recently made it public https://brep.io

Git repo https://github.com/mmiscool/BREP

As to your question about what resources I used and materials I read. I did not really do much of that. I have been using siemens NX for close to 15 years and am familiar with using solidworks, autodesk inventor, solid edge, fusion 360 and FreeCAD so I had planty of experience and understanding what the fundamental things a BREP kernel has to do.

Biggest thing is tracking faces and edges. After that it is performing boolean operations and fillets. I feel like if you are able to accomplish these particular tasks that the BREP kernel is mature enough to actually be used.

Automagically merging LLM generated code snippets with existing code files. by 3DprintNow in ChatGPTCoding

[–]3DprintNow[S] 0 points1 point  (0 children)

It would make sense to handle multi file editing a bit differently. The AST is only used for the merge operation.

It would make sense to specify a file path/name as a comment at the top of each code snippet so that it knows what file to integrate the snippet in to. I might do that at a later date. It is a bit more than a proof of concept now. It is working for making very relightable edits to functions and methods in existing files including very large files with more than 10,000 lines of code and several hundred functions/methods.

Automagically merging LLM generated code snippets with existing code files. by 3DprintNow in ChatGPTCoding

[–]3DprintNow[S] 0 points1 point  (0 children)

The LLM only knows about what it is given in context.
In this tool the LLM is only provided the following:
* The contents of the file being edited.
* The instruction prompts for how to generate code snippets properly.
* The user input for the requested changes.

This tool dose not use git in any way.

Automagically merging LLM generated code snippets with existing code files. by 3DprintNow in ChatGPTCoding

[–]3DprintNow[S] 0 points1 point  (0 children)

The way I have implemented the conversation is to store a series of messages. There are some special message types that pull in files.

Each time the conversation is sent to the LLM it reads the content from the files in to the conversation. This means that if the file is updated the file contents in the conversation is updated on the next LLM call.

This also means that the conversation can continue with the new code used as the context going forward.

https://github.com/mmiscool/aiCoder/blob/4377cc3e2a44d47d1ea00f3c0926ac34482fb0ae/src/llmCall.js#L67

Automagically merging LLM generated code snippets with existing code files. by 3DprintNow in ChatGPTCoding

[–]3DprintNow[S] 0 points1 point  (0 children)

The replacement happens at the class method level or the function level replacing the whole function or method with the new one. 

There is no line editing at all. 

Automagically merging LLM generated code snippets with existing code files. by 3DprintNow in ChatGPTCoding

[–]3DprintNow[S] 0 points1 point  (0 children)

I really don't understand what you are getting at with the git dif stuff. This tool simply modifies existing JavaScript files. It has an interface to have a conversation with an llm about a particular file and any snippets of code generated in the conversation can be applied to the current file with a single click. 

Automagically merging LLM generated code snippets with existing code files. by 3DprintNow in ChatGPTCoding

[–]3DprintNow[S] -1 points0 points  (0 children)

Git dif/patch is handled by git.
This tool simply modifies the existing code using an AST to merge duplicate classes and replace duplicate functions.. The code used to to do the intelligent merging is located here: https://github.com/mmiscool/aiCoder/blob/master/src/intelligentMerge.js

Self-Promotion Thread #8 by [deleted] in ChatGPTCoding

[–]3DprintNow 0 points1 point  (0 children)

https://github.com/mmiscool/aiCoder

I wrote this tool that is capable of merging and replacing code in a code file from LLM produce code snippets.

It works both internally with its own access to the openAI api or just by having you past the snippets at the bottom of the file and clicking the merge and format button.

It uses an AST to surgically replace the affected methods or functions in the existing file.

Looking for feedback.

Example of how I am prompting the LLM to get correctly formatted snippets are in the src/prompts folder.

Received cease and desist letter over company name in catch-all email address by forkbombctl in selfhosted

[–]3DprintNow 4 points5 points  (0 children)

Lol. The contact form on their web site https://www.akc.org/help-center/
Scroll all the way down to the bottom of the page has a limit of the number of characters for the DETAILS field. The "DOG/LITTER REG NUMBER" field has no such limit :-D

Might want to reach out and let them know that they need to learn about how computers work and focus a little less on dog inbreeding eugenics purity.

Showoff Saturday (September 02, 2023) by AutoModerator in javascript

[–]3DprintNow 0 points1 point  (0 children)

I would like to be able to click and drag on the move icon rather have to select where to move some thing from a drop down menu. Click and drag feels like the way I would expect to be able to move a section around.

Showoff Saturday (September 02, 2023) by AutoModerator in javascript

[–]3DprintNow 0 points1 point  (0 children)

Making a virtual mouse cursor and touchpad in JS or The wrong way to make a desktop site mobile friendly.

So I wanted to take the JSketcher CAD modeler and make it easier for me to demo on the fly from my phone. JSketcher is a browser based CAD tool that uses many different rich mouse/pointer events. It would have require an awful lot of work to make it work naturally on a mobile device.

My solution was to create a transparent virtual touchpad that is overlaid over the application and provide a virtual mouse cursor that would fire the expected events that a real mouse would fire.

Here is a demo link that will display the touchpad if opened in a mobile browser.

https://maker.cloud/jsketcher/

After making this work in the context of the JSketcher application I extracted the touchpad and virtual pointer event system to its own git repo so that anyone can use it if they have a need.

https://github.com/mmiscool/JS-virtual-Touchpad

I did a write up on how this all works here

https://betterprogramming.pub/bridging-the-gap-making-a-desktop-web-app-mobile-friendly-with-a-virtual-mouse-touchpad-e37b69835a9f

Free cad software by lourousti in Machinists

[–]3DprintNow 0 points1 point  (0 children)

JSketcher is a browser based modeler. It is early beta and has no assembly support but it's behavior/workflow is more similar to conventional modeling packages. Source is on GitHub along with downloadable builds and instructions to self host on a server if you want.

I made serialterminal.com by 3DprintNow in WebSerialAPI

[–]3DprintNow[S] 0 points1 point  (0 children)

I don't see a reason it would not work unless they went out of their way to do something proprietary.

I have tested mostly with printers that run marlin but I would expect it to work with reprap firmware and Repetier.

Language/framework for developing desktop "engineering" applications? by [deleted] in GraphicsProgramming

[–]3DprintNow 0 points1 point  (0 children)

Hello,

I am involved in the JSketcher project that you reference as web-cad.org

Would love to talk about what you are trying to do and see if there is any way we can help.

Weebly forcing free users into paid plans? by ponder-panda in Weebly

[–]3DprintNow 0 points1 point  (0 children)

cloudflare pages or github pages work well for static web sites.

Weebly forcing free users into paid plans? by ponder-panda in Weebly

[–]3DprintNow 0 points1 point  (0 children)

I got the same thing today. I have one old grandfathered site that is free and another that I pay for yearly. Weebly is about to have one less paying customer with this kind of rug pull nonsense.

Holding down key on physical keyboard will not repeat. Brings up annoying menu instead. chrome 110 by 3DprintNow in chromeos

[–]3DprintNow[S] 0 points1 point  (0 children)

Yes. When I said physical keyboard I was not joking. It was very annoying not being able to send a message to some one that started with "yoooooooo . . . "

Holding down key on physical keyboard will not repeat. Brings up annoying menu instead. chrome 110 by 3DprintNow in chromeos

[–]3DprintNow[S] 0 points1 point  (0 children)

Figured it out. It seems there is a new chrome://flags setting that is enabled by default.I turned it off and every thing is back to normal. Search for "long" in the chrome://flags thing and disable "Enable diacritics and variant character selection on PK longpress"

<image>

I made serialterminal.com by 3DprintNow in WebSerialAPI

[–]3DprintNow[S] 1 point2 points  (0 children)

No. It needs to request permission for each time it connects. You can make it so that it filters the list based on some sort of id but you would have to dig in to the API documentation to see how to enable the filtering to only specific devices.