Giter Club home page Giter Club logo

lavagna's Introduction

lavagna

It's a blackboard, not a lasagna.

preview

Lavagna is a collaborative blackboard, perfect for creating simple sketches during online meetings. It has an (optional) minimal toolbar which can be hidden to avoid distractions from your drawings. You can control colors and line width using the keyboard or the toolbar.

It's just you, your peers, and your creativity.

Keyboard bindings

Button Action Note
C Color Change the chalk color
M Grow Grow chalk size 2x
N Shrink Shrink chalk size 2x
X Clear Clear the whole blackboard
U Toolbar Toggle toolbar visibility

Installation

Archives of precompiled binaries for lavagna are available for Windows, macOS and Linux.

Install from source

If you're a Rust programmer, lavagna can be installed with cargo.

  • Note that the minimum supported version of Rust for lavagna is 1.76, although lavagna may work with older versions.

To install from sources:

git clone https://github.com/alepez/lavagna.git
cd lavagna
cargo install --path lavagna --locked

Install from crates.io

Currently, installing from crates.io is not available. See this issue.

Instant collaboration

lavagna uses WebRtc for instant collaboration. So you can use it for online meetings. You don't even need to install anything, because lavagna is available as a web-app too.

You need a signaling server like matchbox_server installed somewhere. See this post by Johan Helsing

Don't worry, for quick testing you can borrow my signaling server:

lavagna --collab-url ws://lavagna.alepez.dev:3536/demo

Change demo to your preferred name or a unique id. If you do the same on different device, anything you draw will be visible on the other side (and vice versa).

Desktop app development

lavagna works on many operating systems:

  • Linux (x86)
  • Linux (ARM)
  • macOS (x86)
  • Windows

You just need to have a Rust toolchain installed. Run this from the project directory:

cargo run

To print help information, just use:

cargo run -- --help

Web app development

This script builds all the assets needed for a web application. You'll find them on www directory, so you can use any http server able to serve static files.

./tools/build-web
cd www
python -m http.server 8000

See also docker/lavagna-webapp/Dockerfile as an example of how to publish the web-app.

lavagna's People

Contributors

alepez avatar dodomorandi avatar timjentzsch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

lavagna's Issues

Current version of Lavagna is incompatible with Firefox

Describe the bug
When building Lavagna on Windows with the build-web script, the resulting site works on Chrome but not Firefox.

When loading on Firefox, the following errors appear in the console:

panicked at C:\Users\Patrick\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_render-0.12.1\src\lib.rs:281:34:
Failed to create wgpu surface: CreateSurfaceError

Stack:

__wbg_get_imports/imports.wbg.__wbg_new_abda76e883ba8a5f@http://localhost:8000/lavagna-659AF1E8.js:637:21
console_error_panic_hook::hook::h0b8b8f77f589b45d@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[3213]:0x5be826
std::panicking::rust_panic_with_hook::h942f811a58b85774@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[8131]:0x7704b0
std::panicking::begin_panic_handler::{{closure}}::h4c2f48d094714b0d@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[10777]:0x7f2544
std::sys_common::backtrace::__rust_end_short_backtrace::hc8d5a39cc9b075f2@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[29855]:0x8ed10f
rust_begin_unwind@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[16122]:0x88bafc
core::panicking::panic_fmt::hc65415ef6e3fc9ba@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[16779]:0x896878
core::result::unwrap_failed::h6c35e11f284b3661@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[11792]:0x81b5bd
bevy_tasks::single_threaded_task_pool::TaskPool::spawn::{{closure}}::h0943b9c2944fea0d@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[498]:0x20a3ae
wasm_bindgen_futures::queue::Queue::new::{{closure}}::h333bf9e7658a70da@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[5191]:0x6a03a2
wasm_bindgen::convert::closures::invoke1_mut::h0083c9fbfc8fc3e3@http://localhost:8000/lavagna-659AF1E8_bg.wasm:wasm-function[18602]:0x8ad44f
__wbg_adapter_35@http://localhost:8000/lavagna-659AF1E8.js:221:10
real@http://localhost:8000/lavagna-659AF1E8.js:202:20


lavagna-659AF1E8.js:653:21
    __wbg_error_f851667af71bcfc6 http://localhost:8000/lavagna-659AF1E8.js:653
    h0b8b8f77f589b45d http://localhost:8000/lavagna-659AF1E8_bg.wasm:6023345
    h942f811a58b85774 http://localhost:8000/lavagna-659AF1E8_bg.wasm:7799984
    h4c2f48d094714b0d http://localhost:8000/lavagna-659AF1E8_bg.wasm:8332612
    hc8d5a39cc9b075f2 http://localhost:8000/lavagna-659AF1E8_bg.wasm:9359631
    rust_begin_unwind http://localhost:8000/lavagna-659AF1E8_bg.wasm:8960764
    hc65415ef6e3fc9ba http://localhost:8000/lavagna-659AF1E8_bg.wasm:9005176
    h6c35e11f284b3661 http://localhost:8000/lavagna-659AF1E8_bg.wasm:8500669
    h0943b9c2944fea0d http://localhost:8000/lavagna-659AF1E8_bg.wasm:2139054
    h333bf9e7658a70da http://localhost:8000/lavagna-659AF1E8_bg.wasm:6947746
    h0083c9fbfc8fc3e3 http://localhost:8000/lavagna-659AF1E8_bg.wasm:9098319
    __wbg_adapter_35 http://localhost:8000/lavagna-659AF1E8.js:221
    real http://localhost:8000/lavagna-659AF1E8.js:202

Uncaught RuntimeError: unreachable executed
    __wbg_adapter_35 http://localhost:8000/lavagna-659AF1E8.js:221
    real http://localhost:8000/lavagna-659AF1E8.js:202
lavagna-659AF1E8_bg.wasm:9361362:1
    rust_panic http://localhost:8000/lavagna-659AF1E8_bg.wasm:9361362
    h942f811a58b85774 http://localhost:8000/lavagna-659AF1E8_bg.wasm:7800028
    h4c2f48d094714b0d http://localhost:8000/lavagna-659AF1E8_bg.wasm:8332612
    hc8d5a39cc9b075f2 http://localhost:8000/lavagna-659AF1E8_bg.wasm:9359631
    rust_begin_unwind http://localhost:8000/lavagna-659AF1E8_bg.wasm:8960764
    hc65415ef6e3fc9ba http://localhost:8000/lavagna-659AF1E8_bg.wasm:9005176
    h6c35e11f284b3661 http://localhost:8000/lavagna-659AF1E8_bg.wasm:8500669
    h0943b9c2944fea0d http://localhost:8000/lavagna-659AF1E8_bg.wasm:2139054
    h333bf9e7658a70da http://localhost:8000/lavagna-659AF1E8_bg.wasm:6947746
    h0083c9fbfc8fc3e3 http://localhost:8000/lavagna-659AF1E8_bg.wasm:9098319
    __wbg_adapter_35 http://localhost:8000/lavagna-659AF1E8.js:221
    real http://localhost:8000/lavagna-659AF1E8.js:202

See "Additional context" for what I believe to be the root cause and fix (which worked on my computer).

To Reproduce
Steps to reproduce the behavior:

  1. Check out the main branch
  2. With git bash, run tools/build-web (On my computer, it needed to be modified with export rustflags="--cfg=web_sys_unstable_apis" to be able to build)
  3. Run python -m http.server in the www directory (defaults to port 8000)
  4. Load http://localhost:8000 on Firefox
  5. Open the console and see the error.

Expected behavior
I expect Lavagna to open on Firefox it does on Chrome.

Desktop

  • OS: Windows
  • Browser: Firefox
  • Version: 121.0

Additional context
My wasm-bindgen version is 0.2.89.

I believe the root cause is that the web build is defaulting to WebGPU and not WebGL2. I was able to fix this by adding the webgl2 feature to bevy. Due to my unfamiliarity with Bevy, this fix was not easy to find, as the console did not mention WebGPU, and there were no mentions of WebGPU or WebGL2 in the codebase, making me originally doubt that this was the root case.

Adding the webgl2 feature had the added benefit of removing the requirement to add export rustflags="--cfg=web_sys_unstable_apis" to the build script.

@@ -24,6 +24,7 @@ features = [
   "bevy_winit",
   "x11",
   "png",
+  "webgl2",
 ]

 [dependencies]

Adjustable pen size

Make the pen size adjustable

  • from 1 to 32 pixels
  • each steps increase 2x
  • M key button grow
  • N key button shrink

Spikes when large line is used

Describe the bug
When the line width is large, little cursor movements generate spikes.

To Reproduce

  1. Select maximum line width
  2. keep pressing, do small movements

Expected behavior

A roundish shape should be drawn.

Instead, these spikes appear on the screen:

image

Incorrect asset path

When launching lavagna from CLI, it prints the following error:

ERROR bevy_asset::server: path not found: /usr/bin/assets/fonts/FiraMono-Medium.ttf

And the lack of font causes the toolbar to be blank.

Steps to reproduce

  1. On ArchLinux, install lavagna from AUR
  2. Launch lavagna
  3. Observe the error in logs

Expected behavior

No error and the toolbar displays correctly.

I took a brief look at the code. It appears that the intention is to use bevy_embedded_assets to embed the fonts. I assume there is some misconfiguration.

Versions

  • OS: ArchLinux (with all updates as of time of writing)
  • Lavagna: 2.1.9 (AUR)

Cannot build for x86_64-pc-windows-gnu with nightly toolchain

Check this github actions run: https://github.com/alepez/lavagna/actions/runs/8694841480/job/23844594711

It fails with this errors:


     Running `rustc --crate-name build_script_build --edition=2021 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\proc-macro2-1.0.80\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on --cfg 'feature="default"' --cfg 'feature="proc-macro"' -C metadata=39763306c87edd3f -C extra-filename=-39763306c87edd3f --out-dir 'D:\a\lavagna\lavagna\target\debug\build\proc-macro2-39763306c87edd3f' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
     Running `rustc --crate-name unicode_ident --edition=2018 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\unicode-ident-1.0.12\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=64545b8510a0495e -C extra-filename=-64545b8510a0495e --out-dir 'D:\a\lavagna\lavagna\target\debug\deps' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
     Running `rustc --crate-name cfg_if --edition=2018 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cfg-if-1.0.0\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=426b6ce52fa3b61a -C extra-filename=-426b6ce52fa3b61a --out-dir 'D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps' --target x86_64-pc-windows-gnu -L 'dependency=D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow -C debuginfo=0 --deny warnings`
     Running `rustc --crate-name autocfg --edition=2015 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\autocfg-1.2.0\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=29be611d5ad42c4f -C extra-filename=-29be611d5ad42c4f --out-dir 'D:\a\lavagna\lavagna\target\debug\deps' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
   Compiling getrandom v0.2.14
     Running `rustc --crate-name getrandom --edition=2018 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\getrandom-0.2.14\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on --cfg 'feature="std"' -C metadata=040fcd85f621becf -C extra-filename=-040fcd85f621becf --out-dir 'D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps' --target x86_64-pc-windows-gnu -L 'dependency=D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --extern 'cfg_if=D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps\libcfg_if-426b6ce52fa3b61a.rmeta' --cap-lints allow -C debuginfo=0 --deny warnings`
   Compiling serde v1.0.197
     Running `rustc --crate-name build_script_build --edition=2018 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\serde-1.0.197\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="serde_derive"' --cfg 'feature="std"' -C metadata=52b1ad7a3248ce2e -C extra-filename=-52b1ad7a3248ce2e --out-dir 'D:\a\lavagna\lavagna\target\debug\build\serde-52b1ad7a3248ce2e' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
   Compiling version_check v0.9.4
     Running `rustc --crate-name version_check --edition=2015 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\version_check-0.9.4\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=9c303afa4680e8e7 -C extra-filename=-9c303afa4680e8e7 --out-dir 'D:\a\lavagna\lavagna\target\debug\deps' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
   Compiling pin-project-lite v0.2.14
     Running `rustc --crate-name pin_project_lite --edition=2018 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\pin-project-lite-0.2.14\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 --warn=unreachable_pub '--warn=clippy::undocumented_unsafe_blocks' '--warn=clippy::transmute_undefined_repr' '--warn=clippy::trailing_empty_array' --warn=single_use_lifetimes --warn=rust_2018_idioms '--warn=clippy::pedantic' --warn=non_ascii_idents '--warn=clippy::inline_asm_x86_att_syntax' --warn=improper_ctypes_definitions --warn=improper_ctypes '--warn=clippy::default_union_representation' '--warn=clippy::as_ptr_cast_mut' '--warn=clippy::all' '--allow=clippy::type_complexity' '--allow=clippy::too_many_lines' '--allow=clippy::too_many_arguments' '--allow=clippy::struct_field_names' '--allow=clippy::struct_excessive_bools' '--allow=clippy::single_match_else' '--allow=clippy::single_match' '--allow=clippy::similar_names' '--allow=clippy::module_name_repetitions' '--allow=clippy::missing_errors_doc' '--allow=clippy::manual_range_contains' '--allow=clippy::manual_assert' '--allow=clippy::float_cmp' '--allow=clippy::doc_markdown' '--allow=clippy::declare_interior_mutable_const' '--allow=clippy::borrow_as_ptr' '--allow=clippy::bool_assert_comparison' -C debug-assertions=on -C metadata=315eac90ce7c4ee0 -C extra-filename=-315eac90ce7c4ee0 --out-dir 'D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps' --target x86_64-pc-windows-gnu -L 'dependency=D:\a\lavagna\lavagna\target\x86_64-pc-windows-gnu\debug\deps' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow -C debuginfo=0 --deny warnings`
   Compiling windows_x86_64_gnu v0.52.5
     Running `rustc --crate-name build_script_build --edition=2021 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\windows_x86_64_gnu-0.52.5\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=47efefe8991d7656 -C extra-filename=-47efefe8991d7656 --out-dir 'D:\a\lavagna\lavagna\target\debug\build\windows_x86_64_gnu-47efefe8991d7656' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
     Running `rustc --crate-name build_script_build --edition=2015 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winapi-x86_64-pc-windows-gnu-0.4.0\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=fb4429030be33de9 -C extra-filename=-fb4429030be33de9 --out-dir 'D:\a\lavagna\lavagna\target\debug\build\winapi-x86_64-pc-windows-gnu-fb4429030be33de9' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
   Compiling thiserror v1.0.58
     Running `rustc --crate-name build_script_build --edition=2021 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\thiserror-1.0.58\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C metadata=c787188e94e5de22 -C extra-filename=-c787188e94e5de22 --out-dir 'D:\a\lavagna\lavagna\target\debug\build\thiserror-c787188e94e5de22' -L 'dependency=D:\a\lavagna\lavagna\target\debug\deps' --cap-lints allow`
     Running `D:\a\lavagna\lavagna\target\debug\build\windows_x86_64_gnu-47efefe8991d7656\build-script-build`
     Running `D:\a\lavagna\lavagna\target\debug\build\serde-52b1ad7a3248ce2e\build-script-build`
error: failed to run custom build command for `windows_x86_64_gnu v0.52.5`

Caused by:
  process didn't exit successfully: `D:\a\lavagna\lavagna\target\debug\build\windows_x86_64_gnu-47efefe8991d7656\build-script-build` (exit code: 0xc0000139, STATUS_ENTRYPOINT_NOT_FOUND)
warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `serde v1.0.197`

Caused by:
  process didn't exit successfully: `D:\a\lavagna\lavagna\target\debug\build\serde-52b1ad7a3248ce2e\build-script-build` (exit code: 0xc0000139, STATUS_ENTRYPOINT_NOT_FOUND)
Error: Process completed with exit code 101.

When collaborating, cursor position is shared

Describe the bug
When collaborating, cursor position is shared: while user1 is pressing and user2 move the cursor over the canvas without touching, the pencil draw a line jumping from user1 position to user2 position.

To Reproduce
Steps to reproduce the behavior:

  1. Open a collaborative lavagna in two different computers.
  2. Start drawing and keep pressing on computer A
  3. Just move the mouse in computer B
  4. A line is drawn from position in computer A to position in computer B

Expected behavior

Nothing should be drawn when mouse is just moving without pressing in computer B, if A is drawing.

Demo website

Once upon a time we had lavagna.devand.dev server. I've shut down devand.dev, so I need another place for lavagna.

This was the documentation when the server was at lavagna.devand.dev

## Online demo

An online demo is available: [demo](https://lavagna.devand.dev)

It supports passing options as url parameters:

- collaboration
  url: https://lavagna.devand.dev/?collab-url=ws://lavagna.alepez.dev:3536/demo
- debug
  pane: https://lavagna.devand.dev/?collab-url=ws://lavagna.alepez.dev:3536/demo&dbg=true
-

ui: https://lavagna.devand.dev/?collab-url=ws://lavagna.alepez.dev:3536/demo&dbg=true&ui=true

Possible solutions:

  • GitHub pages for webapp + my own server for matchbox
  • GitHub pages for webapp + johanhelsing server for matchbox, like the one used by https://helsing.studio/box_game/ (I should ask)
  • Both webapp and matchbox on my own server

cargo install fails โ€“ could not find asset folder

Describe the bug
When performing cargo install lavagna, the compilation process fails. The bevy_embedded_assets can't find the assets folder.

Full output, directly after Compiling <dependency> v<version>:

The following warnings were emitted during compilation:

warning: [email protected]: Could not find asset folder, please specify its path with $BEVY_ASSET_PATH

error: failed to run custom build command for `bevy_embedded_assets v0.7.0`

Caused by:
  process didn't exit successfully: `/tmp/cargo-installklO25G/release/build/bevy_embedded_assets-36be3b4b8a9ca65c/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed={}
  cargo:rerun-if-env-changed=BEVY_ASSET_PATH
  cargo:warning=Could not find asset folder, please specify its path with $BEVY_ASSET_PATH

  --- stderr
  thread 'main' panicked at /home/sergey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_embedded_assets-0.7.0/build.rs:111:9:
  No asset folder found
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `lavagna v2.1.7`, intermediate artifacts can be found at `/tmp/cargo-installklO25G`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

To Reproduce
Steps to reproduce the behavior:

  1. Assure that you have cargo installed.
  2. cargo install lavagna

Expected behavior
The log throws no errors and lavagna is installed at ~/.cargo/bin/lavagna.

Desktop (please complete the following information):

  • OS: Arch Linux
  • Version:
    • rustup 1.26.0
    • cargo 1.75.0-nightly

Side Note
In my project, I have the same issue. I uploaded it to crates.io but can't cargo install, due to the same error messages, although cargo package --list lists my assets folder.

Thank you in advance.

In-progress strokes are invisible when the camera is panned too far from the origin.

Describe the bug
In-progress strokes are invisible when the camera is panned too far from the origin. I believe the root-cause is related to frustum culling (See additional context).

To Reproduce
Steps to reproduce the behavior:

  1. Zoom out
  2. Zoom in elsewhere
  3. Draw a stroke
  4. See that the in-progress stroke is invisible until you release the mouse (or you've passed POINTS_CHUNK_THRESHOLD)

Expected behavior
The in-progress stroke is visible no matter where the camera is.

Additional context
I believe the root cause is bevyengine/bevy#4294. I was able to resolve this locally by editing make_chalk to add the NoFrustumCulling component to in-progress strokes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.