lu15w1r7h / carveout Goto Github PK
View Code? Open in Web Editor NEWdigital pen note taking
Home Page: https://lwirth.com/
digital pen note taking
Home Page: https://lwirth.com/
Keyboard is still a good way to type.
A simple font/fontsize/color support for keyboard input would be great!
Carveout should run in the browser.
handle errors using eyre and thiserror
for instance in savefile loading and saving
strokes that we're rescaled (as seen from the monitor) should be retessellated
probably because tessellation takes long.
Try to only tessellate new part of stroke, instead of all of it.
Introduce some small graphical indicators helpful for orientation in the canvas.
avoid a large canvas module, instead put these things into root. Almost everything is canvas
There must be a way to use egui for rendering inside the canvas.
A interesting reference is egui-gizmo
Currently the canvas renderer is executed after the ui renderer. Therefore any ui in the canvas rect is overdrawn. This is not what we want. egui windows and the canvas overlay should be drawn on top of the canvas!
Using egui::PaintCallback
this wouldn't be a problem, as everything would be drawn in order. But this approach hasn't been working out, because callbacks don't really allow for passing references in.
A depth buffer doesn't work for now, because egui (or at least egui-wgpu) always writes the same z coordinate for every vertex.
see wgpu/capture
implement undo system
create tree visualizer using egui (like undo-tree packacke)
implement stroke eraser
use https://github.com/dimforge/parry for collision detection
support drawing tablet pens like wacom
we need
use bsplines and curve-fitting to describe strokes
avoid aliasing using msaa
see wgpu/msaa
potential pdf rendering libraries
useful for anything that needs to do collision detection, like eraser.
rapier's QueryPipeline
as reference
partition canvas using A4 pages for instance
you should be able to select objects like strokes and move them around, delete them etc. Try drawing a selection UI using egui.
The SelectLoop should of course use this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.