f-log

just another web log

23 Oct 2026:
3d snake sculpt

Snake Print

The DM gave us access to Uncommon Magical items and I bought "Staff of Python" !

A staff that becomes a Giant Constrictor Snake

Time for Blendering!!

First off I created a 3D curve and extruded a circle along it.

blender extruded 3d curve

The I added another curve to define a taper.

blender extruded 3d curve tapered

Then I attached a head and used the Sculpt tools.

blender partial sculpted snake

I used a Voronoi texture with the thresholds modified to make a snake skin scale pattern.

Manually painting it on took ages, but it looks good!

blender sculpted snake

Then it was off to Prusa Slicer. I used Organic supports.

prusa slicer sculpted snake with organic supports

I printed it too small originally. This is a Giant creature!

snake 3d printed

The two larger prints are done at different detail levels.

Removing the supports was a pain and one of the snakes lost its head! I glued it back on.

In retrospect I should have printed them without the base to help with safely removing support material and then glued them onto blank bases.

Sadly you can not see the scales I spent so long adding.

23 Oct 2026:
qemu alpine linux desktop

Alpine VM in qemu

Get qemu to run Alpine Linux and stick around to add a desktop.

Alpine is a very small Linux distro, often used for virtual servers, but I wanted a tiny desktop VM.

Get Alpine

There are various versions of Alpine on the Downloads page make sure you select from the Virtual category e.g.

wget "https://dl-cdn.alpinelinux.org/alpine/v3.24/releases/x86_64/alpine-virt-3.24.2-x86_64.iso"

Create a virtual disk

The one thing we need is a virtual disk to install Alpine onto.

qemu-img create -f qcow2 alpine-disk.qcow2 16G

Will return almost immediately. The disk file will resize automatically as it used.

Boot into the Alpine ISO

Now we just need to tell qemu what to boot from with our new disk file attached.

qemu-system-x86_64 -enable-kvm -m 2048 -smp 2 -vga virtio -drive file=alpine-disk.qcow2,if=virtio -cdrom alpine-virt-3.24.2-x86_64.iso -boot d

Change the disk name and ISO to match the ones you have.

Install Alpine

Enter the user

root

There is no password

setup-alpine

Set your keymap e.g.

gb

Set the keymap variant e.g.

gb

Enter a hostname, optional e.g.

alpine

Set up the network

initialize

default (eth0)

IPv4 address

default (dhcp)

IPv6 address

default (auto)

do you want any manual network configuration

default (n)

Root password (enter it twice to confirm)

Timezone e.g.

GMT

Proxy

default (none)

APK mirror

default (1)

User (create a user)

ssh key

default (none)

ssh server

default (openssh)

Disk and Install

vda

How to use the disk

sys

erase disk

y

there is no shutdown command so when it asks to reboot

halt

the vm will not shut after it stops running, so just close the window once it is done

Boot into the installation

qemu-system-x86_64 \
  -enable-kvm -m 2048 -smp 2 -vga virtio \
  -drive file=alpine-disk.qcow2,if=virtio \
  -netdev user,id=net0,hostfwd=tcp::2222-:22 \
  -device virtio-net-pci,netdev=net0 \
  -device qemu-xhci \
  -device usb-tablet \
  -device usb-kbd \
  -display gtk,zoom-to-fit=off

We are now booted into the new installed Alpine on our virtual disk.

SSH into the VM

I do not want to type long complicated commands into the qemu window and openssh is running.

How can I tunnel a port from the local host machine into the qemu VM?

ssh -p 2222 user@127.0.0.1

where user is the user you created during the setup-alpine process

Adding a graphical desktop

There is no sudo command, instead you use doas

doas vi /etc/apk/repositories

uncomment, remove the # before the communities line, save and exit

doas apk update
doas apk add xorg-server xf86-input-libinput xfce4 xfce4-terminal lightdm lightdm-gtk-greeter mesa-dri-gallium eudev elogind polkit-elogind xfce-polkit xrandr

echo "exec startxfce4" > ~/.xinitrc

doas rc-update add udev sysinit
doas rc-update add dbus default
doas rc-update add elogind boot
doas rc-update add polkit
doas rc-update add lightdm default

doas vi /etc/init.d/udev-settle

and delete all the existing lines and add

#!/sbin/openrc-run
# Copyright 2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

depend() {
    need udev
    after udev-trigger
    provide dev-settle
    keyword -containers
}

start() {
        ebegin "Triggering uevents"
        udevadm trigger
        eend $? || return 1

        ebegin "Waiting for uevents to be processed"
        udevadm settle \
            ${udev_settle_timeout:+--timeout="${udev_settle_timeout}"}
        eend $?
}

This allows the mouse and keyboard to work in the VM.

Force display resolution

mkdir -p .config/autostart
vi .config/autostart/display.desktop

and paste in

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=display
Comment=resolution
Exec=xrandr --output Virtual-1 --mode 1920x1080
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false

save and exit

where the mode is the resolution you want the VM to run once you are logged in. If you set the resolution in the Settings it will only work until you reboot, hence this hack.

Force the keyboard to GB

The default keyboard is US, this will switch it to GB

mkdir -p .config/xfce4/xfconf/xfce-perchannel-xml
vi .config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml

and enter

<?xml version="1.1" encoding="UTF-8"?>

<channel name="keyboard-layout" version="1.0">
  <property name="Default" type="empty">
    <property name="XkbDisable" type="bool" value="false"/>
    <property name="XkbLayout" type="string" value="gb"/>
    <property name="XkbVariant" type="string" value=""/>
  </property>
</channel>

save and exit

doas reboot

Now the login screen appears and you can login!

Xfce4 lightdm login

and if you have not followed the set the display resolution you get an itty bitty screen like this !

xfce4 desktop 800x600

I suggest you back up your qcow disk image then you can use it as blank template for installing things like chromium

doas apk add chromium
04 Oct 2026:
a quick box print

A quick box print

I consider myself quite proficient at Blender, but I messed up this time.

Got a cheap rotary tool from Amazon to fix a D&D figure I printed. The box it came in was just packaging and there are number of loose attachments etc.

I know, I can 3D print a box for it!

I wanted it to be a simple as possible. So I could tweak it as necessary.

blender screenshot flat geometry of box

The box has no volume to any of the planes (ignore the corner posts, they are separate). The plan being to use the Solidify modifier...

Sort of worked, well it looked good so exported to .STL and opened in Prusa slicer.

prusa screenshot box sliced

and ... I did not notice the gaping hole at the bottom :(

so after 8 hours I had ...

photo of failed box 3d print

I went back to Blender and found that the geometry that the Solidify modifier creates when you have extruded planes was bit odd. Lots of crossed over and missing faces.

Fixed that and increased the thickness from 1mm to 1.5mm

blender screenshot box geometry fixed

I used a quick Solidified box with the Array modifier to replace the separators.

blender screenshot box with separators

The Boolean modifier stuck the posts and the separators all together.

and ...

It prints! Twelve hours now with the thicker walls.

photo 3d print complete

photo 3d print holding tool

I was going to embed magnets, but I cannot find any of my magnets.

loading results, please wait loading animateloading animateloading animate
[More tags]
rss feed

email

root

flog archives


Disclaimer: This page is by me for me, if you are not me then please be aware of the following
I am not responsible for anything that works or does not work including files and pages made available at www.jumpstation.co.uk I am also not responsible for any information(or what you or others do with it) available at www.jumpstation.co.uk In fact I'm not responsible for anything ever, so there!