For those who are Marvel Rivals fans or study gaming files, here is a useful video tutorial.
2D, 3D, game, games, online game, game development, game engine, programming, OpenGL, Open AI, math, graphics, design, graphic, graphics, game development, game engine, programming, web development, web art, web graphic, arts, tutorial, tutorials,
Se afișează postările cu eticheta tutorial. Afișați toate postările
Se afișează postările cu eticheta tutorial. Afișați toate postările
sâmbătă, 11 ianuarie 2025
joi, 2 ianuarie 2025
News : Roblox Studio changes and access places
Roblox comes with new features into Roblox Editor.
One is the the palaces area witch is Private - security reason by team developmen, and you not see this type of scene into default Roblox Studio Editor.
If you want to edit one of this you need to use this way, see this screenshot from the official webpage.
duminică, 29 decembrie 2024
Blender 3D : ... all available nodes !
An old surce code in python for Blender 3D to see available nodes :
import bpy
node_tree = bpy.context.object.active_material.node_tree
location_x = 0
location_y = 0
for type in dir(bpy.types):
real_type = getattr(bpy.types, type)
if issubclass(real_type, bpy.types.ShaderNode):
try:
node = node_tree.nodes.new(type)
node.width = 250
node.location = (location_x, location_y)
location_x += 300
if location_x > 3000:
location_x = 0
location_y -= 600
except:
pass
Posted by
Cătălin George Feștilă
Labels:
2024,
2D,
3D,
Blender 3D,
design,
graphic,
graphics,
open source,
source code,
tutorial,
tutorials,
video tutorial,
youtube
duminică, 1 decembrie 2024
Inkscape : watercolor effect on inkscape version 1.4 .
... the watercolor effect in inkscape can be found in the main menu : Filters - Textures - Watercolor.
Just draw a shape an then select the filter.
Use Filters - Filter Editor ... to edit the filter, see this image:
joi, 21 noiembrie 2024
News : ... test with the Tascade agent using custom data.
Today I tried to build an agent in taskade using my data.
I wanted to see if I could create SVG files using the data I entered.
I used a link and this PDF file as agent training data.
After training, I asked them to create an SVG file for me.
Here is the result:
Posted by
Cătălin George Feștilă
Labels:
2024,
2024 news,
artificial intelligence,
news,
taskade,
tutorial,
tutorials
miercuri, 20 noiembrie 2024
FASM : simple bootloader source code with menu .
This is the source code with a boot menu and can be tested with qemu emulator.
I need to use the Sonet 3.5 artificial inteligence to search infos and make this source code better, but I learn assembly in the past.
The compile commands of the source code:
mythcat@localhost:~/fasm$ ./fasm.x64
flat assembler version 1.73.32
...
mythcat@localhost:~/fasm$ ./fasm.x64 bootloader.asm bootloader.bin
flat assembler version 1.73.32 (16384 kilobytes memory, x64)
2 passes, 512 bytes.
The test with qemu tool:
mythcat@localhost:~/fasm$ qemu-system-x86_64 -drive format=raw,file=bootloader.bin
Let's see the source code:
; Simple Bootloader with Menu for QEMU
; Written in FASM
org 0x7C00
format binary
start:
; Clear the screen
xor ax, ax
mov ds, ax
mov es, ax
mov ah, 0x0
int 0x10
; Display the menu
call display_menu
main_loop:
; Wait for key press
call wait_for_input
; Check key pressed
cmp al, '1'
je handle_option1
cmp al, '2'
je handle_option2
; Invalid option, restart
jmp main_loop
handle_option1:
; Option 1 selected
mov si, option1_msg
call display_message
call wait_for_input ; Wait for any key
jmp start ; Return to menu
handle_option2:
; Option 2 selected
mov si, option2_msg
call display_message
call wait_for_input ; Wait for any key
jmp start ; Return to menu
display_menu:
; Display the menu
mov si, menu
call print_string
ret
wait_for_input:
; Wait for a key press
xor ax, ax
int 0x16
ret
print_string:
; Print string at DS:SI
mov ah, 0x0E
@@:
lodsb
test al, al
jz @f
int 0x10
jmp @b
@@:
ret
display_message:
; Print message at DS:SI
call print_string
ret
menu db 'Simple Bootloader Menu', 13, 10
db '1. Option 1', 13, 10
db '2. Option 2', 13, 10
db 'Select an option: ', 0
option1_msg db 13, 10, 'You selected Option 1!', 13, 10
db 'Press any key to return to menu...', 13, 10, 0
option2_msg db 13, 10, 'You selected Option 2!', 13, 10
db 'Press any key to return to menu...', 13, 10, 0
rb 510-($-$$)
db 0x55, 0xAA
This is the result:
Posted by
Cătălin George Feștilă
Labels:
2024,
artificial intelligence,
assembly,
design,
FASM,
graphic,
graphics,
tutorial,
tutorials
duminică, 10 noiembrie 2024
Blender 3D : how to model this Snowflake Decor in blender _ blender modeling
... another video tutorial with a snowflake by CG VOICE !!!
Posted by
Cătălin George Feștilă
Labels:
2024,
2D,
3D,
Blender 3D,
design,
graphic,
graphics,
tutorial,
tutorials,
video tutorial,
youtube
sâmbătă, 26 octombrie 2024
Breaking the Windows Clipboard
... this will help you to understand how clipboards is designed to work, from the ThioJoe - youtube channel:
News : many videos from Marvelous Designer.
... many videos with features from the Marvelous Designer - youtube channel.
Posted by
Cătălin George Feștilă
Labels:
2024,
2024 news,
Marvelous,
Marvelous Designer,
news,
tutorial,
tutorials,
video tutorial,
youtube
joi, 3 octombrie 2024
Pydroid 3 android application for python ...
The Pydroid3 android application is the best way to test and run python scripts.
I install python packages with the install option, the pip command on terminal comes with errors for same python package.
I used the free version but if you pay for monthly or lifetime then you can have more features.
Same team come with android applications to have add more features, see these IIEC team appplicatons.
luni, 23 septembrie 2024
Online tool : draw SVG with artdraw ...
You can find this online tool on this url.
Posted by
Cătălin George Feștilă
Labels:
2024,
2D,
drawing,
graphic,
graphics,
online tool,
svg,
tutorial,
tutorials,
video tutorial
duminică, 1 septembrie 2024
News : FreeBSD in 100 Seconds.
... I tested a long time ago..., an old Live FreeBSD from an IT Romanian magazine. It is very fast and comes with a great graphic user interface.
Posted by
Cătălin George Feștilă
Labels:
2024,
2024 news,
Fireship,
news,
tutorial,
tutorials,
video,
video tutorial,
youtube
sâmbătă, 31 august 2024
News : Shaders | Jetpack Compose Tips
... about shaders fron the official youtube channel : AndroidDevelopers.
Posted by
Cătălin George Feștilă
Labels:
2024,
2024 news,
android,
news,
tutorial,
tutorials,
video,
video tutorial,
youtube
sâmbătă, 24 august 2024
... a SimCity Game with JavaScript & Three.js !
You can find the playlist with these videos tutorials on this youtube channel - named : Dan Greenheck.
miercuri, 21 august 2024
News : Three.js Game Dev: Wormhole Blaster.
... the youtube channel - robotbobby9 with threejs tutorials :
Posted by
Cătălin George Feștilă
Labels:
2024,
2024 news,
news,
tutorial,
video,
video tutorial,
youtube
joi, 15 august 2024
luni, 12 august 2024
FASM : play a wav file with assembly programming language.
... this source code in FASM will play a hexa file using a window with two buttons, see my comments to deal with 'how to do it' ... :
; sound player example , tested with tada.wav from windows os
; convert wav file with
; tomeko.net/online_tools/file_to_hex.php online tool
; to text from tool , then add 'db ' in the front of Sound.inc text file like this:
; db 0x52, 0x49, 0x46, 0x46,
; this : 0x52, 0x49, 0x46, 0x46, is header for RIFF WAV file format
format PE GUI 4.0
entry start
include 'INCLUDE\win32a.inc'
ID_CAPTION = 101
ID_MESSAGE = 102
ID_ICONERROR = 201
ID_ICONINFORMATION = 202
ID_ICONQUESTION = 203
ID_ICONWARNING = 204
ID_TOPMOST = 301
section '.text' code readable executable
start:
invoke GetModuleHandle,0
invoke DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0
invoke ExitProcess,0
proc DialogProc hwnddlg,msg,wparam,lparam
push ebx esi edi
cmp [msg],WM_INITDIALOG
je .wminitdialog
cmp [msg],WM_COMMAND
je .wmcommand
cmp [msg],WM_CLOSE
je .wmclose
xor eax,eax
jmp .finish
.wminitdialog:
jmp .processed
.wmcommand:
cmp [wparam],BN_CLICKED shl 16 + IDCANCEL ; stop
je .player_stop
cmp [wparam],BN_CLICKED shl 16 + IDOK
je .player_play
jmp .processed
.player_stop:
invoke play, NULL, NULL, NULL ; stop
jmp .processed
.player_play:
invoke play, sndFile, NULL, 0x0004 or 0x0001 ; 0x0004 = SND_MEMORY + ASYNC = 0x0001
jmp .processed
.wmclose:
invoke EndDialog,[hwnddlg],0
.processed:
mov eax,1
.finish:
pop edi esi ebx
ret
endp
section '.bss' readable writeable
sndFile :
;db 'Sound.wav',0
include 'Sound.inc';
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',\
user,'USER32.DLL',\
winmm,'winmm.dll'
import winmm,\
play, 'PlaySound'
import kernel,\
GetModuleHandle,'GetModuleHandleA',\
ExitProcess,'ExitProcess'
import user,\
DialogBoxParam,'DialogBoxParamA',\
EndDialog,'EndDialog'
section '.rsrc' resource data readable
directory RT_DIALOG,dialogs
resource dialogs,\
37,LANG_ENGLISH+SUBLANG_DEFAULT,demonstration
dialog demonstration,'SoundPlayer / _ (typedef)',70,76,110,30,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
dialogitem 'BUTTON','Play',IDOK,10,10,45,15,WS_VISIBLE
dialogitem 'BUTTON','Stop',IDCANCEL,54,10,45,15,WS_VISIBLE
enddialog
sâmbătă, 10 august 2024
FASM : take a screenshot with assembly programming language.
From my old assembly projects, this is a source code that take an screenshot of your display.
format PE GUI 4.0
include 'INCLUDE\win32w.inc'
struct GdiplusStartupInput
GdiplusVersion dd ?
DebugEventCallback dd ?
SuppressBackgroundThread dd ?
SuppressExternalCodecs dd ?
ends
struct ImageCodecInfo
Clsid db 16 dup ?
FormatID db 16 dup ?
CodecName dd ?
DllName dd ?
FormatDescription dd ?
FilenameExtension dd ?
MimeType dd ?
Flags dd ?
Version dd ?
SigCount dd ?
SizeSize dd ?
SigPattern dd ?
SigMask dd ?
ends
section '.text' code readable executable
entry $
invoke GdiplusStartup,token,input,NULL
test eax,eax
jnz exit
invoke GdipGetImageEncodersSize,encoders_count,encoders_size
test eax,eax
jnz gdiplus_shutdown
invoke VirtualAlloc,0,[encoders_size],MEM_COMMIT,PAGE_READWRITE
test eax,eax
jz gdiplus_shutdown
mov ebx,eax
invoke GdipGetImageEncoders,[encoders_count],[encoders_size],ebx
test eax,eax
jnz gdiplus_shutdown
scan_encoders:
mov esi,[ebx+ImageCodecInfo.MimeType]
mov edi,encoder_mimetype
mov ecx,(encoder_clsid-encoder_mimetype) shr 1
repe cmpsw
je encoder_found
add ebx,sizeof.ImageCodecInfo
dec [encoders_count]
jnz scan_encoders
; no encoder found
jmp gdiplus_shutdown
encoder_found:
lea esi,[ebx+ImageCodecInfo.Clsid]
mov edi,encoder_clsid
mov ecx,4
rep movsd
invoke VirtualFree,ebx,0,MEM_RELEASE
invoke GetDC,HWND_DESKTOP
test eax,eax
jz gdiplus_shutdown
mov esi,eax
invoke GetSystemMetrics,SM_CYSCREEN
mov [screen_height],eax
invoke GetSystemMetrics,SM_CXSCREEN
mov [screen_width],eax
invoke CreateCompatibleBitmap,esi,[screen_width],[screen_height]
test eax,eax
jz release_desktop_dc
mov ebx,eax
invoke CreateCompatibleDC,esi
test eax,eax
jz delete_bitmap
mov edi,eax
invoke SelectObject,edi,ebx
test eax,eax
jz delete_dc
invoke BitBlt,edi,0,0,[screen_width],[screen_height],esi,0,0,SRCCOPY
test eax,eax
jz delete_dc
invoke GdipCreateBitmapFromHBITMAP,ebx,NULL,gdip_bitmap
test eax,eax
jnz delete_dc
invoke GdipSaveImageToFile,[gdip_bitmap],file_name,encoder_clsid,NULL
invoke GdipDisposeImage,[gdip_bitmap]
delete_dc:
invoke DeleteObject,edi
delete_bitmap:
invoke DeleteObject,ebx
release_desktop_dc:
invoke ReleaseDC,HWND_DESKTOP,esi
gdiplus_shutdown:
invoke GdiplusShutdown,[token]
exit:
invoke ExitProcess,0
section '.data' data readable writeable
file_name du 'test.jpg',0
encoder_mimetype du 'image/jpeg',0
.length = $ - encoder_mimetype
encoder_clsid db 16 dup ?
input GdiplusStartupInput 1
token dd ?
memdc dd ?
gdip_bitmap dd ?
encoders_count dd ?
encoders_size dd ?
screen_width dd ?
screen_height dd ?
section '.rdata' data readable
data import
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
gdi32,'GDI32.DLL',\
gdiplus, 'GDIPLUS.DLL'
include 'INCLUDE\API\kernel32.inc'
include 'INCLUDE\API\user32.inc'
include 'INCLUDE\API\gdi32.inc'
import gdiplus,\
GdiplusStartup,'GdiplusStartup',\
GdiplusShutdown,'GdiplusShutdown',\
GdipGetImageEncodersSize,'GdipGetImageEncodersSize',\
GdipGetImageEncoders,'GdipGetImageEncoders',\
GdipSaveImageToFile,'GdipSaveImageToFile',\
GdipDisposeImage,'GdipDisposeImage',\
GdipCreateBitmapFromHBITMAP,'GdipCreateBitmapFromHBITMAP'
end data
duminică, 4 august 2024
FASM : writing on the screen with assembly programming language.
I haven't worked in assembly language for a long time. My favorite is FASM.
Here is an example of older source code that randomly displays some colored pixels.
If you change this line of source code, you will see that it is written directly on the screen from Windows 10:
invoke FindWindow,NULL,<'Random Pixels Screen'>
this is the result:
... using this you cannot be able to take a screenshot with Windows shortkeys:
invoke FindWindow,NULL,<'Random Pixels ...'>
This is the source code, if you want to test it:
format pe console
entry start
include 'INCLUDE/WIN32AX.INC'
section '.code' code readable writeable executable
start:
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov [stdout],eax
mov [rect.Left],0
mov [rect.Top],0
mov [rect.Right],79
mov [rect.Bottom],44
mov [coord.x],8
mov [coord.y],40
mov [cinfo.dwSize],25
mov [cinfo.bVisible],FALSE
cinvoke system,<'cls'>
cinvoke srand,<cinvoke time,NULL>
invoke SetConsoleTitle,<'Random Pixels Screen'>
invoke SetConsoleWindowInfo,[stdout],1,rect
invoke SetConsoleScreenBufferSize,[stdout],dword[coord]
invoke SetConsoleCursorInfo,[stdout],cinfo
invoke FindWindow,NULL,<'Random Pixels ...'>
mov [hWnd],eax
invoke GetDC,[hWnd]
mov [hdc],eax
@@:
cinvoke rand
shl eax,9
push eax
cinvoke rand
pop ecx
add eax,ecx
mov esi,eax
invoke SetPixel,[hdc],<stdcall rnd,640>,<stdcall rnd,100>,esi
cinvoke _kbhit
test eax,eax
jz @b
invoke ExitProcess,0
proc rnd max
cinvoke rand
shl eax,17
mul [max]
mov eax,edx
ret
endp
section '.data' data readable writeable
struc COORD {
.x dw ?
.y dw ?
}
struc SMALL_RECT {
.Left dw ?
.Top dw ?
.Right dw ?
.Bottom dw ?
}
struc LPCONSOLE_CURSOR_INFO {
.dwSize dd ?
.bVisible db ?
}
cinfo LPCONSOLE_CURSOR_INFO
rect SMALL_RECT
coord COORD
stdout dd ?
hWnd dd ?
hdc dd ?
section '.idata' import data readable writeable
library kernel32,'kernel32.dll',\
msvcrt,'msvcrt.dll',\
user32,'user32.dll',\
gdi32,'gdi32.dll'
import gdi32,\
SetPixel,'SetPixel'
import user32,\
GetDC,'GetDC',\
FindWindow,'FindWindowA'
import kernel32,\
ExitProcess,'ExitProcess',\
GetStdHandle,'GetStdHandle',\
SetConsoleTitle,'SetConsoleTitleA',\
SetConsoleCursorInfo,'SetConsoleCursorInfo',\
SetConsoleWindowInfo,'SetConsoleWindowInfo',\
SetConsoleCursorPosition,'SetConsoleCursorPosition',\
SetConsoleScreenBufferSize,'SetConsoleScreenBufferSize'
import msvcrt,\
_kbhit,'_kbhit',\
system,'system',\
srand,'srand',\
rand,'rand',\
time,'time'
Inkscape : Create an extension for inkscape.
You can create your own extensions in inkscape with all features you need to improve the working area.
One extension can have minimum two file: the basic Python source code and another file with the graphic user interface ...
The source code of Python file can be link with the G.U.I. source code type file INX.
The source code for python can be customized and this is the main reason is no need to add it here.
Let's see the source code for the INX file:
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<name>Default extension example</name>
<id>default.extensions.example</id>
<param name="tab" type="notebook">
<page name="Options" gui-text="Options">
<param name="value_int" type="int" min="0" max="9" gui-text="INT type value from 0 up to 9 : ">10</param>
<param name="value_bool" type="bool" gui-text="BOOL value set to false : ">false</param>
<param name="value_space" type="float" gui-text="FLOAT value set to 0.1 custom range min 0.0 up max=99.0 : " min="0.0" max="99.0">0.1</param>
<param name="option_group selection" type="optiongroup" appearance="combo" gui-text="Options :">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</param>
<param name="grouppick" type="bool" gui-text="selection pick ..." gui-description="This is gui-description">false</param>
<param name="pickmode" type="optiongroup" appearance="combo" gui-text="pick values group:">
<option value="first">first</option>
<option value="second">second</option>
</param>
</page>
<page name="Help" gui-text="Help for default extension example">
<label xml:space="preserve">This is example of default extension example
You can use this INX file and PY files type named 'default_extension_example'</label>
</page>
</param>
<effect>
<object-type>all</object-type>
<effects-menu>
<submenu name="catafest"/>
</effects-menu>
</effect>
<script>
<command location="inx" interpreter="python">default_extension_example.py</command>
</script>
</inkscape-extension>
Bellow you can see some screenshots with these result
Posted by
Cătălin George Feștilă
Labels:
2024,
inkscape,
open source,
source code,
tutorial,
tutorials
Abonați-vă la:
Postări (Atom)