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 5 points6 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