profile
viewpoint
Théo Degioanni Moxinilian Rennes, France - Paris, France Rust programmer (mostly)

amethyst/ludumdare42 17

A game made by the Amethyst team for Ludum Dare 42

Aceeri/citrine 16

Amethyst's soon-to-be UI toolkit

amethyst/amethyst-rhusics 8

A bridge between Amethyst and rhusics (unmaintained)

jdrprod/Algos 8

Some usefull algorithms implemented as a robust collection of modules for OCaml, C, Python and more

Moxinilian/backertrack 1

Various tools to manage the Amethyst Foundation's treasury paperwork

Moxinilian/bevy 1

A modular game engine built in Rust, with a focus on developer productivity and performance

jdrprod/M99 0

M99 assembly VM

Moxinilian/amethyst 0

Data-oriented and data-driven game engine written in Rust

Moxinilian/amethyst-rhusics 0

A bridge between Amethyst and rhusics

Moxinilian/amethyst-scripting-lab 0

Miscellaneous experiments for scripting in Amethyst

PullRequestReviewEvent

push eventjdrprod/Algos

Théo Degioanni

commit sha 2348eaf5c018679c440762498731b6adc3e84581

Rust recursive binary heap (#12) * Implemented binary heap with vec backend * begin recursive heap implementation * fix a derp * forgot one fix * completed recursive binary heaps * more explicit method names * restored vec test

view details

push time in 5 days

PR merged jdrprod/Algos

Rust recursive binary heap

Depends on #11

Implemented a recursive version of binary heaps. The clash between the simplicity of the Vec version vs the mutable recursive version under borrowchecker rules is very instructive. It's a great example of the "loose" nature of current Rust borrowchecking, and while it thus requires doing more matches than necessary, it illustrates one of Rust's usual attitude towards writing code: make it extremely explicit, LLVM will take care of removing useless code.

+345 -10

0 comment

2 changed files

Moxinilian

pr closed time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha 5303edd9deeec08bb61ff2e01dbf7858f7562d0b

Implemented binary heap with vec backend (#11) * Implemented binary heap with vec backend * fix a derp * forgot one fix * more explicit method names

view details

Théo Degioanni

commit sha f7b27d3127d20cc7d366b7bd5e906fadd40d941d

Merge branch 'master' into rust-rec-bin-heap

view details

push time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha 5303edd9deeec08bb61ff2e01dbf7858f7562d0b

Implemented binary heap with vec backend (#11) * Implemented binary heap with vec backend * fix a derp * forgot one fix * more explicit method names

view details

push time in 5 days

PR merged jdrprod/Algos

Reviewers
Implemented binary heap with vec backend

Recursive type coming right after! This one should be easier to review!

+96 -1

3 comments

3 changed files

Moxinilian

pr closed time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha d6a27cb2d443d228e03348bb34768d855f337ffc

restored vec test

view details

push time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha b0177130ffaddd5372ac01f46a67f813949cf8e0

more explicit method names

view details

push time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha e9a40c92cad5b91c98af4946e89250166fa4c523

more explicit method names

view details

push time in 5 days

pull request commentjdrprod/Algos

Implemented binary heap with vec backend

Heapify is great, commit incoming.

Moxinilian

comment created time in 5 days

pull request commentjdrprod/Algos

Implemented binary heap with vec backend

Any suggestion? I struggled for a while to end up picking "fix".

Moxinilian

comment created time in 5 days

PR opened jdrprod/Algos

Rust recursive binary heap

Depends on #11

Implemented a recursive version of binary heaps. The clash between the simplicity of the Vec version vs the mutable recursive version under borrowchecker rules is very instructive. It's a great example of the "loose" nature of current Rust borrowchecking, and while it thus requires doing more matches than necessary, it illustrates one of Rust's usual attitude towards writing code: make it extremely explicit, LLVM will take care of removing useless code.

+416 -1

0 comment

3 changed files

pr created time in 5 days

create barnchjdrprod/Algos

branch : rust-rec-bin-heap

created branch time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha 96e7a9cd86ac9afa279b81fa24f65db3a47847cb

forgot one fix

view details

push time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha eb13793a2806b0b0705654eb63e8d777ee4b8e18

fix a derp

view details

Théo Degioanni

commit sha 5a744adfeed0142c361c982a60bcfe678e545b46

Merge branch 'rust-binary-trees' of github.com:jdrprod/Algos into rust-binary-trees

view details

push time in 5 days

pull request commentjdrprod/Algos

Implemented binary heap with vec backend

I fucked up, please wait for me to fix it before reviewing.

Moxinilian

comment created time in 5 days

push eventjdrprod/Algos

hugo

commit sha b5cdba38855fe9941708b9c340a81883dc913d2a

Added clean to the C_implem Makefile

view details

hugo

commit sha 54a164b18da45f9eb6502f8649b2504051e9aa5f

Updated the name of int lists module and added mem

view details

hugo

commit sha cadd6f9bc9ce645c69e895bf32f1b9a65ed7a087

Updated test for int lists

view details

hugo

commit sha b9f16898a071ad2c51eef3271a6654fc21c14868

Added generic lists

view details

hugo

commit sha ed6ef0f5b8ad58b447a643c7185ba9e94fdc9d05

Changed the test

view details

hugo

commit sha 8ebccdc56cadae5f3a58025f3a74370ea5698cca

Fixed typo

view details

hugo

commit sha 7ba9e46d18bf3d6756f5f0dcdb3303d34c5f8ed1

Destroy cells is now tail call

view details

hugo

commit sha 3954988e40ecf2f307e3093613368c3482fc2a08

head and tail now return error for empty lists

view details

Hugo Francon

commit sha 06027050d9dcee90ac627dca03e4bac192d8ae1a

Merge pull request #8 from jdrprod/linked_lists Linked lists

view details

Théo Degioanni

commit sha 5b6b34e30a58166606c8f8f1c040a4a198dc7baf

Rust graphs (#7) * Implemented binomial trees in Rust * Fixed a bug in the order method * Added Rust graphs Co-authored-by: Arthur Correnson <arthur.correnson@gmail.com>

view details

Théo Degioanni

commit sha daa4fa669c5b908134441f7e05a7300bf35d9b0a

Merge branch 'master' into rust-binary-trees

view details

push time in 5 days

PR opened jdrprod/Algos

Implemented binary heap with vec backend

Recursive type coming right after!

+91 -1

0 comment

3 changed files

pr created time in 5 days

create barnchjdrprod/Algos

branch : rust-binary-trees

created branch time in 5 days

push eventjdrprod/Algos

Théo Degioanni

commit sha 5b6b34e30a58166606c8f8f1c040a4a198dc7baf

Rust graphs (#7) * Implemented binomial trees in Rust * Fixed a bug in the order method * Added Rust graphs Co-authored-by: Arthur Correnson <arthur.correnson@gmail.com>

view details

push time in 7 days

PR merged jdrprod/Algos

Rust graphs

Depends on #4

Abstract graphs are hard to get right and reason about in Rust, so I made this helper struct that aims at covering the basic abstract graph needs in the upcoming implementations. It's pretty bare-bone right now, so if you have any feature suggestion I'd gladly take them.

+74 -0

0 comment

2 changed files

Moxinilian

pr closed time in 7 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentjdrprod/Algos

Linked lists

 void append_int_list(int val, int_list_t* list) {     list->length += 1; } -void destroy_int_cells(int_cell_t* cell) {+static void destroy_cells(cell_t* cell) {     if (cell != NULL) {-        destroy_int_cells(cell->tail);+        destroy_cells(cell->tail);         free(cell);     } } -void destroy_int_list(int_list_t* list) {-    destroy_int_cells(list->cell);+void destroy_list(list_t* list) {+    destroy_cells(list->cell);     free(list); } -void empty_int_list(int_list_t* list) {-    destroy_int_cells(list->cell);+void empty_list(list_t* list) {+    destroy_cells(list->cell);     list->cell = NULL;     list->length = 0; } -// Visualisation+// Function with return++void* head_list(list_t* list) {+    return list->cell->head;+}++list_t* tail_list(list_t* list) {  //list has to not be empty

Perhaps you could just return NULL on an empty list?

Drakzia

comment created time in 20 days

PullRequestReviewEvent

push eventjdrprod/Algos

Théo Degioanni

commit sha ad70eb86d5a53a5c257b995df4bd9f0f7d363dd0

Implemented binomial trees in Rust (#4) * Implemented binomial trees in Rust * Fixed a bug in the order method

view details

push time in 20 days

PR merged jdrprod/Algos

Reviewers
Implemented binomial trees in Rust

Oh boy.

So I implemented binomial trees in Rust to see how it would fare. I think the most interesting thing to learn here is how incomplete the standard library is with respect to linked list, they are quite painful to use. This is definitely not the most efficient implementation, and in fact it tries to follow the description I received of it quite meticulously. Still, out of mere curiosity, I'd love to have some benchmarks to compare the different implementations. I wonder how the trade-offs I had to made will impact performance competitiveness with other languages. What is for sure is that it reduced clarity.

I think the code is self-documented (beyond the couple comments I added), if you need me to change anything feel free to review. Hopefully there is no bugs, too.

+226 -0

1 comment

5 changed files

Moxinilian

pr closed time in 20 days

PR opened jdrprod/Algos

Rust graphs

Abstract graphs are hard to get right and reason about in Rust, so I made this helper struct that aims at covering the basic abstract graph needs in the upcoming implementations. It's pretty bare-bone right now, so if you have any feature suggestion I'd gladly take them.

+300 -0

0 comment

6 changed files

pr created time in 20 days

create barnchjdrprod/Algos

branch : rust-graphs

created branch time in 20 days

Pull request review commentjdrprod/Algos

Implemented binomial trees in Rust

+#![feature(linked_list_cursors)]++pub mod binomial_heap;++fn main() {+    println!("Hello, world!");

You can find a test at the bottom of the main implementation file. The main file really is just so that cargo does not get confused. Maybe it could be used at some point but right now there is no need I think.

Moxinilian

comment created time in 20 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentjdrprod/Algos

Add algorithms on basic trees

Personally I would be in favor of using the Queue module. Not only is it more explicit and readable, but it moves the responsibility of performance to somebody else.

jdrprod

comment created time in 23 days

pull request commentjdrprod/Algos

Add Combinatoric functions over lists

Are you sure continuations do anything to save the stack? Every time you create a sub-function moving values, they need to be kept somewhere. Thus they either are on the stack, or worse, on the heap.

jdrprod

comment created time in 23 days

pull request commentjdrprod/Algos

Add Heap and Resizable arrays

By doing that you would kill the generics tho.

jdrprod

comment created time in 24 days

push eventjdrprod/Algos

Théo Degioanni

commit sha eb2199e09decb5989bd7ee9160da4135bc6e99cc

Fixed a bug in the order method

view details

push time in 24 days

pull request commentjdrprod/Algos

Implemented binomial trees in Rust

(by the way it will only build on the nightly channel as the cursor API is not stable yet)

Moxinilian

comment created time in 24 days

PR opened jdrprod/Algos

Implemented binomial trees in Rust

Oh boy.

So I implemented binomial trees in Rust to see how it would fare. I think the most interesting thing to learn here is how incomplete the standard library is with respect to linked list, they are quite painful to use. This is definitely not the most efficient implementation, and in fact it tries to follow the description I received of it quite meticulously. Still, out of mere curiosity, I'd love to have some benchmarks to compare the different implementations. I wonder how the trade-offs I had to made will impact performance competitiveness with other languages. What is for sure is that it reduced clarity.

I think the code is self-documented (beyond the couple comments I added), if you need me to change anything feel free to review. Hopefully there is no bugs, too.

+226 -0

0 comment

5 changed files

pr created time in 24 days

create barnchjdrprod/Algos

branch : rust

created branch time in 24 days

issue commentbevyengine/bevy

Unable to serialize Gamepad related struct & enums

Could you send the error message in a code block instead (using triple backquotes instead of single backquotes), I'm having a really hard time deciphering the message without line breaks. But the fact that it panics while panicking is really not good.

PradeepKumarRajamanickam

comment created time in a month

issue commentbevyengine/bevy

Unable to serialize Gamepad related struct & enums

It seems like the Serialize and Deserialize trait are not implemented for those stricts as they should be. Fixing this is just a matter of adding the derive macros like it is done for keyboard values in bevy_input.

PradeepKumarRajamanickam

comment created time in a month

issue closedbevyengine/bevy

Thread local systems do not compile

According to the docs, you can make a thread-local system that has access to the World and Resources like this:

fn system(world: &mut World, resources: &mut Resources) {
    // do something
}

So I made a little test program...

use bevy::prelude::*;

fn main()
{
        App::build()
            .add_system(system.system())
            .run();
}

fn system(world: &mut World, resources: &mut Resources) {
    // do something
}

Unfortunately this does not seem to compile for me. I get this error:

error[E0599]: no method named `system` found for fn item `for<'r, 's> fn(&'r mut bevy::prelude::World, &'s mut bevy::prelude::Resources) {system}` in the current scope
  --> src/main.rs:22:32
   |
22 |             .add_system(system.system())
   |                                ^^^^^^ method not found in `for<'r, 's> fn(&'r mut bevy::prelude::World, &'s mut bevy::prelude::Resources) {system}`
   |
   = note: `system` is a function, perhaps you wish to call it

I'm using rustc v1.46.0.

closed time in a month

Bauxitedev

issue commentbevyengine/bevy

Thread local systems do not compile

I believe the interface to register a thread local system is not .system but .thread_local_system. Please tell us if that does the trick!

Bauxitedev

comment created time in a month

issue commentbevyengine/bevy

Getting an entity's children

This feature already exists in the engine: simply acquire the Children component of the parent entity (added automatically by the engine) to access a list of all its children.

However, this should be better documented. Maybe a general example on hierarchies could help?

Bauxitedev

comment created time in a month

issue commentbevyengine/bevy

cpu usage

Can anybody experiencing high CPU usage previously testify the new task system fixes this issue?

coolit

comment created time in 2 months

issue commentbevyengine/bevy

DX12 backend renders various things incorrectly

Has this been tested with newer versions of wgpu now that it is fixed upstream?

cart

comment created time in 2 months

issue commentbevyengine/bevy

win10 2004 link error

Have you ever tried building an example of at gfx-rs/wgpu with your current config? It seems like DirectX stuff is failing to link, so maybe it's an issue upstream.

hekia

comment created time in 2 months

issue commentbevyengine/bevy

MismatchedDynamicOffsetCount error

Did #247 fix this for you?

arlyon

comment created time in 2 months

issue closedbevyengine/bevy

Some examples freeze after launch on macos.

cargo run --example ui

closed time in 2 months

warycat

issue commentbevyengine/bevy

Some examples freeze after launch on macos.

I'm closing this, as it seems to be expected behaviour.

warycat

comment created time in 2 months

issue commenttauri-apps/tauri

MOBILE when?

For what it's worth however, I don't really understand the motivation behind unifying both mobile implementations. The way one accesses them is sufficiently different that in my opinion they deserve specialized code. Also, adding a Kotlin layer would add one more layer of indirection iOS does not need when you can simply access the relatively simple WebKit interface through regular FFI.

nothingismagick

comment created time in 2 months

issue commenttauri-apps/tauri

MOBILE when?

To the extent of my capabilities, yes!

nothingismagick

comment created time in 2 months

issue commentbevyengine/bevy

Fix ssot conflict between Transform and Translation/Rotation/Scale

I'd say the title is sufficiently generic to cover changes too. But if you want we can reopen this issue!

MarekLg

comment created time in 2 months

issue closedbevyengine/bevy

Fix ssot conflict between Transform and Translation/Rotation/Scale

At the declaration of Transform.bool it is noted, that this would be a temporary measure. Are there already any ideas on how to improve this system?

If not I would like to present a possible solution: Wherever Transformis required, if there is none attached, build it (maybe with #266) from Translation, Rotation, Scale, or Trasform::identity(), if nothing else is present. DynamicBundleswould have to restrict creation to just Transform, which could however incorporate Translation, Rotationand/or Scaleby using the above mentioned TransformBuilder.

I'm not sure if I'm missing the point here, so if I am, I'd at least try to start the discussion.

closed time in 2 months

MarekLg

issue commentbevyengine/bevy

Fix ssot conflict between Transform and Translation/Rotation/Scale

Hey! I think this is kind of a duplicate of #229, feel free to post your suggestion there!

MarekLg

comment created time in 2 months

push eventMoxinilian/bevy

Carter Anderson

commit sha 4a8c6c335a325c54acbb50f7b538e37ccbabfa8a

ui: feed computed image size into bevy_ui flex

view details

Carter Anderson

commit sha 3d2a4f6c394becf78dbce9e5af8a2ba24970003d

ui: combine Click and Hover into Interaction

view details

Carter Anderson

commit sha 543ec8653071ad5d0970ed2c2a302bcc75ddb716

remove cargo.toml opt level override

view details

Carter Anderson

commit sha 6dadf34401b02281f7bb59cdb4d22bcebbb5dc3d

add more example comments

view details

Carter Anderson

commit sha 7212b70478c8465b178611794d5738703eb9f6f1

rustfmt changes

view details

Carter Anderson

commit sha 77f4e60c8cc48089712a3cceeac4e867b7e3a665

cleanup import

view details

Carter Anderson

commit sha 64cc382477bb3b656b31e43e69c0f931e34a1db4

ecs: move copy of QueryBorrow into bevy_ecs and fix perf regressions

view details

Carter Anderson

commit sha bd8e979de81bb62666eb1a0036486edca8c0bf94

ecs: only borrow/iterate archetypes currently used by a given query

view details

Carter Anderson

commit sha 2929197d9bce13507983b7a41650ec577fdc2384

render: add RenderPass queries. move ui to its own pass

view details

Carter Anderson

commit sha db665b96c07084f081b0c9ab367e67297fe35132

ui: fix z indices and depth calculations

view details

Carter Anderson

commit sha a2c1a906958474a047dbce4e5f2666d1df62af59

fix ui in font atlas and breakout examples

view details

Carter Anderson

commit sha ca87359c6ed4e765fd22c4aa43156e4008001589

render: add MSAA support

view details

Carter Anderson

commit sha 44c08f90aaab3011d0bb3b7faa207e92dd19da50

render: remove Drawable implementation from RenderPipelines because it doesnt add any value

view details

Carter Anderson

commit sha f85ec04a4811bb12e890b635fb19107408c7c8d1

ecs: prepare system ranges based on stage and thread locals

view details

Carter Anderson

commit sha 54eaa2bdc6a12cc3ba243da0367806d77a63b544

render: easier msaa color attachments and fix multi-window example

view details

Carter Anderson

commit sha ccf81edd8f5f0181835e73dff59dce2f7e21f304

render: add atlas padding support to work around MSAA artifacts, disable MSAA by default

view details

Carter Anderson

commit sha 471639841bc70a0b2325ab3833058b0824841b23

more optional features

view details

Carter Anderson

commit sha bb111cbafa284ca77ebab94b38d438bcd332a7e5

more example cleanup and polish

view details

Carter Anderson

commit sha 3c1494eb64815716c3b9895eb04da8446d954f9a

scene: rename "spawn" to "instance"

view details

Carter Anderson

commit sha 07858aa3487f236a3233438ce11bf662bee8b829

scene: fix dynamically loading RenderPipelines scenes

view details

push time in 2 months

issue commenttauri-apps/tauri

MOBILE when?

Are there concrete points on which new contributors could spend time in order to move this effort forward?

nothingismagick

comment created time in 2 months

PublicEvent
more