Share your projects


I've just replanted my scotch bonnet chillis. This far north they generally only flower and fruit on the second year, and I planted these last year, so they should be producing this year in later summer. One of them that started out as a bit of a weedling so I left it in a smaller pot through winter has turned into some kind of bonsai naturally, but now I've potted it into a bigger pot I expect it to spread out quite quickly. The others shot up, but didn't grow significant leaves on the stem apart from at the top, which is how it usually goes.

These are originally based on shop bought peppers bought about 2010, and after removing the seeds before chopping them up I decided to see if I could grow them. They then grew and produced fruit, and again I saved the seeds. This is therefore the fifth or sixth generation since then.
 
You want to make a broom out of it. Poor bonzai!


hehe I think the knotted willow might be a dutch thing, I think they made baskets from the branches in the early days, maybe when bonsai (I call him mr. myagi) gets old I can make a mini-basket from its branches :D

Also seeded some tomato plants, we got a tomato plants four years ago, and this is the fourth generation from the same plant we got!
 
Used a small 11x14 pixel mosaic canvas to make a Pyra logo thingy. Did not like it, as it is too dark. I should have used a more lighter background color. This is the digital image:
dp pyra rounded.png
(criticism welcome)
product used: http://www.pixelhobby.com.au/

pyra_logo_pixel.jpg


with a bigger canvas you can dither any image, examples:
 
So this is not a specific project, this is because I had a problem in Linux and I had to solve it. In fact, it is an overgrown Perl script which, started as a 5-minute solution, a few hours later transformed into an application with its own config file.
So there are these cheap MP3 players which look like iPod Shuffle, or these even cheaper digital picture frames which take a SD card. The common thing is that they play/show their content by the order from the file table on the card, i.e. the order the files have been written. So if I want to add MP3s to such player in a specific order, under Windows I have to copy them one by one.
However the thing under Linux is totally different - Linux caches a lot and it's not certain that entries would be copied specifically while syncing before unmount.
In the program, first files are loaded and can be sorted automatically or freely. Then, the target directory is set and a prefix for file names can be set too. After setting options, files are copied in a given order and every file the filesystem is synchronized.



CopyInOrder.png

Sorry for the DPI messed up, I intentionally messed up DPI on my new notebook as all buttons on GTK toolbars looked enormously large with default one.

The pre-processing visible in screenshot is another thing - it allows to launch a script for every file's copy. It has been made mostly to downsize images for these picture frames, but here the "prepend.sh" is something I quickly put for audiobooks - it adds a short "Part one" "Part two" etc. to each file, spoken by synthesizer, because these cheap MP3 players have no display.

The post-processing allows to perform some operations on the copied file. In th ebottom of window, the top progress bar is per current file, the bottom is for a whole list.

When I'll be certain that it does not "unlink" (as called in Perl) my home directory I'll probably put it in my page.

Now some technical details: The GUI has been quickly put to one piece with the software called ZooZ, this is for Perl and allows not only to design the interface, but also to connect GUI parts to variables and subroutines, it also creates empty subroutines to fill. After exporting the project to Perl program all everything needed was to write the pop-up menu for the "+" button (as it is not supported in ZooZ) giving options to add chosen file, chosen directory or chosen directory recursively, but I added there additional option to save default settings and clear list for some reason. Next, all routines are in Perl.
So here are my thoughts: First, since I was writing a GUI application in Perl a few years ago Perl did not changed at all. The bugs which were present before are still here (especially in File:: module) and drag and drop still causes X11 to barf, well, this widget toolkit is a bit dated probably but still more ergonomic than GTK and lighter than Qt.
 
Last edited:
Because there's always another project to not finish...


Works pretty well, though I need to add some code to skip hidden cubes, as it's causing a drop from 60 fps to about 20fps

Not even real "3D" either...

Maybe I'll actually turn something into a game eventually
 
@Null how does it run? What software did you try?

@pmprog So, what language? Did you hand coded the skip-this-block-from-rendering or is it a lib?
 
@pmprog So, what language? Did you hand coded the skip-this-block-from-rendering or is it a lib?
It's C++ using my LitheFX framework over Allegro 5. The voxel code is all hand coded. Though as I've been trying to figure out improvements, I've a few other ideas still to try. Although running at 50fps isn't all that bad, especially coming from a 50Hz PAL C64 user.
I do hope i could get a better resolution. Ideally i think I'd like a 256x256x128, but 128x128x96 should be enough
 
Last edited:
Okay, kind of surprised myself a bit here... I've had a couple of threads going on the Allegro boards (because they lock so quick), so I'll copy it here

I have made some decent progress


Now this uses 6 triangles per cube, rather than 2 for drawing a prerendered cube. However, I only draw visible surfaces, and in theory, I should be able to "rotate" the camera if I get confident enough.

Now, if I create a single Voxel class of 128x128x128, performance degrades quite quickly as it rebuilds the vertex buffers. However, if you create several 32x32x32 Voxels and draw them next to each other, performance is much improved.

The VBOs are cached, so I'm only adjusting VBOs for rows that have been changed, and there's a "HoldRefresh" function so if I update multiple voxels in a single row, I can wait until I've done them all before the VBO is refreshed.

I haven't actually measured the performance yet, but seems fairly smooth, and as long as I keep animations and transparency to a minimum, should end up being quite a smooth engine.

Thanks for the suggestion, I'll keep ray-marching in mind if I do run into performance problems, but at the minute, I'm thinking it's looking fairly good.
 
@Null how does it run? What software did you try?

It crashed a few times, though I don't know if that was due to the OS being wonky or due to me running it in VirtualBox. I've only got round to trying out the built in stuff so far, which seemed a bit sparse considering the install size.
 
So I tried to implement a "metavoxel" so I can pretend to have a really large voxel, but ... yeah... it's glitchy. I'm also not sure I can write the game with high enough resolution to produce the type of game I was intending, whilst getting the performance

 
I'm also not sure I can write the game with high enough resolution to produce the type of game I was intending, whilst getting the performance
Yeah, that's what usually happens to voxel projects, they don't scale all that well, and hardware doesn't really support what they're trying to do.
 
Yeah, that's what usually happens to voxel projects, they don't scale all that well, and hardware doesn't really support what they're trying to do.
It might be possible. MagicaVoxel seems to be able to handle 256x256x128 voxel scenes without any noticable slowdown... so maybe it is possible, but it will probably require a redesign on how I build my voxel meshes
 
I guess what I really need to do is see what resolution I can get my character designed and animated at to see how big I need my scene to be.
I've done a fair amount of Lego lately with my son. Maybe I need to see if I can build my characters using only chunky blocks, and how many I'd need
 
What I should do during the lockdown:
- Work on my thesis,
- Finish writing my papers,
- Perform final computations for research (this is no way quick, a few weeks using 64 cores and 128GB of RAM!),
- Maybe send a few evolutionary programming papers to review or even publishing, they are "in a freezer" since 2017.
- If all else fails, I have a few unfinished retrocomputing projects.
What I really did during the lockdown:
- Shown that it is possible to replace any linear bearing using a cardboard soaked with a solution of "universal" green grease and oil and this works for a few weeks of continuous operation, after which it is needed to add missing grease+oil compound by using a small enema bulb. Proportions of oil and grease are critical for specific application.
- Built a crank-powered device which takes ball pen refills with tips cut off and a shot glass of any alcohol and regenerates dot matrix printer cartridges using only these "consumables". Printer prints in blue with these ribbons but contrast is still very nice.
- Although buying a super-fast mobile workstation with 16GB of RAM, 8 cores, 2GB video accelerator with CUDA and over 1TB of storage, I ended with moving data there and still sit on clunky 2GHz/2GB/500GB 11 year old notebook.
 
using a cardboard soaked
Won't the cardboard wear out like a soaked tissue? Like, uh, Cardboard fatigue!
I put alcohol in my markers too.. gives them new life.. and if you use liquors, you get also an odour when you use them.
 
Back
Top